Tutorials

Build a CRM in 5 Minutes with AI: Step-by-Step Guide

Generate a complete CRM with contact management, deal pipeline, and activity tracking using GenMB's AI code generation.

Ambuj Agrawal

Ambuj Agrawal

Founder & CEO

5 min read

What You Will Build

In this tutorial, you will generate a fully functional CRM (Customer Relationship Management) application using GenMB. The finished app will include a contacts list with search and filtering, individual contact detail pages, a visual deal pipeline with drag-and-drop, and an activity log for tracking interactions. All of this will be generated from a single prompt and refined through chat.

No backend setup, no database configuration, and no frontend framework experience required. GenMB handles everything.

CRM Requirements

Before writing the prompt, let us define what a useful CRM needs:

Core Features

  • Contacts: Store names, emails, phone numbers, companies, and notes
  • Deal Pipeline: Visual kanban board with stages (Lead, Qualified, Proposal, Negotiation, Closed Won, Closed Lost)
  • Activity Tracking: Log calls, emails, meetings, and notes with timestamps
  • Search: Find contacts across all fields instantly
  • Dashboard: Overview showing deal value by stage, recent activity, and key metrics

Nice-to-Have Features

  • Contact detail pages with interaction history
  • Filter contacts by company or status
  • Deal value tracking with stage-based summaries
  • Responsive layout for tablet use during meetings

Crafting the Prompt

Here is the prompt that generates a comprehensive CRM:

"Create a CRM application using React with the following features:

>

Navigation: Sidebar with links to Dashboard, Contacts, Deals, and Activities.

>

Dashboard: 4 KPI cards (Total Contacts, Open Deals, Pipeline Value, Win Rate), a deal pipeline summary bar chart by stage, and a recent activity feed showing the last 10 interactions.

>

Contacts Page: A searchable, sortable table with columns for Name, Email, Company, Phone, Status (Active/Inactive), and Last Contact Date. Include 20 sample contacts. Add a button to create new contacts with a modal form.

>

Contact Detail: Click a contact row to see their full profile with all fields, a notes section, and their interaction history.

>

Deals Page: A kanban board with columns for Lead, Qualified, Proposal, Negotiation, Closed Won, and Closed Lost. Each deal card shows the deal name, company, value, and assigned rep. Include 12 sample deals. Support drag and drop between columns.

>

Activities Page: A chronological activity feed showing logged calls, emails, and meetings. Each entry shows the type icon, contact name, description, and timestamp. Include 15 sample activities.

>

Use a professional design with a slate/blue color scheme. Include sample data throughout so the app looks realistic."

Select React as your framework, then click Create App.

GenMB Generation Walkthrough

After submitting the prompt, GenMB's pipeline processes your request:

What Happens Behind the Scenes

  1. Analysis: The AI parses your requirements and identifies 5 distinct views with interconnected data
  2. Planning: It structures the component hierarchy and data flow between views
  3. Generation: Code is written for each component, with shared state for contacts, deals, and activities
  4. Validation: The Security Scanner checks for vulnerabilities, the Code Healer fixes any structural issues
  5. Finalization: Files are assembled and your app appears in the preview

The entire process takes about 30 to 60 seconds depending on complexity.

Contacts List and Detail Views

The generated contacts page includes several key elements:

Contacts Table

The table displays all contacts with sortable columns. Click any column header to sort ascending or descending. The search input filters across name, email, company, and phone simultaneously.

Contact Creation

The "Add Contact" button opens a modal form with fields for:

  • Full name (required)
  • Email (required)
  • Phone number
  • Company
  • Status (Active/Inactive dropdown)
  • Notes (textarea)

Contact Detail Page

Clicking a contact row navigates to their detail view, which shows:

  • All contact fields in an organized layout
  • An interaction history timeline
  • A notes section for free-form text
  • Quick action buttons (edit, log activity, delete)

To refine the contacts experience:

"Add a filter dropdown for Company that shows all unique companies from the contacts list"

"Add contact tags — each contact can have multiple tags like 'VIP', 'Partner', 'Prospect'"

Deal Pipeline View

The kanban board is one of the CRM's most powerful features. Each column represents a deal stage, and cards can be dragged between columns to update their status.

Deal Cards

Each card displays:

  • Deal name
  • Associated company
  • Deal value (formatted as currency)
  • Assigned sales rep
  • Days in current stage

Drag and Drop

Click and drag any deal card to move it to a different stage. The pipeline value summaries at the top of each column update automatically.

Adding New Deals

"Add a 'New Deal' button that opens a form with fields for deal name, company (dropdown from existing contacts), value, assigned rep, and starting stage"

Adding Supabase for Persistence

The generated CRM uses local state and sample data. To make it persistent, add Supabase:

Step 1: Enable the Supabase Integration

Open the Integrations panel and enable Supabase with your project URL and anon key.

Step 2: Create the Tables

In your Supabase dashboard, create the necessary tables:

```sql

create table contacts (

id uuid default gen_random_uuid() primary key,

name text not null,

email text,

phone text,

company text,

status text default 'active',

notes text,

created_at timestamp default now()

);

create table deals (

id uuid default gen_random_uuid() primary key,

name text not null,

contact_id uuid references contacts(id),

company text,

value decimal default 0,

stage text default 'lead',

assigned_to text,

created_at timestamp default now()

);

create table activities (

id uuid default gen_random_uuid() primary key,

contact_id uuid references contacts(id),

type text not null,

description text,

created_at timestamp default now()

);

`

Step 3: Regenerate with Supabase

"Connect all data to Supabase. Load contacts, deals, and activities from the database. Save new contacts and deals to Supabase. Log activities to the activities table."

GenMB regenerates the data layer to use Supabase queries instead of local state.

Deploying Your CRM

Click Deploy to publish your CRM to a live URL. For a team CRM, consider:

  1. Add authentication: Enable Clerk so only your team can access the CRM
  2. Custom domain: Set up crm.yourcompany.com for a professional URL
  3. Mobile access: The generated layout is responsive, so your team can use it on tablets during client meetings

Next Steps

Once your basic CRM is running, extend it with these refinements:

"Add an email template feature where I can create and save email templates, then send them to contacts"

"Add a reporting page with charts showing deals closed per month, revenue by rep, and conversion rates by stage"

"Add import from CSV — let me upload a CSV file of contacts and bulk-import them"

"Add a reminder system — let me set follow-up reminders on contacts that show as notifications"

Each refinement adds new functionality while preserving everything already built. Within a few iterations, you will have a CRM tailored exactly to your team's workflow.

Summary

Building a CRM with GenMB takes about 5 minutes from prompt to working application. Start with a detailed prompt covering contacts, deals, activities, and a dashboard. Use React for the best state management across interconnected views. Add Supabase for data persistence when you are ready to move beyond sample data. Deploy with authentication for team use, and iterate through chat refinement to customize the CRM to your exact workflow.

Frequently Asked Questions

Can the AI-generated CRM handle real customer data?
Yes, once you connect Supabase for persistence. The generated app starts with sample data, but after enabling the Supabase integration and creating the database tables, all data is stored in your own Supabase project with full CRUD operations.
Is the CRM mobile-friendly?
Yes. GenMB generates responsive layouts by default. The CRM works on tablets and mobile devices, which is particularly useful for sales teams who need to access contact information during meetings.
Can I add custom fields to the CRM?
Absolutely. Use chat refinement to add any fields you need, for example: "Add a Lead Source dropdown to contacts with options: Website, Referral, Cold Call, Event, Social Media." The AI updates the forms, tables, and detail views accordingly.
Ambuj Agrawal

Ambuj Agrawal

Founder & CEO

Award-winning AI author and speaker. Building the future of app development at GenMB.

Follow on LinkedIn

Ready to start building?

Turn your ideas into reality with GenMB's AI-powered app builder.