How to Build a Simple CRM: Contacts, Pipeline and Notes
How to build a simple CRM with AI: the data model, pipeline stages, notes and follow-ups, who sees what, and when HubSpot or another CRM is the better pick.
Mythex Team · · 6 min read
To build a simple CRM, you need a database of contacts and companies, a list of deals moving through stages you define, a place to log notes and next steps, and views that show each person what to do next. An AI app builder can generate that from a short description; the work that decides whether people actually use it is choosing a small set of fields, stages that match how you really sell, and a "follow up today" list that surfaces the next action.
Build or buy? Decide this first
Off-the-shelf CRMs are good and some are free, so building one only makes sense for specific reasons. A custom CRM tends to win when:
- Your process isn't a standard sales funnel. Recruiters track candidates, estate agents track properties and viewings, agencies track projects, charities track donors and grants. Forcing these into "leads, deals, won/lost" creates workarounds.
- You need a small slice, done well. A team of three who only need contacts, a pipeline and reminders can find a full CRM heavy.
- The CRM needs to sit with your other data. Orders, bookings, support tickets or inventory you already keep in your own app.
- Per-seat pricing hurts. When many occasional users need access, running your own tool can be simpler.
An off-the-shelf CRM wins when you need email sequences, a phone dialer, email inbox sync, marketing automation, detailed reporting or a large integration catalogue on day one. As of September 2026, HubSpot's free CRM includes contact management, deal pipelines and a reporting dashboard for up to two users and 1,000 contacts, with paid tiers above it. Try a free CRM for a week before you build; if it fits, you are done. For the broader decision, see build vs. buy software for a small business.
What a simple CRM needs
The data model
| Table | Fields to start with |
|---|---|
| Companies | Name, website, industry, notes |
| Contacts | Name, email, phone, company, role, owner, status, source |
| Deals | Title, contact, company, value, stage, owner, expected close date, next step, next step date |
| Activities | Type (call, email, meeting, note), date, text, linked contact or deal, author |
| Stages | Name, order, "counts as won" / "counts as lost" |
Two design choices save pain later:
- Keep stages in a table, not hard-coded, so you can rename or reorder them without a rebuild.
- Put "next step" and "next step date" on the deal. Most small teams lose deals through missed follow-ups, not missing features. A list of deals with a next step due today or overdue is the single most useful screen in a small CRM.
The views
- Contact list with search and filters (owner, status, source)
- Contact and deal detail pages with the activity timeline
- Pipeline board — columns per stage, cards you drag between them
- My follow-ups — everything due today or overdue for the logged-in person
- A simple report — deals and value per stage, and won deals this month
Who sees what
Decide this before you build: can every salesperson see every deal, or only their own? Can anyone delete a contact? Should managers see everything? A small team often lets everyone see everything but restricts deleting to one admin. Whatever you choose, it needs real login and checks on the server, not just hidden buttons.
Getting your data in
Most CRMs start life as a spreadsheet. Before importing:
- Clean the sheet. One row per contact, one column per field, consistent status values.
- Decide how to match companies. "Acme", "Acme Ltd" and "ACME" become three companies unless you tidy them.
- Ask for a CSV import with a preview step that shows what will be created and flags duplicates by email.
How to turn a spreadsheet into an app covers the move in more detail.
A first prompt that works
Build a simple CRM for a four-person design agency. Data: Companies (name, website, notes), Contacts (name, email, phone, company, role, owner, source), and Deals (title, company, contact, value, stage, owner, expected close date, next step, next step date). Stages: Lead, Discovery call, Proposal sent, Negotiating, Won, Lost — stored in a table so we can edit them. Pages: contact list with search and filters, contact and deal detail pages with a notes timeline, a drag-and-drop pipeline board, and a "My follow-ups" page showing deals whose next step is due today or overdue. Save everything in a database and seed 15 realistic example records. Sidebar navigation, dense and practical design.
Notice it leaves out email sync, automations and reports beyond the basics. Those come after the team has used it for a couple of weeks.
Build steps
- Contacts and companies. List, detail, create, edit. Make sure data survives a page refresh.
- Deals and the pipeline board. Check that dragging a card updates the stage in the database.
- Notes timeline on contacts and deals.
- Follow-ups page. This is what makes people open the CRM every morning.
- Login and roles before real customer data goes in.
- CSV import of your existing sheet.
- One report that answers a question someone actually asks, such as "what's in the pipeline this month?"
- Try it for a week with the team, then add what they ask for.
Making the pipeline useful for a team
A pipeline board looks good in a demo; what makes it useful day to day is a few small rules the team agrees on:
- Exit criteria for each stage. Write one line per stage saying what must be true to move a deal there — "Proposal sent" means a proposal document was emailed, not "we talked about pricing". Show these as hints on the board.
- Required fields at key stages. Ask for a value and expected close date before a deal can move to "Proposal sent", and a lost reason before it can move to "Lost". Lost reasons are the most useful data a small CRM collects.
- A stale-deal rule. Flag deals with no activity for, say, 14 days. It surfaces forgotten opportunities without anyone running a report.
- One weekly view. A short page listing deals won, lost and moved this week gives a sales meeting its agenda.
Each of these is a sentence in a follow-up prompt, and each makes the data more trustworthy than adding another screen would.
Nice-to-haves for version two
- Logging emails by forwarding them to the CRM, or connecting your email provider's API
- Reminders sent by email each morning with that person's follow-ups
- Tags and saved filters
- Duplicate detection and merge
- A web form on your website that creates a lead automatically
- An export button, so your data is never trapped
Common mistakes
- Too many fields. Every required field is a reason not to log a call. Start with the ones you filter or report on.
- Stages that describe feelings, not events. "Warm" and "Hot" mean different things to different people; "Proposal sent" is unambiguous.
- No owner on records. If everyone owns a lead, nobody follows it up.
- Hiding data in the browser instead of restricting it on the server. A hidden button is not a permission.
- Building automations before anyone uses it. Watch how the team works first.
Costs and upkeep
A custom CRM's running costs are small: hosting, a database, and an email provider if you send reminders. The real cost is ownership. When someone wants a new field or the import breaks, you (or whoever built it) fix it. Budget a little time each month, and keep the scope tight so there is less to maintain.
Building it with Mythex
Mythex's docs include a simple CRM use case with a starter prompt: you describe contacts, deals and stages, the agent builds list, detail and pipeline views, and saves data in a dedicated Postgres database for the project. Teammates who help build it can join your workspace with no per-seat fees; logins for the people who use the CRM are part of the app itself, which you ask the agent to add using an approach you choose.
The docs are also clear about what is not included: no built-in email sending, dialer, sequences or two-way Salesforce/HubSpot sync. If you need those, keep the off-the-shelf CRM. If you want a head start, the Sales Pipeline CRM template opens a new project with a starter prompt filled in, and how to build an internal tool covers the wider pattern.
Questions
Can I build my own CRM?
Yes. A simple CRM is mostly contacts, companies, deals and notes stored in a database, with list, detail and pipeline views on top. An AI app builder can produce a working version from a short description; the effort goes into choosing the right fields and stages.
When is a custom CRM better than HubSpot or Salesforce?
When your process doesn't fit a generic sales pipeline — for example, you track properties, students, grant applications or custom jobs — or when you only need a small part of what a big CRM offers. If you need email sequences, calling, and many integrations on day one, an off-the-shelf CRM is the better choice.
What fields should a CRM have?
Start with contact name, email, phone, company, owner and status, and for deals a title, value, stage, expected close date and next step. Add fields only when someone actually needs to filter or report on them.
Is there a free CRM?
Yes. As of September 2026, HubSpot offers a free CRM with contact management and deal pipelines for up to two users and 1,000 contacts. Building your own is also cheap to run, but you maintain it yourself.