HubSpot + Gmail: route call summaries to the right team
You finish a customer call, someone says “I’ll send notes,” and then… nothing. Or worse, notes land in the wrong place, feedback gets buried in a thread, and your CRM stays blank until the next “what did they say again?” moment.
This HubSpot Gmail routing automation hits Customer Success Managers first, but sales teams and ops leads feel it too. You get clean, searchable HubSpot notes and the right people looped in by email without playing copy-paste librarian.
You’ll see how the workflow takes a transcript, summarizes it with AI, logs it to the correct HubSpot contact, and routes follow-ups to the right department automatically.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: HubSpot + Gmail: route call summaries to the right team
flowchart LR
subgraph sg0["Enter Client Transcript Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>HubSpot"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>HubSpot1"]
n2@{ icon: "mdi:robot", form: "rounded", label: "Router Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Summarization", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Enter Client Transcript"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Form"]
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Define routing emails here", pos: "b", h: 48 }
n8@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail", pos: "b", h: 48 }
n8 -.-> n2
n1 --> n0
n2 --> n5
n3 --> n2
n3 --> n1
n6 -.-> n3
n6 -.-> n2
n4 --> n7
n7 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 trigger
class n2,n3 ai
class n6 aiModel
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n5 customIcon
Why This Matters: Call Notes That Don’t Disappear
Transcripts are useful, but only if they turn into actions. In most teams, that translation is manual: someone skims a wall of text, writes a summary, copies it into HubSpot, then forwards “the important bits” to support or product. It sounds manageable until you’re doing it after five calls, in between tickets, while Slack pings keep coming. A day later, the summary is rushed, the CRM entry is missing, and the feedback never reaches the team that could actually fix the issue. Honestly, it’s not laziness. It’s the workflow.
The friction compounds. Here’s where things usually break.
- Summaries get delayed, so the next touchpoint happens without context and the customer notices.
- HubSpot notes end up attached to the wrong contact because someone searched the wrong email or used an old record.
- Feedback meant for product or billing dies in a long thread, which means patterns never get spotted.
- Each department asks for a different “format,” so you rewrite the same call notes multiple times.
What You’ll Build: Transcript-to-HubSpot Notes + Routed Emails
This workflow turns a raw client transcript into two things your business can actually use: a clean CRM record and department-specific follow-ups. It starts when you submit a transcript through a simple intake form (great for pasted call transcripts, chat logs, or copied Zoom text). The workflow summarizes the conversation using OpenAI, then looks up the correct HubSpot contact using the client’s email. Once it finds the match, it creates a HubSpot meeting note so the account history stays complete. In parallel, an AI routing agent reviews what was said and categorizes it (support, sales, product, admin, billing, or whatever you decide). Finally, Gmail sends the right summary to the right internal recipients, and the workflow ends with a completion step so you know it ran.
The workflow begins with transcript intake and recipient setup. Then AI creates a readable summary and decides which department should care. HubSpot gets updated, Gmail routes the message, and you move on.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you run 3 customer calls per day. Manually, a decent summary plus HubSpot logging might take about 15 minutes, and emailing the right department takes another 10 minutes once you decide who needs it. That’s roughly 75 minutes a day. With this workflow, you paste the transcript and submit (about 5 minutes total across all calls), then the automation does the summarizing, HubSpot note creation, and Gmail routing in the background. You get most of that hour back without losing detail.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- HubSpot for contact lookup and meeting notes
- Gmail to send routed internal emails
- OpenAI API key (get it from your OpenAI dashboard)
Skill level: Beginner. You’ll connect accounts, adjust email recipients, and tweak a prompt or two.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A transcript gets submitted. The workflow starts from a form-style intake, so you can paste in a call transcript or conversation log the moment it’s available.
Recipients and routing rules are set. A quick “set fields” stage prepares the department email mapping (for example: support@, product@, billing@) so routing stays consistent.
AI summarizes and categorizes the conversation. OpenAI produces a clean summary, then a routing agent reads that output and decides which department(s) should receive it based on your criteria.
HubSpot is updated and Gmail sends the follow-up. The workflow looks up the HubSpot contact by email, creates a meeting note on the correct record, then sends the right internal email so the next action happens without a meeting about the meeting.
You can easily modify the department categories to match your org (or clients) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
Set up the intake form that captures client email and conversation text.
- Add the Client Transcript Intake node and open its settings.
- Set Form Title to
Automate Client issue. - Under Form Fields, ensure there is an Email field labeled
client emailand a Textarea labeledclient conversation, both required. - Keep Append Attribution set to
falseif you don’t want n8n branding on the form.
Step 2: Connect Routing Email Settings
Define the department email addresses used for routing.
- Add the Set Routing Emails node after Client Transcript Intake.
- In Assignments, set Support Email, Administrative Email, Product Email, and Commercial Email to your real addresses, replacing
[YOUR_EMAIL]. - Connect Client Transcript Intake → Set Routing Emails.
⚠️ Common Pitfall: Leaving [YOUR_EMAIL] placeholders will cause routing to fail or send to invalid addresses.
Step 3: Set Up AI Summarization and Routing
Summarize the conversation and route to the correct department using AI.
- Add the OpenAI Chat Engine node and set the Model to
gpt-4o-mini. - Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine.
- In Conversation Summary, keep the prompt as defined and ensure it summarizes
{{ $json['client conversation'] }}. - In Department Routing Agent, set Text to
{{ $('Client Transcript Intake').item.json['client conversation'] }}and keep the system prompt that selects from routing emails. - Connect OpenAI Chat Engine to both Conversation Summary and Department Routing Agent as the language model.
Step 4: Configure HubSpot Actions and Parallel Flow
Search for the contact and create a meeting note while the routing agent runs in parallel.
- In Lookup HubSpot Contact, set the search filter Email to
{{ $('Client Transcript Intake').item.json['client email'] }}. - Credential Required: Connect your hubspotOAuth2Api credentials in Lookup HubSpot Contact.
- In Create HubSpot Meeting, set Resource to
engagement, Type tomeeting, and keep Body as{{ $('Conversation Summary').item.json.response.text }}. - Set Associations → Contact IDs to
{{ $json.properties.hs_object_id }}. - Credential Required: Connect your hubspotOAuth2Api credentials in Create HubSpot Meeting.
Conversation Summary outputs to both Department Routing Agent and Lookup HubSpot Contact in parallel.
Step 5: Configure Email Tooling and Form Completion
Enable automated email sending and return a completion message to the form user.
- In Send Gmail Message, keep the AI-filled fields: Send To
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}, Subject{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}, and Message{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}. - Credential Required: Connect your gmailOAuth2 credentials in Send Gmail Message.
- In Return Form Completion, set Completion Title to
Ouputand Completion Message to{{ $json.output }}.
⚠️ Common Pitfall: If the AI output does not include To, Subject, and Message, Send Gmail Message will fail—review the agent prompt if needed.
Step 6: Test and Activate Your Workflow
Validate the end-to-end flow and then enable it for production use.
- Click Execute Workflow and submit a test form in Client Transcript Intake with a sample email and conversation.
- Confirm that Conversation Summary generates a brief summary and that Department Routing Agent routes to one department.
- Verify that Lookup HubSpot Contact finds the contact and Create HubSpot Meeting creates the engagement with the summary as the body.
- Check that Send Gmail Message sends an email to the correct department and that Return Form Completion displays the output message.
- Turn the workflow Active once all tests pass.
Troubleshooting Tips
- HubSpot credentials can expire or need specific permissions. If things break, check your private app scopes and re-auth in n8n first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Quick Answers
About 30 minutes if HubSpot, Gmail, and OpenAI are ready.
No. You will connect your accounts and edit a few text fields like department emails.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs, which are usually a few cents per summary.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you probably should. You can change the department logic by editing the prompt used in the Conversation Summary and the Department Routing Agent, then update Set Routing Emails to match your recipients. Many teams add categories like “renewals risk,” “feature request,” or “billing dispute” so the email lands with the right owner. You can also swap the transcript source later (for example, pulling from Zoom or Slack) without changing the HubSpot note step.
Usually it’s expired authentication or missing HubSpot scopes. Reconnect HubSpot in n8n, confirm your private app has contact read access and engagement/notes write access, then retry with a known contact email. If the lookup succeeds but the meeting note fails, it’s often a permissions issue on the HubSpot side rather than the workflow logic.
On a typical n8n Cloud plan, teams run hundreds to thousands of these per month, and self-hosting scales mainly with your server.
Often, yes, because this kind of routing benefits from flexible logic and multi-step processing. n8n makes it easier to keep everything in one scenario: summarization, conditional routing, HubSpot writes, and email sending. You also get the self-host option if executions become frequent and pricing matters. Zapier or Make can still work if you keep it very simple (for example, “transcript in, email out”) and don’t need branching by department. Talk to an automation expert if you want a quick recommendation for your exact setup.
Once this is running, every call leaves a useful trail in HubSpot and a clear handoff in Gmail. Set it up once, and the follow-through becomes the default.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.