How to build a CRM (step-by-step guide + free template)

Guillaume Duvernay
/
Nov 19, 2025
/
15
min read

This tutorial guides you through building a complete, AI-powered Customer Relationship Management (CRM) application from scratch. We'll build the entire stack—the database, the application interface, and the automated workflows—using Softr's all-in-one no-code platform.

By the end, you'll have a fully functional, custom CRM that can automatically enrich company data, handle new demo requests, summarize deal interactions with AI, and empower your sales team to send emails directly from the app.

If you prefer, you can directly copy and personalize our AI CRM template.

Custom AI CRM built with Softr without coding

What is Softr and how does it help building an AI CRM?

Softr is a powerful no-code app development platform that lets businesses build the custom, AI-powered applications they need on top of their existing data.

For a sales team, off-the-shelf CRMs are often too rigid, overly complex, or force you into a workflow that doesn't fit. Softr allows you to build a CRM that perfectly matches your sales process. It's a true full-stack builder, meaning you can:

  1. Build your Database: Use the built-in, high-performance Softr Databases to structure all your contacts, companies, and deals exactly how you want.
  2. Build your Interface: Use a simple drag-and-drop editor to create a beautiful and responsive web app with dashboards, Kanban pipelines, and secure user portals.
  3. Build your Logic: Use Custom Workflows and integrated AI features like the AI App Generator and Ask AI to automate data enrichment, send email follow-ups, and get instant insights.

Instead of stitching together multiple tools, you can build, manage, and scale your entire CRM from one place in hours, not months.

What you'll learn in this AI CRM tutorial

We'll cover the following:

  • How to design and structure a relational database from scratch using Softr Databases.
  • How to use database AI enrichment to automatically find a company's industry, employee count, and activity description.
  • How to build a multi-page app with a public-facing lead capture form.
  • How to set up custom user groups and permissions for "Admins" and "Sales Reps" to control visibility.
  • How to display your sales pipeline as an interactive Kanban board with drag-and-drop functionality.
  • How to add the Ask AI feature to let your team have a conversation with your deal histories and contact interactions.
  • How to build Custom Workflows to automate lead handling and send emails directly from your app.
  • How to create on-demand AI summaries for any deal with the click of a button.

Who’s this app for?

This application is designed for any sales team, typically in a small-to-mid-sized business, that finds generic CRMs don't fit their unique workflow. It's perfect for operators, sales managers, and business teams who want to build a tool that their team will actually love to use—one that saves them time instead of creating more admin work.

User groups and jobs to be done

Our CRM will have three main user groups:

  • Visitors (Non-logged in): These are prospects visiting your public-facing page.
    • Job to be done: Submit a "Request a Demo" form to get in touch with your sales team.
  • Sales Reps (Logged in): The primary users of the CRM.
    • Job to be done: Manage their assigned contacts, companies, and deals through the pipeline.
    • Job to be done: Track their tasks and log all interactions (emails, meetings, calls).
    • Job to be done: Use AI to get quick deal summaries, understand prospect history, and send email follow-ups efficiently.
  • Admins (Logged in): Sales managers or operators who need full visibility.
    • Job to be done: View all contacts, deals, and tasks across the entire team.
    • Job to be done: Access global dashboards on team performance, closed-won revenue, and pipeline health.
    • Job to be done: Manage user access and configure the application.

The app’s core structure

Our app will consist of a simple public page for lead capture and a secure, private internal application for the sales team to manage everything.

Pages to be built

  • Public Homepage: A simple landing page with a "Request a Demo" form.
  • Utility Pages: Sign In, Reset Password, User Profile (auto-generated by Softr).
  • App Homepage: An internal dashboard with key metrics (Total Contacts, Open Deals, etc.) and charts.
  • Contacts: A page with a table of all contacts and a detail page for each one.
  • Companies: A grid view of all companies and a detail page for each one.
  • Deals: A Kanban board to manage the deal pipeline and a detail page for each deal.
  • Tasks: A simple list of to-do items for the sales team.
All pages for the CRM app

Database structure

The foundation of our smart CRM is a well-organized database. We will use Softr Databases to create six interconnected tables:

  1. Users: Stores the internal app users (Sales Reps and Admins) and their roles. This table powers the app's login and permissions.
  2. Companies: Stores client company information. This is where we'll use AI to auto-populate data like Industry and Employee Count.
  3. Contacts: Stores individual prospect details (email, job title) and links them to a Company.
  4. Deals: Tracks each sales opportunity, its Amount, Stage (e.g., "New," "Negotiation"), and links it to a Company.
  5. Interactions: This is the fuel for our AI. It's a log of every email, meeting, or note, linked to a Contact.
  6. Tasks: A simple to-do list for sales reps, linked to Users and Deals.

Part 1: Structuring your database in Softr

Let's build the foundation. A powerful app starts with a clean, relational database. We'll use Softr Databases for its speed, scalability, and deep integration with AI features.

1.1. Create your database and tables

  1. From your Softr dashboard, click Create Application.
  2. Select Start from scratch. When prompted for a data source, choose Softr Database.
  3. A new app and a new database will be created. Click the Data tab at the top of the studio to open your database.
  4. You'll see a Users table by default. We'll use that.
  5. Click the + icon in the data tab to create five more tables. Name them:
    • Contacts
    • Companies
    • Deals
    • Interactions
    • Tasks

1.2. Configure the Users table

This table holds your internal team's login info. It's the key to managing permissions.

  1. Click the Users table to open it.
  2. Set the primary column to Email and change its field type to Email. This ensures each user has a unique login.
  3. Add a Full Name field (type: Text).
  4. Add an Avatar field (type: File) for profile pictures.
  5. Add a Role field (type: Select). Click the field to configure it and add two options: Admin and Sales Rep. This field is the cornerstone of our app's permissions.
  6. Add Related Record fields to link users to their work:
    • Assigned Contacts (link to Contacts table, enable "Allow linking to multiple records")
    • Assigned Deals (link to Deals table, enable "Allow linking to multiple records")
    • Assigned Tasks (link to Tasks table, enable "Allow linking to multiple records")

1.3. Configure the Companies table with AI enrichment

This is where we'll add our first piece of AI magic to save our sales team hours of manual research.

Companies table for CRM, powered by AI
  1. Click the Companies table.
  2. Set the primary column to Company Name (type: Text).
  3. Add a Website field (type: URL). This will be the trigger for our AI.
  4. Add an Industry field (type: Select).
  5. Add AI Enrichment:
    • Click the + to add a new field. Scroll down and select AI Agent Field.
    • Name it Activity Description.
    • In the prompt box, write: Generate three concise bullet points in markdown format describing the company's activity, based on the [Company Name] and [Website]. (Use the @ symbol to reference your other fields).
    • Toggle on Web Search. This allows the AI to browse the web for information.
    • Set the trigger to run When a condition is met: [Website] is not empty.
  6. Add a second AI Field:
    • Add another AI Agent Field and name it Number of Employees.
    • Use the prompt: Return the most accurate number of employees for the company with website [Website]. Return only the number.
    • Enable Web Search and set the same trigger ([Website] is not empty).
  7. Add Relations: Add a Related Record field named Contacts (link to Contacts, enable multiple) and Deals (link to Deals, enable multiple).

How this works: Now, whenever you add a company and its website, these AI agents will automatically run, browse the web, and fill in the company's description and employee count for you.

1.4. Configure the remaining tables

Follow this logic to build out the rest of your database structure. Add sample data as you go.

  • Contacts Table:
    • Primary: Email (type: Email)
    • Fields: First Name (Text), Last Name (Text), Job Title (Text), Phone (Phone).
    • Relations: Contact Owner (link to Users, disable "Allow linking to multiple records"), Company (link to Companies, disable "Allow linking to multiple records"), Interactions (link to Interactions, enable "Allow linking to multiple records").
  • Deals Table:
    • Primary: Deal Name (type: Text).
    • Fields: Amount (Currency), Deal Stage (Select: "New Opportunity", "Negotiation", "Closed Won", "Closed Lost"), Close Date (Date), Interaction Digest (Long text).
    • Demo Fields (for our form): Demo Request Email (Email), Demo Request First Name (Text), Demo Request Last Name (Text), Demo Request Message (Long text), Demo Request Date (Timestamp).
    • Relations: Deal Owner (link to Users), Company (link to Companies).
  • Interactions Table:
    • Primary: Title (type: Text or Formula—e.g., CONCAT(Type, " - ", Contact)).
    • Fields: Type (Select: "Email", "Meeting", "Note"), Content (Long text), Direction (Select: "Inbound", "Outbound"), Date (Timestamp).
    • Email Fields: Email Subject (Text), Email Body (Long text), Email to send? (Checkbox).
    • Relations: Contact (link to Contacts), User (link to Users).
  • Tasks Table:
    • Primary: Title (type: Text).
    • Fields: Status (Select: "To Do", "In Progress", "Done"), Description (Long text), Due Date (Date).
    • Relations: Assignee (link to Users), Deal (link to Deals).

Part 2: Building the CRM interface

With our database and sample data ready, let's build the visual part of the app.

2.1. Connect users and set up permissions

This is the most critical first step for a secure app.

CRM user groups and permissions
  1. Go back to the App tab (the paintbrush icon) in the Softr studio.
  2. On the left panel, click the Users tab.
  3. Click Sync with data source and select your Softr Database and the Users table.
  4. Map the Email, Name, and Avatar fields from your table. Click Save and Sync. Your sample users will be imported.
  5. Go to the User Groups section.
  6. Click Add User Group. Name it Admin and set the condition: When the user's 'Role' (from your database) is 'Admin'.
  7. Create another group named Sales Rep with the condition: When the user's 'Role' is 'Sales Rep'.

Now we can make any page or button visible only to Admins or only to Sales Reps.

2.2. Build the public demo request form

Public form for demo requests in Softr
  1. Go to the Pages tab and select the "Homepage."
  2. Click the gear icon next to its name to open Page Settings.
  3. Set Visibility to Everyone. This makes it your public-facing page.
  4. Add a Form block (under the "Forms" category).
  5. In the block's settings (clicking the block), go to the Data tab.
  6. Connect it to your Softr Database and the Deals table. This form will create a new Deal record on submission.
  7. Configure the form fields to map to your database:
    • Map the Email field to Demo Request Email.
    • Map Name to Demo Request First Name.
    • Add a Last Name field and map it to Demo Request Last Name.
    • Add a Message field (and set it to Long text) and map it to Demo Request Message.
  8. Add a Hidden Field (under "Form fields").
    • Map it to Demo Request Date.
    • Set its value to Current Date and Time.
  9. Finally, go to the block's Visibility settings and set it to Non-logged in users.

2.3. Build the internal dashboard and navigation

  1. Create a new page named App Home. In its Page Settings, set Visibility to Logged in users. This is now your secure, internal homepage.
  2. Add a Header block. In its settings, add links to the Contacts, Companies, and Deals pages (you'll need to create these blank pages first from the "Pages" panel). This will be your main app navigation.
  3. Add Metric blocks (under "Charts & Metrics") to the page.
    • Connect one to the Contacts table. Set the Value to Contacts (or any field) and Aggregate to Count. This shows a live count of "Total Contacts."
    • Add another for Companies (Count).
    • Add one for Deals. Set Aggregate to Sum of Amount. Add a filter: Deal Stage is not "Closed Won" AND Deal Stage is not "Closed Lost". This creates a "Total Open Pipeline Value" metric.

2.4. Build the Deals pipeline (Kanban) and details page

CRM deals management kanban
  1. Go to your "Deals" page.
  2. Add a Kanban block (under "Lists").
  3. Connect it to your Deals table.
  4. In the Data tab, set the Group by option to your Deal Stage field.
  5. Check the box for Enable Drag & Drop. This is a key feature: your sales reps can now visually move deals through the pipeline, and it updates the database instantly.
  6. Configure the Item On Click action to Open Detail Page. Select "Create New Page" and name it "Deal Details."

2.5. Add on-demand AI chat with Ask AI

Ask AI for smart CRM insights

This is where the CRM gets really smart. We'll add an AI assistant to our "Deal Details" page.

  1. Go to the "Deal Details" page Softr just created. You'll see a List Details block. Configure it to show key deal info (Amount, Deal Owner, Company).
  2. Add a Tabs block to organize related information. Create tabs for "Company," "Contacts," and "Interactions."
  3. In the Interactions tab, add a List block and connect it to the Interactions table.
  4. This is important: add a Conditional Filter to the list block so it only shows relevant interactions.
    • Contact's Company is Current Record's Company. (This complex filter links the interaction's contact, to that contact's company, and matches it to the deal's company).
  5. Activate AI Chat:
    • On this Interactions list block, go to the Actions tab.
    • Find the Ask AI feature and toggle it ON.
    • Customize the button text ("Ask AI") and the welcome message, e.g., "Ask me anything about the history of this deal."

Now, when a sales rep opens a deal, they can click "Ask AI" and have a direct conversation with the entire history of that deal's interactions. They can ask, "What was the main objection in our last meeting?" or "Summarize all emails from the CFO" and get an instant, accurate answer.

2.6. Build the Contacts and Companies pages

Contact page in no-code CRM
  1. On the "Contacts" page, add a Table block. Connect it to the Contacts table. Configure the columns you want to see. Add filters (e.g., filter by Contact Owner).
  2. On the "Companies" page, add a Grid block. Connect it to the Companies table.
  3. Create a "Company Details" page. On it, add a List Details block for the company info. Below that, add a Table block connected to Contacts and add a Conditional Filter: Company is Current Record's Company Name. This creates a dynamic, filterable list of all contacts who work at that specific company.

Part 3: Automating your CRM with Custom Workflows

The interface is built; now let's make it smart. We'll build three automations using Softr's Custom Workflows to handle the app's logic.

3.1. Workflow 1: Handle new demo requests

Workflow to handle and enrich new demo requests

This workflow will run when a prospect fills out our public form. It will check if the contact exists, create them if not, find their company info using AI, and notify the team.

  1. Go to the Workflows tab in the top bar of the studio.
  2. Create a new workflow.
  3. Trigger: Select Record meets condition.
    • Table: Deals
    • Condition: Demo Request Email is not empty. (This isolates deals created by our form).
  4. Action: Select Find multiple records (from the Softr Database actions).
    • Table: Contacts
    • Condition: Email is [Trigger's Demo Request Email]. (We are checking for duplicates).
  5. Action: Add a Conditional Branch.
    • If Branch (New Contact): [Find Record's recordId] is empty.
      • Action: Create record in Contacts. Map Email, First Name, Last Name from the trigger's Deal record.
      • Action: AI Custom Prompt (under "AI"). Prompt: Based on the domain of [Trigger's Email], strictly return the company name. Enable Web Search.
      • Action: Create record in Companies. Map Company Name from the AI step's output. You can also link the newly created Contact here.
    • Else Branch (Existing Contact): (You could add an action here to link the existing contact to the new deal, but for now, we'll leave it).
  6. Action (after the branch): Post to Slack.
    • Message: "New demo request from [Trigger's Demo Request Email]! :tada:"

3.2. Workflow 2: Send emails from the app

This lets reps send an email from a contact's page and logs the interaction.

Softr workflow to send emails
  1. Prep: On your "Contact Details" page, add a Form block. Configure it to create a new record in the Interactions table. Add fields for Email Subject and Email Body. Add a Hidden Field for Email to send? and set its value to true.
  2. Workflow Trigger: Record meets condition.
    • Table: Interactions
    • Condition: Email to send? is checked (true).
  3. Action: Send Email (a native Softr action).
    • To: [Trigger's Contact Email]
    • Subject: [Trigger's Email Subject]
    • Body: [Trigger's Email Body]
    • Reply-to: [Trigger's User Email] (This pulls the logged-in sales rep's email).
  4. Action: Update record.
    • Table: Interactions
    • Record ID: [Trigger's Record ID]
    • Action: Update the Content field with the Email Subject and Email Body to create a permanent log of the sent message.

3.3. Workflow 3: On-demand AI deal summary

This workflow is the "summarize" button we saw. It's triggered by a user, scans all interactions, and updates the deal with an AI summary.

  1. Prep: On the "Deal Details" page, add a Button block. Set its action to Run Custom Workflow. Create a new workflow and pass the Record ID of the deal.
  2. Workflow Trigger: Run Custom Workflow.
  3. Action: In the trigger settings, enable Show waiting screen. This gives the user feedback while the AI works.
  4. Action: Find record.
    • Table: Deals
    • Record ID: [Trigger's Deal ID].
  5. Action: Find multiple records.
    • Table: Interactions
    • Condition: Company is [Find Deal's Company]. (Finds all interactions for this deal's company).
  6. Action: AI Custom Prompt.
    • Prompt: "You are a sales assistant. Summarize the following interactions: [Find Interactions' Content]... Also take into account the initial demo request: [Find Deal's Demo Request Message]... Return 3 bullet points on the deal's status, progress, and next steps."
  7. Action: Update record.
    • Table: Deals
    • Record ID: [Trigger's Deal ID]
    • Action: Set the Interaction Digest field to the [AI Prompt's Result].
  8. Action: In the trigger's On Success settings, choose Reload Page to show the new summary.

Your app is live

Congratulations! You have successfully built a powerful, custom AI-powered CRM using Softr. You've learned how to structure a Softr Database, connect it to a front-end, use database AI agents, manage user permissions, add Ask AI for on-demand insights, and build complex Custom Workflows to automate your sales process. This full-stack application is now ready to save your team time and help you close more deals.

If you prefer, you can directly copy and personalize our AI CRM template.

From here, you can continue to customize and expand your CRM to perfectly fit your business needs. Happy building!

Guillaume Duvernay

With 6 years of experience in no-code and a strong interest in AI, Guillaume joined Softr's growth team to help organizations be empowered to build the business apps they need. He has built over 50 apps and software and regularly shares best practices and ideas on LinkedIn and YouTube.

Categories
Tutorials
No-code

Frequently asked questions

  • What is a CRM?
  • How to build a CRM from scratch?
  • How can AI automate data entry in my CRM?
  • Why is Softr the best platform to build a CRM?
  • What are the benefits of building a custom AI CRM over buying one?

Build an app today. It’s free!

Build and launch your first portal or internal tool in under 30 minutes