Gmail + Google Calendar: Fathom summaries to your CRM
LoginSign Up
Gmail
+
Google Calendar

Fathom meeting summaries that update your CRM

When a Fathom summary lands in your Gmail, Luo finds the matching calendar event, identifies who was on the call, and updates the right deal — log the activity, advance the stage, or open a new deal if the meeting was a fresh prospect.

Valentin SattingerBy Valentin Sattinger
CRMWebhook-drivenSales activity log

After a call, the question is always who heard what. Fathom writes the summary. Luo wires it back to the deal so nothing falls between the calendar and the CRM.

The activity log nobody writes

A typical sales week ends with a stack of recorded calls and a CRM that doesn’t reflect any of them. Fathom summarizes the meeting fine — the gap is between “summary in my inbox” and “activity logged against the right deal.” Most reps either type it up themselves on Friday, batch it badly, or skip it.

The pieces are all there. The calendar knows who was on the call. The CRM knows which deal those people are tied to. The email already contains the summary text. They just don’t speak to each other unless something stitches them together — and that stitching is the part you’d otherwise hire a person to do.

Email arrives, deal updates itself

  1. A new Gmail message fires the webhook. Luo listens for any inbound message — no polling, no Zap. The trigger fires on every email; the next step filters.
  2. Filter to Fathom only. Reject anything not from no-reply@fathom.video. Reject anything that looks like a billing or account email even if it came from Fathom. Continue only if the subject reads like a meeting recap.
  3. Find the matching calendar event. Query Google Calendar with the meeting title in a tight window around when the email arrived (a few hours before, half an hour after), then broaden if nothing matches. From the matched event, pull every attendee’s email.
  4. Match attendees to a CRM deal. Search open deals for any contact whose email matches an attendee. Fall back to a company-name match if no direct hit. If neither yields a confident match, the agent has to decide whether this was even a sales meeting.
  5. Update or create. Matched deal: log the activity (summary, action items, key points), advance the stage only if the meeting clearly signaled it, prepend a dated note. Unmatched but judged a sales meeting: create the company (if needed), the contact(s), the deal, and the activity. Non-sales meeting: do nothing, notify.

Sender filter, match window, sales-meeting rubric

  • Sender allowlist — defaults to Fathom’s no-reply address. Add Otter, Grain, Read.ai, or a custom transcription sender if your team uses something else.
  • Calendar match window — defaults to a few hours before the email arrived through half an hour after. Widen for teams whose summaries land slowly; tighten if back-to-back meetings collide.
  • Sales-meeting rubric — the agent decides whether an unmatched meeting is worth a new deal, based on signals in the summary (pricing talk, trial discussion, decision-maker present). Rewrite the rubric in plain language to match how your team qualifies.
  • Stage advancement guardrails — by default the deal stage only advances on a clear signal (“they agreed to proceed”, “they declined”). Tighten or relax the threshold in the prompt.
  • Notification copy — what gets pushed (or sent to Slack) on every action: deal updated, new deal created, non-sales meeting noted.

One inbound email; the right deal updates itself — and if no deal exists, the right one gets created.

Configuration, not code

Spelled out in your favorite scripting language this is a few hundred lines: Gmail watcher, calendar lookup, fuzzy attendee matching, CRM writes, an LLM call to judge “is this a sales meeting.” Each piece is fine in isolation; maintaining them as a unit is where things break.

The pitch is that the description above — sender filter, match window, sales-meeting rubric, what to do on match or no-match — IS the code. Change the filter, the behavior follows. Rewrite the rubric, the threshold moves. The artifact you maintain is the spec, not the glue between five systems.