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

    CRM app prompts page hero: the title beside a brief card listing contacts and companies with dedupe, a pipeline you define, an activity log that takes seconds, follow-up reminders, owner-only writes with shared reads, and the CRM kit's tables, policies and verify.sql

    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.

    CRM App

    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 
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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 
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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 (
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    Try in Lovable
    Saved you time? Share this.

    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.

    CRM App

    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
    Try in Lovable
    Saved you time? Share this.

    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.

    The Complete Lovable Bundle

    $199 once. Unlimited generation, every prompt, every kit, every future drop

    Every 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 Bundle

    Which 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.

    Growth channels served by the 10 CRM App prompts
    B2B Sales / LinkedIn8Email Marketing5Community-led Growth3Organic SEO / AI Search2Product-led Growth2
    Growth channels served by the 10 CRM App prompts
    Categoryprompts
    B2B Sales / LinkedIn8
    Email Marketing5
    Community-led Growth3
    Organic SEO / AI Search2
    Product-led Growth2

    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.

    What the kit ships and what each brief adds on top of it
     From the kitAdded by the briefs
    Tablescompanies, contacts, notes, a pipeline stage enumdeals, stage_history, follow_ups, leads, imports, team_members, stage_templates, deal_tasks, close_reasons
    Ownershipowner_id defaults to auth.uid(); never sent by the clientReassignment only through an admin function that writes a history row
    Reads and writesShared team reads; owner-only writes with a with-check clauseLeads insert-only from anonymous; notes append-only; stage set only by a function
    ProofSix verification queries, two of them as a second userEach brief's safeguard names the query to run as the wrong user
    SearchA GIN full-text index across names and emailsDedupe 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.

    Section skeleton of "Contacts and Companies with Dedupe"
    ContextThe audience, the speed rule, and theinstruction not to recreate the kit's tables.Data RulesOwnership, reads, writes, and theone-company-per-contact rule.Core Features (Priority Order)Add form, dedupe, contact page, company page,search.Screens & StatesBuild OrderSafe-Guard InstructionsNo owner_id from the client; no policyweakened to pass a query; dedupe never mergesBefore BuildingAsk, then save to knowledge, then build.
    1. Context: The audience, the speed rule, and the instruction not to recreate the kit's tables.
    2. Data Rules: Ownership, reads, writes, and the one-company-per-contact rule.
    3. Core Features (Priority Order): Add form, dedupe, contact page, company page, search.
    4. Screens & States:
    5. Build Order:
    6. Safe-Guard Instructions: No owner_id from the client; no policy weakened to pass a query; dedupe never merges silently.
    7. 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.

    The daily loop, in the order the briefs assume
    1Today viewdue and overdue2Do the touchcall, email, meeting3Log itEnter to save4Next stepa dated follow-up5Move the dealhistory row written
    1. Today view: due and overdue
    2. Do the touch: call, email, meeting
    3. Log it: Enter to save
    4. Next step: a dated follow-up
    5. 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.

    1. Contacts and companies on the kit's schema

      Dedupe at entry; ownership from the database.

      Prompt: Contacts and Companies with Dedupe

    2. Deals, stages and a history row per move

      One function writes stage; nothing else does.

      Prompt: Pipeline Board with Stages You Define

    3. The append-only timeline

      Enter to save; last touched derived.

      Prompt: Activity Timeline That Takes Seconds to Write

    4. Follow-ups and the digest

      Digest as a page until the plan allows email.

      Prompt: Follow-Up Reminders and a Morning Digest

    5. 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

    Sources

    All checked on 26 September 2026.

    Updated .

    Written by

    Marco Kohns

    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 feedback

    Goes straight to the builder. No marketing questions. No auto-replies.