Close the loop after every Cal.com meeting with a Granola recap
When a new Granola note lands, an agent matches it to the Cal.com booking, emails attendees a recap, logs it in HubSpot, and advances the deal.
Build me an agent workflow that closes the loop after every Cal.com meeting using the Granola note. Trigger: poll Granola for new_note. When a new note is created, run the agent.
Step 1. Pull the full note from Granola using Get Note, including the summary, attendees, calendar event details, and transcript.
Step 2. Find the matching Cal.com booking. Call Cal.com Get All Bookings filtered by the attendee email from the Granola note and a date window of plus or minus 2 hours around the note's calendar event start time. Use the result to identify the booking, the event type, and the host. If no booking matches, continue without booking context and skip the deal stage update later.
Step 3. Draft a concise recap email. It should cover: a one-sentence meeting summary, key decisions, action items grouped by owner, and clearly stated next steps with dates. Keep it scannable and specific, not generic. Reference the Cal.com event type in the subject line when available (for example, "Recap: Discovery call with Acme").
Step 4. Send the recap from Gmail using Send a Message. Address it to the external attendees only (anyone whose email domain does not match the host's domain). CC the host. Send as plain text or simple HTML.
Step 5. Log the recap in HubSpot. For each external attendee, look up the contact with HubSpot Get Contact using email as the idProperty. Then call HubSpot Create Note with a structured body (summary, decisions, action items, next steps, link to the original Granola note) and associate it with that contact. If the contact is associated with a company or deal, associate the note with those too.
Step 6. For every action item that has a clear owner, call HubSpot Create Task. Set the subject to the action item, parse the due date from the discussion (default to 7 days out if no date is mentioned), set priority to medium, and associate the task with the contact and deal. Map the action item owner to a HubSpot user when possible; otherwise assign to the meeting host.
Step 7. If the Cal.com event type indicates a sales call (for example "Discovery", "Demo", "Pricing", "Negotiation") and the meeting produced a concrete next step, update the associated HubSpot deal stage with Update Deal. Use sensible mapping: discovery completed moves to qualified, demo completed moves to evaluation, pricing discussed moves to proposal, verbal commit moves to commit. If the meeting did not produce a clear next step, do not change the stage.
Guardrails. Do not send the email if the note has fewer than 3 substantive bullets or looks like a personal or 1:1 internal meeting. Do not update a deal stage backward. If multiple deals are associated with the contact, prefer the most recently updated open deal and mention it in the HubSpot note. Always include a link back to the Granola note in the HubSpot note body so a human can verify.
Output a short run summary indicating: which booking matched, who the recap was sent to, the HubSpot note ID, the number of tasks created, and whether the deal stage was updated.
Additional information
What does this prompt do?
- Watches Granola for new meeting notes and pulls the summary, attendees, and transcript automatically.
- Finds the matching Cal.com booking and event type so the recap reflects what the meeting was actually for.
- Sends a clean recap email from your Gmail to external attendees, covering decisions, action items, and next steps.
- Logs a structured note on the HubSpot contact and creates a HubSpot task for every action item with an owner and due date.
- If it was a sales call with a clear next step, moves the associated HubSpot deal to the appropriate stage.
What do I need to use this?
- A Granola account where your team's meeting notes get created.
- A Cal.com account used to schedule the meetings, so the agent can match notes to bookings.
- A Gmail account the recap email will be sent from.
- A HubSpot account with permission to create notes, create tasks, and update deal stages.
How can I customize it?
- Change who the recap email goes to. By default it goes to external attendees, but you can include internal teammates or send a separate internal version.
- Tune the recap tone and structure. Make it longer, shorter, more formal, or split into customer-facing versus internal sections.
- Decide which meetings should advance a deal stage. Limit it to specific event types (like demos or discovery calls) or specific HubSpot pipelines.
- Adjust how action items get assigned. Match owner names to HubSpot users, default to the meeting host, or skip task creation for informal calls.
Frequently asked questions
What if the Granola note doesn't match a Cal.com booking?
Will it email customers automatically without my review?
How does it know which HubSpot deal to update?
Can I use this with Cal.com on the free plan?
What happens if a meeting has no clear action items?
Stop letting follow-ups die in your notes app.
Connect Granola, Cal.com, Gmail, and HubSpot once, and Geni closes the loop on every meeting for you.