← Playbooks

Meeting notes to CRM: Fireflies + Make + HubSpot

Automatically push every sales call's summary and action items into the right HubSpot contact as a note, using Fireflies Webhooks V2, the Fireflies GraphQL API and a Make scenario.

Who it's for: Sales reps, founders and account managers who forget to update the CRM after calls. Ops people who build the automation for the team. No code, but you'll paste one GraphQL query.

Time: 60 to 90 minutes · Cost: Fireflies plan with API access, a Make plan (free tier for testing) and HubSpot (free CRM works); check each vendor's pricing page

Tools: Fireflies.ai, Make, HubSpot Breeze, n8n, Fathom, Otter.ai

Prerequisites:

  • A Fireflies account that records your meetings and an API key from its Integrations / API settings
  • A Make account
  • A HubSpot account with permission to edit contacts
  • A recent recorded test meeting with an external attendee

The CRM is only as good as what reps put into it, and after a day of back-to-back calls, nobody writes thorough notes. Fireflies already produces a summary and action items for every recorded meeting. This playbook pipes them into HubSpot automatically with a Make scenario, so every contact record carries the latest conversation. Fireflies details are from its Webhooks V2 and GraphQL API docs.

How it works

  1. Fireflies finishes summarizing a meeting and POSTs { "event": "meeting.summarized", "meeting_id": "…" } to a Make webhook.
  2. Make calls the Fireflies GraphQL API for that meeting’s title, date, attendees, overview and action items.
  3. Make finds each external attendee in HubSpot by email.
  4. Make creates a note (and optionally tasks) on that contact.

Step 1: Map what should land in the CRM

Decide the note format before you build. A useful template:

📞 {title} ({date}, {duration} min)
Summary: {overview}
Action items:
{action_items}
Recording: {transcript_url}

Agree with the team which meetings count. If you record internal stand-ups too, you’ll filter to meetings with at least one attendee outside your company domain (Step 7).

Step 2: Create the Make webhook

In Make, create a new scenario. Add the Webhooks → Custom webhook module as the trigger, click Add, name it “Fireflies summarized”, and copy the generated HTTPS URL. Leave the scenario open with Run once active so Make can learn the payload structure from the first delivery.

Step 3: Subscribe Fireflies Webhooks V2

Open the Fireflies Webhooks V2 configuration page (app.fireflies.ai/integrations/api/webhook):

  1. Paste the Make URL into Webhook URL.
  2. Optionally set a Signing Secret for payload signature verification (recommended once it works).
  3. Under Event Subscriptions, select meeting.summarized.
  4. Save, then click Send Test Event. Make should show a received bundle with event, timestamp and meeting_id.

Note: webhooks fire for meetings you own. On Enterprise teams a Super Admin webhook can receive the team’s meetings; otherwise each rep sets up their own.

Step 4: Fetch the transcript summary with GraphQL

Add an HTTP → Make a request module:

{
  "query": "query Transcript($id: String!) { transcript(id: $id) { id title date duration transcript_url meeting_attendees { displayName email name } summary { overview action_items } } }",
  "variables": { "id": "{{1.meeting_id}}" }
}

Turn on Parse response. Run once with your test meeting and check that data.transcript.summary.overview has text. Store the API key in a Make connection or variable rather than typing it into many modules.

Step 5: Find the HubSpot contact

Add an Iterator over meeting_attendees so each attendee is processed separately. Then a Filter that skips your own domain (email does not contain @yourcompany.com).

Next, add the HubSpot CRM module that searches contacts (search by the email property) and connect your HubSpot account. Map the attendee’s email. If HubSpot returns a contact ID you continue; if not, see Step 7.

Step 6: Create the note and tasks

Add a HubSpot module that creates an engagement or note, associated with the contact ID found above. Map the body using your Step 1 template. Fireflies returns action_items as text, so it drops straight in.

Optional: create a HubSpot task due in two business days titled “Follow up: {title}” for the deal owner. That single task is often worth more than the note, because it puts the follow-up on a calendar.

If a deal is associated with the contact, you can also associate the note with the deal so it shows on both records.

Step 7: Handle unknown attendees and errors

Real meetings are messy. Add branches with a Router:

Step 8: Test end-to-end and roll out

Record a 5-minute test call with a colleague using an external email that exists in HubSpot. Wait for Fireflies to summarize it, then confirm:

  1. Make received the webhook.
  2. The GraphQL response has a summary.
  3. The note appears on the right contact, formatted correctly.

Turn the scenario ON, set scheduling to “Immediately” (webhook-triggered), and add the signing secret. Roll out rep by rep, and ask each person to check their first five notes.

Pitfalls

Alternatives

Don’t use Fireflies? Fathom and Otter are popular notetakers with their own CRM integrations. Some teams skip the custom build and use a notetaker’s native HubSpot sync; it’s faster to set up but you lose control over format and filtering. Prefer self-hosting? Rebuild the same flow in n8n with a Webhook node, an HTTP Request node and the HubSpot node. See Otter vs Fireflies.

What a good note looks like

After the scenario has run for a week, a typical contact record shows a note like this:

📞 Acme <> YourCo: pricing follow-up (Oct 12, 32 min)
Summary: Dana confirmed budget approval for Q1 and wants a
security review before signing. Main concern is SSO support.
Action items:
- Send SOC 2 report and SSO docs (you)
- Dana to loop in IT lead Sam for review call
- Schedule review call week of Oct 20
Recording: https://app.fireflies.ai/view/...

Reps stop writing notes, managers see real context in pipeline reviews, and anyone picking up the account later can read the history in a minute.

Measuring whether it worked

Pick two numbers before launch and check them after a month:

  1. Percentage of external meetings with a CRM note (pull meetings from Fireflies, notes from HubSpot). Teams typically go from patchy coverage to nearly all.
  2. Follow-up speed: the time from meeting to the first follow-up email or task completion.

If coverage is high but follow-ups don’t improve, the tasks in Step 6 need owners and due dates that reps actually see. If notes are ignored, shorten them: the overview plus action items is usually enough.

FAQ

Does Fireflies have webhooks?

Yes. Fireflies Webhooks V2 can send meeting.transcribed, meeting.summarized and meeting.bot_joined events to an HTTPS URL you configure. Webhooks V1 is deprecated and new V1 webhooks cannot be saved.

What does the Fireflies webhook contain?

A small JSON payload with the event name, a timestamp and the meeting_id (the same as the transcript ID). You then query the Fireflies GraphQL API with that ID to get the summary, attendees and action items.

Which Fireflies event should trigger the CRM update?

Use meeting.summarized, because it fires once the AI summary exists. meeting.transcribed can fire before the summary is ready.

Can I do this with n8n or Zapier instead of Make?

Yes. Any tool that can receive a webhook, make an HTTP POST and call HubSpot works. The steps are the same: webhook in, GraphQL query, contact search, note create.

Will this overwrite my CRM data?

No. This playbook only creates notes and tasks associated with existing contacts; it does not edit contact properties.

Last checked against official docs: October 2026 (Fireflies Webhooks V2, Transcript query and Summary schema docs). Prices and UI labels change; confirm on each vendor's site.