How to Build a Simple CRM with Google AppSheet: A Full Step-by-Step Guide

In today's competitive market, managing customer relationships is everything. But for many small businesses, freelancers, and growing teams, commercial Customer Relationship Management (CRM) software is often too expensive, too complicated, or too bloated with features you’ll never use.

What if you could build your own simple, powerful, and custom CRM for free, using the tools you already have in Google Workspace?

Enter Google AppSheet. This powerful no-code platform, which is part of the Google Cloud family, allows you to turn your Google Sheets into fully functional web and mobile apps.

In this comprehensive, up-to-date guide, we will walk you through every single step of building a simple yet robust CRM from scratch. You will learn how to manage contacts, track companies, log interactions, and even create automations like 'click-to-email' buttons. No coding is required.

🤔 What is Google AppSheet?

Before we build, let's understand the tool. Google AppSheet is a no-code development platform. In simple terms, it reads the data from your Google Sheet (or other sources like SQL databases) and automatically generates a functional app with views, forms, and buttons. You then customise this app in a visual editor.

It's the perfect solution for creating internal business tools, and a CRM is one of the most popular use cases.

✨ Why Build Your CRM with AppSheet?

  • It's Cost-Effective: If you have a Google account, you can build and use AppSheet apps for free (up to 10 users, with core features).
  • Fully Customisable: You are in complete control. You only add the fields and features your business actually needs, avoiding the clutter of off-the-shelf software.
  • Deep Google Integration: Your app will work seamlessly with your Google Workspace. The data lives in your Google Drive, and you can create actions that link directly to Gmail, Google Calendar, and more.
  • Mobile & Web Ready: The app you build works instantly on both desktop browsers and as a mobile app (iOS and Android) that can even function offline.

🚀 Step-by-Step: Building Your AppSheet CRM

Right, let's get to the practical part. We will build a relational CRM with three core components: Companies, Contacts, and Interactions (like calls or meetings).

Step 1: Plan Your Data (The Blueprint)

This is the most important step. A good app is built on a good data structure. We are going to use a single Google Sheet with three separate tabs (or "sheets").

  1. Go to sheets.google.com and create a new, blank spreadsheet.
  2. Name this spreadsheet something clear, like "My Business CRM".
  3. You will create three tabs at the bottom. Rename them: Companies, Contacts, and Interactions.

Step 2: Set Up Your Google Sheet Tables

Now, you must set up the column headers for each tab exactly as follows. These headers are the "fields" your app will use.

On the Companies tab:

  • Company ID
  • Company Name
  • Website
  • Phone
  • Address

On the Contacts tab:

  • Contact ID
  • First Name
  • Last Name
  • Email
  • Phone
  • Role
  • Company ID (This is the "key" that will link a Contact to a Company)

On the Interactions tab:

  • Interaction ID
  • Date
  • Type (This will be a dropdown for 'Call', 'Email', 'Meeting')
  • Notes
  • Contact ID (This links the interaction to a specific Contact)

Top Tip: You can add one or two lines of sample data under the headers just to help AppSheet understand the data type, but it's not strictly necessary.

Step 3: Create Your First AppSheet App

This is where the magic begins.

  1. Go to appsheet.com and sign in with your Google account.
  2. On your homepage, click "Create" > "App" > "Start with existing data".
  3. Give your app a name, like "Business CRM".
  4. Choose a category, like "Sales & CRM".
  5. Click "Choose your data".
  6. A Google file picker will pop up. Find and select the "My Business CRM" spreadsheet you just created.
  7. AppSheet will scan the sheet and, in about 30 seconds, generate your app.

By default, it will probably only add the Companies tab. Don't worry, that's normal. You'll see a preview of your app on the right-hand side.

Step 4: Add Your Other Tables (Contacts & Interactions)

Now we need to tell AppSheet about our other two tables.

  1. In the AppSheet editor, go to the "Data" tab (the database icon on the left).
  2. You will see the Companies table is already there. Click the "+ Add Table" button.
  3. Select "Google Sheets" and find your "My Business CRM" spreadsheet again.
  4. This time, AppSheet will ask which sheet (tab) you want to add. Select Contacts and click "Add".
  5. Repeat the process: click "+ Add Table" again, select the spreadsheet, and add the Interactions sheet.

You should now have all three tables (Companies, Contacts, Interactions) listed in your Data tab.

Step 5: Configure Data Types & Relationships

This is how we make the app smart. We need to tell AppSheet what kind of data is in each column and, crucially, how the tables link together.

Click on each table name (Companies, Contacts, Interactions) in the Data tab and review its columns.

For the Companies Table:

  • Company ID: Make sure this is set as the Key (it will have a key icon). For Initial value, you can put UNIQUEID(). This formula tells AppSheet to generate a random, unique ID every time a new company is created.
  • Website: Change the Type to URL.
  • Phone: Change the Type to Phone.

For the Contacts Table:

  • Contact ID: Set this as the Key and use UNIQUEID() for the Initial value.
  • Email: Change the Type to Email.
  • Phone: Change the Type to Phone.
  • Company ID: This is the most important part!
    • Change its Type from Text to Ref.
    • A new option, "Source table", will appear. Select the Companies table.
    • This tells AppSheet that this column "references" the Companies table. You've just created your first relationship!

For the Interactions Table:

  • Interaction ID: Set this as the Key and use UNIQUEID() for the Initial value.
  • Date: Change the Type to Date. You can set its Initial value to TODAY().
  • Type:
    • Change the Type to Enum (this means "list of choices").
    • In the "Values" box, add your options: Call, Email, Meeting.
  • Notes: Change the Type to LongText.
  • Contact ID: Time for the second relationship!
    • Change its Type to Ref.
    • For "Source table", select the Contacts table.

What just happened? By setting up these Ref types, you've automatically linked your data. AppSheet now understands that:

  • A Contact "belongs to" a Company.
  • An Interaction "belongs to" a Contact.

This means when you look at a Company's details, you will automatically see a list of all related Contacts. And when you look at a Contact, you'll see a list of all their related Interactions. That's a CRM!

Step 6: Customise the User Experience (UX)

Your app is functional, but let's make it look good and easy to use.

  1. Go to the "UX" tab (the phone icon on the left). This controls what the user sees.
  2. You will see "Primary Views" (the buttons on the bottom of your app). By default, AppSheet has probably created views for Companies, Contacts, and Interactions.
  3. Let's refine them. Click on the Companies view.
    • Change the "View type" to Deck.
    • Under "View options", set the "Primary header" to Company Name.
    • Set the "Secondary header" to Phone or Website.
    • Click "Save".
  4. Do the same for the Contacts view.
    • Change the "View type" to Deck.
    • Set the "Primary header" to a formula: CONCATENATE([First Name], " ", [Last Name]). This will show the full name.
    • Set the "Secondary header" to Email.
    • Click "Save".
  5. The Interactions view is less important as a main view (it's better to see it inside a contact). You can either delete it (click the bin icon) or change its "Position" from Center to Ref. This hides it from the main bar but keeps it available for the app to use.

Now, test your app in the preview. Click on a Company. You should see its details, and underneath, a list of "Related Contacts". Click on a Contact, and you'll see their "Related Interactions". Click the "+" button to add a new Company or Contact and test your forms.

Step 7: Add Powerful Actions

Actions are buttons that do things. Let's add "click-to-email" and "click-to-call" buttons to our Contacts view.

  1. Go to the "Behavior" tab (the lightning bolt icon on the left).
  2. Click "New Action".
  3. Create the "Email" Action:
    • For this table: Contacts
    • Action name: Email Contact
    • Do this: External: Start an email
    • To: Select the [Email] column.
    • Appearance: Change the "Prominence" to Display inline and choose an email or envelope icon.
  4. Click "Save".
  5. Click "New Action" again.
  6. Create the "Call" Action:
    • For this table: Contacts
    • Action name: Call Contact
    • Do this: External: Start a call
    • Number: Select the [Phone] column.
    • Appearance: Change the "Prominence" to Display inline and choose a phone icon.
  7. Click "Save".

Now, when you look at a Contact's details in your app, you will see two new buttons: "Email Contact" and "Call Contact". Tapping them on your phone will launch your email or phone app automatically.

Step 8: Branding and Deployment

You're almost done! Let's add a final polish.

  1. In the UX tab, go to the "Brand" section.
  2. Here you can upload your company logo, choose a primary colour, and switch between a "light" or "dark" theme.
  3. Once you are happy, look for the "Deployment" tab (the rocket icon).
  4. Run the "Deployment Check". AppSheet will tell you if there are any errors (you shouldn't have any).
  5. Once it's "Ready to deploy", you can move your app from "Prototype" to "Deployed".
  6. Finally, go to the "Users" tab to share your app. You can add the email addresses of your team members. They will receive an email with a link to install the app on their phone and desktop.

Beyond the Basics: Taking Your CRM Further

You now have a fully working, relational CRM. But the journey doesn't have to stop there. The beauty of AppSheet is its scalability. Here are some "extra credit" ideas:

  • Add a "Status" Column: Add a column to your Contacts table called Status (with an Enum type for 'Lead', 'Working', 'Customer', 'Lost'). You can then create filtered "Slices" (in the Data tab) to see only your 'Leads'.
  • Create Dashboards: In the UX tab, you can create a Dashboard view. This allows you to show multiple views on one screen, such as a Company's details and their list of Contacts side-by-side.
  • Track Deals/Opportunities: Add a new table (a new tab in your Sheet) called Deals. You can link this to a Company and give it a Value (Currency type) and Stage (Enum type) to build a simple sales pipeline.
  • Automation: Explore the "Automation" tab (the robot icon). You can create "bots" that send you an email notification every time a new Contact is added, or schedule a daily report.

Your Custom CRM is Ready

Congratulations! You have successfully built a powerful, custom CRM system using Google AppSheet and Google Sheets. You now have a tool that is perfectly tailored to your business, works on all your devices, and didn't cost you a penny in software fees.

By starting with a solid data structure in Google Sheets and leveraging the power of AppSheet's Ref types, actions, and UX controls, you've created a scalable solution that can grow with your business.

Watch the video here

Read More