CRM & Sales
CRM App Template
Contacts, companies, a drag-and-drop deal pipeline, an activity timeline and team roles. Start from a working data model and a tested starter prompt instead of a blank page.
What is the CRM App Template?
This CRM app template is a starting specification for a custom customer relationship management app. It defines the data model (users, companies, contacts, deals, activities and tasks), the main screens and the permissions, and packages them as a starter prompt. Paste the prompt into Greta.sh and it builds the full-stack app: database, sign-in, pipeline board and dashboard, ready to deploy to a live URL and change in plain English afterwards.
Greta.sh Editorial Team · Updated October 14, 2026
What you get
Everything below is in the starter prompt, so the first build already includes it.
Contacts and companies
One record per person and per company, linked together, with owner, status, source and any custom fields your business tracks.
Deal pipeline board
Deals laid out by stage from New to Won or Lost. Drag a deal to move it; the stage, value and owner update in the database.
Activity timeline
Calls, emails, meetings and notes logged against a contact or deal, so anyone on the team can see what happened last.
Tasks and follow-ups
Tasks with due dates and an assignee, linked to a deal, with an overdue view so follow-ups do not slip.
Team accounts and roles
Sign-in for your team with two roles: admins manage settings and see everything, sales reps see and edit the records they own.
Sales dashboard
Open pipeline value by stage, deals won this month, and overdue tasks per rep, calculated from the live data.
The data model
6 entities. Every app also gets an id and created and updated timestamps on each record.
User
A member of your team who signs in to the CRM.
| Field | Type |
|---|---|
| name | text |
| emailunique, used to sign in | |
| role | enumadmin | rep |
Company
An organisation you sell to.
| Field | Type |
|---|---|
| name | text |
| domain | text |
| industry | text |
| size | enum1-10 | 11-50 | 51-200 | 201+ |
| ownerId | ref → User |
Contact
A person at a company, or an individual lead.
| Field | Type |
|---|---|
| firstName | text |
| lastName | text |
| phone | text |
| jobTitle | text |
| companyId | ref → Companyoptional |
| ownerId | ref → User |
| status | enumlead | customer | churned |
| source | textfor example referral, website, event |
Deal
A sales opportunity moving through the pipeline.
| Field | Type |
|---|---|
| title | text |
| value | number |
| stage | enumnew | qualified | proposal | negotiation | won | lost |
| expectedCloseDate | date |
| contactId | ref → Contact |
| companyId | ref → Company |
| ownerId | ref → User |
Activity
Something that happened with a contact or on a deal.
| Field | Type |
|---|---|
| type | enumcall | email | meeting | note |
| body | long text |
| contactId | ref → Contact |
| dealId | ref → Dealoptional |
| userId | ref → User |
| occurredAt | datetime |
Task
A follow-up someone has to do.
| Field | Type |
|---|---|
| title | text |
| dueDate | date |
| done | boolean |
| assigneeId | ref → User |
| dealId | ref → Dealoptional |
Main screens
The pages the first build includes, in the order a user meets them.
- 01
Sign in
Email sign-in for your team. New users are invited by an admin.
- 02
Dashboard
Pipeline value by stage, deals won this month, and each rep’s overdue tasks.
- 03
Contacts list
Search by name or email, filter by owner, status and company, and export to CSV.
- 04
Contact detail
Profile fields, linked company and deals, and the full activity timeline with a quick “log activity” form.
- 05
Pipeline board
One column per stage with deal cards showing value, owner and close date. Drag to change stage.
- 06
Deal detail
Deal fields, linked contact and company, tasks and activities for that deal.
- 07
Tasks
My tasks and team tasks, grouped into overdue, today and upcoming.
- 08
Settings
Admins invite users, set roles and rename pipeline stages.
The starter prompt
Copy it, edit anything that does not fit your business, and paste it into Greta. Or use the button below, which opens Greta with this prompt already filled in.
Build a full-stack CRM web app for a small sales team.
Data model:
- User: name, email, role (admin or rep)
- Company: name, domain, industry, size (1-10, 11-50, 51-200, 201+), owner (User)
- Contact: first name, last name, email, phone, job title, company (optional), owner (User), status (lead, customer, churned), source
- Deal: title, value, stage (new, qualified, proposal, negotiation, won, lost), expected close date, contact, company, owner (User)
- Activity: type (call, email, meeting, note), body, contact, deal (optional), user, occurred at
- Task: title, due date, done, assignee (User), deal (optional)
Screens:
1. Sign in with email. Admins can invite new users.
2. Dashboard: open pipeline value grouped by stage, deals won this month, overdue tasks per rep.
3. Contacts list with search, filters for owner, status and company, and CSV export.
4. Contact detail with linked company and deals, an activity timeline, and a form to log a new activity.
5. Pipeline board with one column per deal stage. Dragging a card changes the deal's stage.
6. Deal detail with its tasks and activities.
7. Tasks page grouped into overdue, today and upcoming.
8. Settings where admins manage users, roles and pipeline stage names.
Permissions: admins can see and edit everything. Reps can see all companies and contacts but only edit records they own, and only see deals they own.
Seed the database with 3 users, 10 companies, 25 contacts and 15 deals spread across the stages so every screen has data. Use a clean, modern layout with a left sidebar.How to customise it
After the first build, describe each change in plain English and Greta updates the app. Common next steps:
Rename the pipeline
Ask Greta to change the stages to match your sales process, for example “replace the stages with Discovery, Demo, Trial, Contract, Won, Lost”.
Add your own fields
Add the fields your business actually tracks, such as contract renewal date, plan tier or lead score, and Greta updates the database, forms and filters together.
Send follow-up emails
Connect Resend and ask for an email to go out when a task is due or a deal reaches a stage.
Post wins to Slack
Connect Slack and have every deal marked Won posted to your sales channel.
Tighten permissions
Add a manager role that sees their team’s deals, or hide deal values from reps.
Deploy and share
Deploy to a live URL, connect your own domain, and invite the team.
Frequently asked questions
+Is this a file I download, or an app Greta builds?
Greta builds it. The template is a specification and a starter prompt, not a file to install. When you click “Build this with Greta”, the prompt opens in Greta.sh and Greta generates a working CRM with a real database and sign-in, which you can then change in plain English.
+Can I change the pipeline stages and fields?
Yes, and that is the point of starting from a template. Edit the starter prompt before you build, or build first and then ask Greta for changes such as new stages, extra contact fields or a different dashboard.
+Can I bring in my existing contacts?
Ask Greta to add a CSV import screen to the contacts list, mapping your spreadsheet columns to the Contact fields. Export your contacts from your current tool as CSV and upload them there.
+Who on my team can see which records?
As written, admins see everything and reps edit only what they own and see only their own deals. You can change those rules in the prompt, or add roles such as a sales manager, before or after the first build.
+Do I own the code Greta generates from this template?
Yes. Greta generates real application code that you can download at any time, host anywhere, or hand to a developer to extend. Starting from a template does not tie the app to the template.
+Is it free to build from this template?
You can start on the Greta.sh free tier without a credit card. Paste the starter prompt, review the app Greta builds, and decide on a paid plan only when you need more. See the pricing page for current plan limits.