Close the loop after every Cal.com meeting with a Granola recap

By General Input

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.

Integrations

  • Granola
  • Cal.com
  • Gmail
  • HubSpot

Type

Agentic Task

Categories

  • Sales
  • Operations

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.

Related prompts

Explore more prompts
Win back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationChase the paperwork every new client and vendor still owesLusha prospecting workbench with credit-safe revealsWhich companies your LinkedIn ads reach, matched to your CRM