Template instructions

This dashboard runs on a fictional dataset so it works the second you open it. Getting it onto your own numbers is three steps and one copy-paste prompt — no spreadsheets to reformat, no fields to map by hand.

Remix it, attach your CRM export in the chat, paste the prompt below. That's the whole setup.

What Lovable will look for in your export

  • A row per lead and a row per dealtwo files, or one if that's what you have
  • Some kind of unique idrecord id, email, opportunity number — anything stable
  • A couple of things to slice bysegment, region, source, owner, whatever you use
  • Deal valueARR, ACV or contract value
  • Dates for each stageblank where the stage hasn't happened yet
  • Close-lost notes if you keep themfree text is fine, they get grouped for you

Missing one of these? Send it anyway. Lovable will tell you what it can and can't build from what you have.

  1. 1

    Remix this template

    Hit Remix at the top of the preview. You get your own private copy with the sample dashboard already working. Nothing to install, nothing to connect.

  2. 2

    Grab a CSV out of your CRM

    Whatever your CRM's standard export gives you is fine. Column names don't matter and you don't need to clean it up — Lovable reads the file and works out the mapping. Ideally one export of leads and one of deals.

  3. 3

    Paste the prompt below into the chat

    Attach your CSV files to the message, paste the prompt, send. Lovable does the mapping, the swap, the stage names and the rebrand in one go, then asks you about anything ambiguous.

The prompt

Attach your CSV files to the chat message, then paste this. You don't need to edit it.

I remixed this revenue funnel template and I want it running on my own data.

I've attached my CRM export (one file for leads, one for deals — or one file if that's all I have).

Please:
1. Read my files and figure out which of my columns map to the Lead and Deal fields this app already uses. Ask me about anything you can't work out.
2. Replace the sample records in the data file with my real records. Convert my dates into the week indexes the app expects, and leave a milestone empty if it hasn't happened yet.
3. Rename the funnel stages to match my sales process if mine are different.
4. Rebrand it: change the company name from Crestline Cloud to mine, and update the accent colour.
5. Show me the reconciliation check in the console afterwards so I know the numbers add up.

Don't change how any of the charts calculate things — just swap the data.

What happens next

Lovable rewrites the data behind the dashboard and the preview reloads with your records. Every chart, percentage and drill-down recalculates from those rows — nothing is hardcoded anywhere in the app, so there's no second place to update.

To sanity-check it: open the funnel page and confirm the totals look like your business. The app also logs a reconciliation check to the browser console — if it says OK, the stage splits and loss totals add up exactly.

Don't like the result? Ask Lovable to revert, or restore an earlier version from the history. Nothing here is one-way.

Then just keep asking

From here it's plain conversation. Some things people ask for straight after setup:

  • My funnel has an extra stage between discovery and proposal — add it.
  • Use monthly recurring revenue instead of annual across the whole dashboard.
  • Change the date window from 26 weeks to the last 12 months.
  • Slice everything by owner as well as segment.
  • Something looks wrong on the trends page — walk me through where that number comes from.

If you'd rather do it yourself

Everything on screen comes from two arrays in src/lib/rf/data.ts. Replace LEADS and DEALS with records matching the Lead and Deal interfaces in that file and you're done. Weeks are whole numbers counted from WINDOW_START_ISO, and a stage that hasn't happened is null rather than a future week — that null is what separates "still in progress" from "dropped". Stage names and thresholds are configs in src/lib/rf/engine.ts. No component calculates anything, so there's nothing else to touch.