How to Build a Self-Maintaining CRM with Cal.com, Attio, and Granola

79% of sales meeting data never enters the CRM. Here's how three workflows wire Cal.com, Attio, and Granola into a system that adds enriched leads on booking, briefs the rep before the call, and logs meeting notes after.

How to Build a Self-Maintaining CRM with Cal.com, Attio, and Granola

You have a call in 10 minutes. You open Attio, search for the prospect, find a half-empty record from three months ago. No company info, no LinkedIn, no notes from the last conversation. You Google them, skim their company's About page, and hope you remember what you discussed last time.

After the call, you have five minutes before the next one. You should update Attio with what was discussed, the next steps you agreed to, and the fact that they're evaluating a competitor. Instead, you jump straight into the next call. The notes stay in your meeting app. The CRM stays stale.

This is how 79% of opportunity data goes missing. Not bad data. Missing data.

Three gaps in every sales rep's meeting cycle

CRM decay isn't one problem. It's three.

At booking time, new leads arrive via Cal.com but nobody creates the CRM record until the meeting is imminent -- if at all. Leads slip through. Duplicates pile up.

Before the meeting, reps waste time assembling context. Sales professionals spend roughly a third of their time locating information before calls. They're checking LinkedIn, Googling the company, searching old email threads. All because the CRM record doesn't have what they need.

After the meeting, reps are supposed to log notes. 68% of sales professionals say this is their most time-consuming task. After back-to-back calls, it gets skipped.

The tools exist to fix all three. Cal.com knows who's booking. Attio holds the records. Granola captures what was discussed. Three workflows connect them into a loop.

Granola is one of my favorite services

Granola captures meeting notes by hooking into your system audio -- no bot joins your call, no awkward "this meeting is being recorded by an AI" moment. You jot down a few keywords during the call, and afterward Granola's AI fleshes them out into structured notes with decisions, action items, and key quotes.

It just launched a Personal API that makes meeting notes programmatically accessible. Meeting content was the last piece locked in a silo -- Cal.com already has webhooks, Attio already has an API. Now Granola is a data source too. So I integrated it on General Input and built the self-maintaining CRM I actually use to run my own sales process. Here's the setup.

Three workflows, one self-maintaining CRM

Workflow 1: Cal.com booking to Attio lead with enrichment. When a demo meeting is booked via Cal.com, the workflow takes the guest's email and checks Attio for an existing contact. If they're already in the CRM, it skips creation. If they're new, it creates the lead. Then it researches the guest -- Company Enrichment pulls industry, size, funding, and tech stack. Person Enrichment adds job title, career history, and social profiles. Research notes get added to their Attio record. The lead is ready before the rep thinks about it.

Workflow 2: Pre-meeting sales brief via Slack. One hour before the meeting, the rep gets a Slack DM with a briefing. It pulls the Attio contact record (including the enrichment notes from Workflow 1 and any past meeting notes from Workflow 3), searches for recent news about the company, and packages it all into a concise brief. The rep walks into the call informed without opening a single tab.

Workflow 3: Granola meeting notes to Attio. After the meeting, the workflow pulls the enhanced notes from Granola, matches the attendee to their Attio record, and adds the meeting content -- what was discussed, decisions made, next steps. The CRM record stays current. When the same contact books another meeting weeks later, Workflow 2 will include these notes in the next pre-meeting brief.

The three workflows form a cycle. Each one feeds the others. The CRM enriches on booking, briefs the rep before the call, and updates itself after. The rep never opens Attio.

Setup: about 5 minutes per workflow. Cost: pennies per run.

The compounding effect

The real value shows up on the third, fourth, fifth meeting with the same contact. Each conversation's notes accumulate in Attio. Each pre-meeting brief gets richer because it draws on more history. The CRM becomes a genuine knowledge base -- not a graveyard of "call completed" entries.

When a rep hands off an account or leaves the company (sales turnover runs ~35% annually), the context stays in the system. The next rep gets the same briefings, the same history, the same enrichment. Nothing walks out the door.

Automate workflows like
these in minutes.

Sign up and start building with Geni today.

Get started