AI email reply based on HubSpot data + Slack approval
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This AI workflow has 13 nodes and runs on Gmail events. Along the way it connects Google Gemini Chat Model, Gmail, HubSpot and Slack.
How it runs
Trigger: On Gmail events.
- Filter: keeps only the items that match a condition
- Find Contact by Email (HubSpot): search
- Set Record Types (Code): runs custom JavaScript code
- List Contact Associations (HTTP Request): calls an HTTP API
- Build Batch Read Requests (Code): runs custom JavaScript code
- Batch Read Objects (HTTP Request): calls an HTTP API (POST)
- Normalize CRM Context for LLM (Code): runs custom JavaScript code
- Draft Reply (AI Agent) (AI Agent): runs an AI agent, with model: Google Gemini Chat Model
- Wait for Response - Approve Auto-Reply (Slack): send and wait for a reply
- If: checks a condition and branches into true / false
…plus 1 more step. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
- Still check Gmail Trigger below v1.4 runs as v1.4 (drafts skipped, max emails per poll) (Watch Gmail (New Inbound)).
Nodes used (10)
- Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - Gmail
n8n-nodes-base.gmail - Gmail Trigger
n8n-nodes-base.gmailTrigger - Filter
n8n-nodes-base.filter - AI Agent
@n8n/n8n-nodes-langchain.agent - HubSpot
n8n-nodes-base.hubspot - Code
n8n-nodes-base.code - HTTP Request
n8n-nodes-base.httpRequest - Slack
n8n-nodes-base.slack - If
n8n-nodes-base.if
From the author
This n8n template drafts customer-ready email replies using Google Gemini, enriched with HubSpot context (contact, deals, companies, tickets). Each draft is routed to Slack for one-click approval before it’s sent from Gmail—so you move fast without losing…