CRM App Prompts: 10 Briefs for Contacts, Pipelines and Follow-Ups, Each Tied to a Channel

A CRM app prompt on this page is a brief for one part of a lightweight CRM, written to a database that already exists: the Lightweight CRM kit ships companies, contacts and notes tables with a pipeline stage enum, row-level security that gives the whole team reads and the owner alone writes, and the with-check clause that stops a member from claiming someone else's record. Its verification queries were executed and prove the denials. The ten briefs below assume those tables and never recreate them.
They are ordered the way a founder doing their own sales would build: contacts first, then the pipeline, then the timeline that makes people log calls, then the follow-ups that stop deals going quiet. The public lead form, CSV import, roles, reports, stage playbooks and win-loss review come after, each reading what the earlier briefs wrote. Every brief names the channel its Pro variant serves, and eight of ten serve B2B sales, because that is what a CRM is for.
The “Try in Lovable” links on this page are affiliate links: we may earn a commission if you create an account through one. It costs you nothing and does not change which prompts are here.
Contacts and Companies with Dedupe
What this prompt is for
The CRM's foundation: companies and contacts with dedupe on entry, an owner set by the database, shared team reads and owner-only writes.
When to use it
First, on an empty project, after running the Lightweight CRM kit's schema.sql. Every other CRM brief assumes these two tables and their policies exist.
# Context Build the contact and company layer of a lightweight CRM for [a founder or a team of up to ten doing their own sales]. Speed of entry matters more than field completeness: a contact should take ten seconds to add. The database already exists: companies, contacts and notes tables with row-level security, from the Lightweight CRM kit. Do not recreate them. ## Data Rules - owner_id is set
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Pipeline Board with Stages You Define
What this prompt is for
A deal pipeline as a board: stages from the kit's enum, drag to move, value per column, and a stage history that records when each deal moved.
When to use it
After contacts and companies exist. This is the view a founder opens every morning.
# Context Add a deal pipeline to the CRM. Stages come from the kit's pipeline stage enum; the team can rename labels but the enum is the source of truth. A deal belongs to a company, has a value in integer cents, a stage, an owner set by the database, and an expected close date. ## Data Rules - Stage changes are written by a server function that also appends a row to a stage_history table with fr
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Activity Timeline That Takes Seconds to Write
What this prompt is for
An append-only note timeline per contact and company: call, email, meeting and note types, keyboard-first entry, and a combined feed per company.
When to use it
As soon as contacts exist. The kit's notes table is append-only by policy; this brief builds the surface that makes people use it.
# Context Build the activity timeline for the CRM on the kit's notes table. Notes are append-only: no edits, no deletes from the client, ever. The point is that logging a call takes less time than the call's last ten seconds. ## Data Rules - A note has a type (call, email, meeting, note), a body, a contact or a company, an author set by the database, and a timestamp - Anyone on the team can read
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Follow-Up Reminders and a Morning Digest
What this prompt is for
Follow-ups with a due date per contact, a today view, snooze and done, and a morning digest email with what is due and what has gone quiet.
When to use it
After the timeline exists. This is the brief that makes deals stop going quiet.
# Context Add follow-ups to the CRM. A follow-up is a dated next step on a contact or a deal, owned by the person who created it. The daily job is: open the app, see what is due, do it, log it, set the next one. ## Data Rules - follow_ups: contact or deal, due date, body, owner set by the database, done_at, snoozed_until - Shared team reads; only the owner completes, snoozes or deletes their own
Channel-Optimized Pro Version
This prompt has a Pro version optimized for Email Marketing. Unlock to get product-channel fit guidance and distribution-ready features.
Public Lead Form Writing Into the CRM
What this prompt is for
A public form on the marketing site that creates a contact and company in the CRM with source and UTMs, insert-only from the browser, with spam defence and a triage queue.
When to use it
When the CRM should receive inbound leads directly instead of through a spreadsheet export. Pairs with any landing page prompt on this site.
# Context Add a public lead form that writes into the CRM. The form lives on a public page; the data goes into a leads table that the browser can insert into and never read, and an owner triages each lead into a contact and company or discards it. ## Data Rules - leads: name, email, company name, message, source, utm_source, utm_medium, utm_campaign, referrer, created_at, triaged_at, triaged_to (
Channel-Optimized Pro Version
This prompt has a Pro version optimized for Organic SEO. Unlock to get product-channel fit guidance and distribution-ready features.
CSV Import with Mapping and Dedupe Preview
What this prompt is for
Import contacts and companies from a CSV: column mapping, a preview that shows what will be created, matched or skipped, and an import log that can be undone.
When to use it
The first week, when the spreadsheet the CRM replaces has to come in without creating 300 duplicates.
# Context Add CSV import to the CRM. The user has a spreadsheet of contacts with inconsistent columns. The import must show exactly what it will do before it does it, and must be undoable as a batch. ## Data Rules - imports: id, owner set by the database, filename, row_count, created, matched, skipped, undone_at - Every created record carries import_id so an undo can delete exactly that batch - I
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Team Roles and Reassignment
What this prompt is for
Owner, admin and member roles for the CRM, admin-only reassignment of records with a history row, and the with-check clause that stops a member from claiming someone else's deal.
When to use it
When a second person joins. The kit's policies already block reassignment; this brief adds the sanctioned path for it.
# Context Add roles and reassignment to the CRM. Today every record is owned by its creator and only the owner can write it. A team needs an admin who can reassign records when someone leaves, and a record of every reassignment. ## Data Rules - team_members: user, role (owner, admin, member), read from the database per request - Reassignment is a server function callable by admins only, writing a
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Pipeline Reports from Stage History
What this prompt is for
Reports computed from stage history and notes: conversion by stage, deal age, win rate, touches per owner, all as server-side aggregates with a date range.
When to use it
After a month of pipeline and timeline use. Reports on an empty history are decoration.
# Context Add reports to the CRM, computed in the database from stage_history, deals, notes and follow_ups. Every number must be reproducible from the rows; no client-side arithmetic on partial data. ## Data Rules - Aggregates are database views or functions with a date range parameter - Reports respect the same read policies as the underlying tables - Money is integer cents summed in the databas
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Stage Playbooks: Tasks Created on Entry
What this prompt is for
A per-stage task template that creates the right next steps when a deal enters a stage, with completion tracked and a checklist on the deal page.
When to use it
When a team wants every deal worked the same way. Builds on the pipeline's stage-change function.
# Context Add stage playbooks to the CRM. When a deal enters a stage, a template creates the tasks that stage requires; the deal page shows the checklist; a stage cannot be marked complete with required tasks open, though it can always be moved back. ## Data Rules - stage_templates: stage, task title, required (boolean), days_offset, editable by admins - deal_tasks: deal, title, required, due dat
Channel-Optimized Pro Version
This prompt has a Pro version optimized for Community-led Growth. Unlock to get product-channel fit guidance and distribution-ready features.
Win-Loss Reasons and a Quarterly Review Page
What this prompt is for
Required reasons on close, a lost-to field, a quarterly review page that groups closed deals by reason and competitor, and a copyable summary for the team meeting.
When to use it
Once deals are closing. This is the brief that turns a pipeline into a learning loop.
# Context Add win-loss capture to the CRM. Closing a deal, won or lost, requires a reason from a short list plus free text; lost deals record who or what they were lost to. A review page groups the last quarter's closes so the team can read the pattern. ## Data Rules - close_reasons: a small admin-editable list with a type (won or lost) - deals gain reason_id, lost_to (text), close_notes; set onl
Channel-Optimized Pro Version
This prompt has a Pro version optimized for B2B Sales. Unlock to get product-channel fit guidance and distribution-ready features.
Every Prompt, Every Kit, One Payment
All 10 prompts plus every Pro variant and build kit in one bundle, plus unlimited prompt generation, $199 once. Or sign up free to copy prompts one at a time.
Browse More Categories
Related Resources
The Complete Lovable Bundle
$199 once. Unlimited generation, every prompt, every kit, every future dropEvery prompt, every Pro variant, all four build kits and every future drop, in one Notion workspace. One payment, never a subscription.
Get the 151-Prompt BundleWhich growth channels do these prompts serve?
Every prompt in this category carries a distribution section naming the channel it is built for, so the generated app has a way of being found rather than only a feature set. The chart counts primary and secondary coverage together, computed from the prompt bodies when the site is built.
| Category | prompts |
|---|---|
| B2B Sales / LinkedIn | 8 |
| Email Marketing | 5 |
| Community-led Growth | 3 |
| Organic SEO / AI Search | 2 |
| Product-led Growth | 2 |
Computed from the channel mapping in each prompt at build time; a prompt can serve more than one channel.
What does the CRM kit's schema give these prompts?
Three tables and a rule pattern. Companies, contacts and an append-only notes table, with owner_id defaulting to auth.uid() so the client never sends it; every authenticated user reads every record because a sales team that cannot see each other's pipeline is not useful; only the owner updates or deletes; and the update policies carry a with-check clause, which is the part people omit and the reason a member cannot rewrite owner_id to steal a record. The kit's six verification queries run as user A and then as user B and expect the theft to fail.
| From the kit | Added by the briefs | |
|---|---|---|
| Tables | companies, contacts, notes, a pipeline stage enum | deals, stage_history, follow_ups, leads, imports, team_members, stage_templates, deal_tasks, close_reasons |
| Ownership | owner_id defaults to auth.uid(); never sent by the client | Reassignment only through an admin function that writes a history row |
| Reads and writes | Shared team reads; owner-only writes with a with-check clause | Leads insert-only from anonymous; notes append-only; stage set only by a function |
| Proof | Six verification queries, two of them as a second user | Each brief's safeguard names the query to run as the wrong user |
| Search | A GIN full-text index across names and emails | Dedupe on entry and a merge flow that reuses it |
The briefs add tables on top: deals with stage history, follow-ups, leads with an insert-only policy, imports with an undo batch, team roles, stage templates and close reasons. Each brief states its data rules first, because on Lovable the prompt is where the policy gets decided.
How is a CRM brief in this library built?
The one to read is the contacts and companies brief, because every other brief assumes it and because its Data Rules section shows the pattern: ownership server-derived, shared reads, owner-only writes, dedupe as a user decision. Its Core Features are ordered so read paths exist before the add form, and the add form exists before edit and delete.
- Context: The audience, the speed rule, and the instruction not to recreate the kit's tables.
- Data Rules: Ownership, reads, writes, and the one-company-per-contact rule.
- Core Features (Priority Order): Add form, dedupe, contact page, company page, search.
- Screens & States:
- Build Order:
- Safe-Guard Instructions: No owner_id from the client; no policy weakened to pass a query; dedupe never merges silently.
- Before Building: Ask, then save to knowledge, then build.
Headings read from the prompt body of crm-contacts-companies in this library.
The Before Building line is the same as the rest of the library: Lovable asks its questions first and saves the decisions to project knowledge. On the SaaS foundation run that closer produced four questions and a self-tested invite flow; a CRM brief's questions will be about the team size and the sales motion, which is exactly what should be decided before the schema is extended.
What is the daily loop these briefs build?
Open the today view, do the due follow-ups, log each touch in the timeline with its next step, move the deal if it moved, and let the digest close the day. Four of the ten briefs exist to make that loop faster than a spreadsheet: the timeline's keyboard-first composer, the follow-up today view, the stage-change function that records history, and the digest that arrives before the day starts.
- Today view: due and overdue
- Do the touch: call, email, meeting
- Log it: Enter to save
- Next step: a dated follow-up
- Move the deal: history row written
The Core Features sections of the follow-up, timeline and pipeline briefs, condensed.
The other six make the loop survive growth: a public form so leads arrive without copy-paste, import so the old spreadsheet comes in without duplicates, roles so a second person can join, reports so the founder can answer a partner, playbooks so every deal is worked the same way, and win-loss so the pipeline teaches something each quarter.
Which CRM brief to use
Start with Contacts and Companies with Dedupe on top of the kit's schema; nothing else works without it. Then the Pipeline Board, then the Activity Timeline, then Follow-Up Reminders. That is a working CRM for one person.
Add the Public Lead Form when the marketing site should feed the pipeline directly, CSV Import when an old spreadsheet has to come in, Team Roles and Reassignment when a second person joins, and Pipeline Reports once a month of stage history exists.
Stage Playbooks and Win-Loss Review come last, because both read history the earlier briefs create, and both are worthless on an empty pipeline.
Suggested build order
Foundation, then the pipeline, then the surfaces people write to, then the inputs from outside, then the loops that read history. Each brief names the tables it adds, so the order is the order the tables depend on each other.
Contacts and companies on the kit's schema
Dedupe at entry; ownership from the database.
Prompt: Contacts and Companies with Dedupe
Deals, stages and a history row per move
One function writes stage; nothing else does.
Prompt: Pipeline Board with Stages You Define
The append-only timeline
Enter to save; last touched derived.
Prompt: Activity Timeline That Takes Seconds to Write
Follow-ups and the digest
Digest as a page until the plan allows email.
Prompt: Follow-Up Reminders and a Morning Digest
Then the loops that read history
Reports, playbooks and win-loss, once there is history to read.
Prompt: Pipeline Reports from Stage History
Where CRM prompts usually go wrong
- Asking for a CRM in one sentence. The result is a table of contacts with a login and no rule about who can change what; the moment a second person joins, records get overwritten. Name the data rules before the screens.
- Letting the client set the owner. If owner_id arrives in the insert payload, anyone can create records as anyone. The kit defaults it to auth.uid() and the briefs forbid sending it.
- Editable notes. A timeline that can be rewritten is not a record. The kit's notes table is append-only by policy; the briefs keep it that way and add a new note for corrections.
- Reports computed in the browser from a page of rows. Every number on the reports brief comes from a database view with a date range, so the funnel a founder forwards can be reproduced by anyone with the query.
Frequently asked
Do I need the CRM kit to use these prompts?↓
The briefs assume its three tables and policies, so yes for the first one: run schema.sql and verify.sql from the Lightweight CRM kit before pasting the contacts brief. The prompt is free to download; the schema and verification files ship in full with the bundle. Without the kit, tell Lovable to create the same three tables with the same rules, and run the verification queries yourself before building further.
Is this a shared or a private CRM?↓
Shared by default: every signed-in team member reads every record, and only the owner writes. That is the kit's model choice and the briefs keep it. For per-user isolation, change the select policies to owner_id = auth.uid() before running anything else, and re-run the verification queries; the kit's setup notes say the same.
Which of these prompts have been run?↓
None of the ten on a CRM project yet. The rule pattern they encode was run: the SaaS foundation prompt built roles and invites with policies checked in the database for 10.4 credits, and the kit schema executes with its verification queries passing. The category page says which briefs carry a measured run the day one exists.
Why do eight of ten target B2B sales?↓
Because a CRM's users are the sales channel. The Pro variants add the mechanisms a founder selling by outreach needs: a LinkedIn paste path, shareable pipeline summaries, follow-up sequences, a team activity page. The two others serve email marketing and organic SEO, where the lead form and the digest live.
Can the digest and welcome emails send on the free plan?↓
Not per Lovable's docs read on 26 September 2026: app emails need a paid plan and a verified email domain. The follow-up and lead form briefs say so and deliver the digest as a page and queue the email until both exist, so the first build does not fail silently.
How does this differ from the SaaS prompts?↓
The SaaS category is the machinery for charging strangers: workspaces, checkout, limits, trials. This category is one product on top of that machinery. A CRM sold as a SaaS would run the SaaS foundation first and then these ten inside a workspace; a founder's own CRM runs the kit and these ten and never needs billing.
Related reading
- CRM kit
The schema, policies and verification queries the briefs assume.
- Lovable SaaS prompts
The machinery for selling the CRM as a product.
- whole-app prompts with a build order
CRM Lite, the one-prompt version.
- landing page prompts by traffic source
The page the lead form belongs on.
- Lovable and Supabase
The with-check clause the kit relies on.
- Lovable security
What the scans prove and what only a query does.
- SaaS ideas
The CRM as a chargeable product.
- build a SaaS
Foundation, schema, proof, billing.
- first 100 users
The outreach channel eight of ten briefs serve.
- Lovable and Stripe
When the CRM is sold, not used.
- free build kits with tested RLS
The four kits, counted.
- admin dashboard prompts
The sibling category: roles, an audit log, and view-as-user.
Sources
All checked on 26 September 2026.
Updated .
Written by

Marco Kohns
Founder of ProtoBites - Venture Growth Studio
Growth PM at a Silicon Valley scale-up (a16z and General Catalyst backed), ex-Techstars where he consulted 13 early-stage startups, Reforge-trained. Every prompt on this site comes out of shipping ProtoBites' own portfolio products.
Help shape this product
We're building this in public and your input genuinely matters.
If something felt confusing, missing, or especially useful, I'd love to hear about it. It takes ~30 seconds and helps me improve the parts that matter most.
Share quick feedbackGoes straight to the builder. No marketing questions. No auto-replies.