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.

FieldType
nametext
emailemailunique, used to sign in
roleenumadmin | rep

Company

An organisation you sell to.

FieldType
nametext
domaintext
industrytext
sizeenum1-10 | 11-50 | 51-200 | 201+
ownerIdref → User

Contact

A person at a company, or an individual lead.

FieldType
firstNametext
lastNametext
emailemail
phonetext
jobTitletext
companyIdref → Companyoptional
ownerIdref → User
statusenumlead | customer | churned
sourcetextfor example referral, website, event

Deal

A sales opportunity moving through the pipeline.

FieldType
titletext
valuenumber
stageenumnew | qualified | proposal | negotiation | won | lost
expectedCloseDatedate
contactIdref → Contact
companyIdref → Company
ownerIdref → User

Activity

Something that happened with a contact or on a deal.

FieldType
typeenumcall | email | meeting | note
bodylong text
contactIdref → Contact
dealIdref → Dealoptional
userIdref → User
occurredAtdatetime

Task

A follow-up someone has to do.

FieldType
titletext
dueDatedate
doneboolean
assigneeIdref → User
dealIdref → Dealoptional

Main screens

The pages the first build includes, in the order a user meets them.

  1. 01

    Sign in

    Email sign-in for your team. New users are invited by an admin.

  2. 02

    Dashboard

    Pipeline value by stage, deals won this month, and each rep’s overdue tasks.

  3. 03

    Contacts list

    Search by name or email, filter by owner, status and company, and export to CSV.

  4. 04

    Contact detail

    Profile fields, linked company and deals, and the full activity timeline with a quick “log activity” form.

  5. 05

    Pipeline board

    One column per stage with deal cards showing value, owner and close date. Drag to change stage.

  6. 06

    Deal detail

    Deal fields, linked contact and company, tasks and activities for that deal.

  7. 07

    Tasks

    My tasks and team tasks, grouped into overdue, today and upcoming.

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

Starter prompt
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.

More templates and guides