Auto-log Grain sales calls to HubSpot with notes and follow-up tasks
As soon as a Grain recording finalizes, write the AI summary and highlights to the right HubSpot contact and deal, and turn every action item into an owned task.
Build me an agent workflow that automatically logs my Grain sales calls into HubSpot the moment a recording finalizes.
Trigger: a Grain webhook on the recording.added event. Register it on first run using Grain's Create Webhook operation, pointing at this workflow.
When the webhook fires, the agent should:
1) Pull the full recording from Grain using Get Recording, requesting the AI summary, highlights, transcript, and participants. Capture the recording's share URL too.
2) Decide whether the meeting is external. Check the participants list: if every attendee shares my company's email domain (provided as an input named company_domain), stop and exit quietly. Only proceed if at least one participant is on an outside domain.
3) For each external participant, look them up in HubSpot using Get Contact with idProperty=email. If no contact is found, skip that attendee (do not create a new contact). For matched contacts, also collect any associated deals that are not in a closed-won or closed-lost stage.
4) Compose a single meeting note body containing: the meeting title and date, the Grain AI summary, a short bulleted list of key highlights where each highlight is rendered as a clickable link to its Grain timestamp, and a final 'Watch the recording' link back to Grain. Use HubSpot's Create Note operation to write that note and associate it with the matched contact and with any open deals associated with that contact.
5) Extract action items from the AI summary and transcript. For every action item, call Create Task in HubSpot with: subject set to the action item, body set to a one-line context blurb plus a link to the Grain recording, owner set to the workflow's user (me), associations to the same contact and any open deals, and a due date inferred from the transcript if a clear date or relative time is mentioned. If no due date is mentioned, default to three business days from today.
Guardrails: never create duplicate notes if the same recording webhook fires twice (dedupe on recording id). Never create a contact, deal, or company. Never reassign existing tasks. If the Grain recording lacks an AI summary (free plan), log a clear error and stop.
Inputs the workflow should ask me for on first run: my company's email domain (e.g. acme.com), and the HubSpot owner id to assign tasks to (default: the connected user).
Additional information
What does this prompt do?
- Listens for Grain to finish processing a new sales call, then pulls the AI summary, highlights with clickable timestamps, transcript, and the participant list.
- Finds the matching HubSpot contact by email for every external attendee, and writes a clean meeting note onto each contact and any open deal they are on.
- Reads the action items out of the call and creates a HubSpot task for each one, assigned to you with a due date pulled from the conversation or set three business days out.
- Skips internal-only meetings automatically so you only see real customer conversations land in your CRM.
What do I need to use this?
- A Grain account on a plan that includes AI summaries and highlights (Business or Enterprise).
- A HubSpot login with permission to read contacts and deals and to create notes and tasks.
- Your work email domain so the agent knows which attendees count as internal vs external.
How can I customize it?
- Change the fallback due date for action items (default is three business days) or always use a fixed offset.
- Decide whether notes should land only on the contact, or also on every open deal that contact is associated with.
- Tighten or loosen the internal meeting filter, for example by ignoring partner domains or any call with fewer than two external attendees.
Frequently asked questions
Do I need to manually upload each Grain call?
What happens if an attendee is not in HubSpot yet?
Will it spam tasks for internal standups and 1:1s?
Can the AI summary include clickable jumps to specific moments?
Where do action items get assigned?
Stop retyping call notes into HubSpot.
Connect Grain and HubSpot once, and every customer call ends with a clean CRM note and a follow-up task list waiting for you.