HeyGen + Gmail: personalized lead replies sent fast
Your fastest leads become your coldest leads. Not because they aren’t interested, but because the first reply takes too long, sounds too generic, or gets lost in a messy “I’ll handle it later” queue.
This HeyGen Gmail replies automation hits marketing managers and founders first, honestly. But sales reps doing inbound follow-up and agencies running lead-gen for clients feel the same pain: you need speed without sacrificing personalization (and you need it every day).
This workflow turns each new lead into a short, tailored HeyGen video plus a Gmail reply that’s ready to send automatically. You’ll see what it does, what you need, and how to make it fit your funnel.
The Challenge: Fast Follow-Up Without Sounding Like a Robot
Inbound leads come in with just enough info to act, but not enough to write a great response quickly. So you do the same dance: look up the person, guess what matters to them, write an email, tweak the tone, paste in your booking link, and hit send. Then you repeat it. A lot. Meanwhile, the lead’s attention window closes, someone else responds faster, or your reply lands with that “template energy” that gets ignored. The worst part is the mental load. You’re trying to be thoughtful at speed, which is a terrible combo when your calendar is already packed.
It adds up fast. Here’s where it breaks down in real life.
- You waste about 10 minutes per lead jumping between enrichment, copywriting, and scheduling links.
- Personalization becomes inconsistent, because different people write different versions (and nobody remembers the latest messaging).
- Leads who should get a tailored angle still receive a generic follow-up, so replies stall.
- Even when you do everything “right,” you still have to chase video links, thumbnails, and formatting for a decent-looking email.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: HeyGen + Gmail: personalized lead replies sent fast
flowchart LR
subgraph sg0["On form submission 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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n1@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If1", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Selfie Video Prompt Agent", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n6["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Video"]
n7@{ icon: "mdi:robot", form: "rounded", label: "OpenAI", pos: "b", h: 48 }
n8@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email & Video", pos: "b", h: 48 }
n9["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Generate Video"]
n11["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request"]
n2 --> n7
n2 --> n3
n1 --> n6
n3 --> n6
n7 --> n8
n6 --> n2
n11 --> n4
n9 --> n1
n0 --> n11
n5 -.-> n4
n4 --> n9
end
subgraph sg1["Flow 2"]
direction LR
n10["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Avatars"]
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 n0 trigger
class n4,n7 ai
class n5 aiModel
class n2 decision
class n6,n9,n11,n10 api
classDef customIcon fill:none,stroke:none
class n0,n6,n9,n11,n10 customIcon
The Fix: Auto-Create a Personalized Video Reply, Then Email It
This workflow responds the moment a new lead submits your form. n8n captures the lead’s basics (name, email, address), then enriches the record using Scout so the message isn’t written in the dark. Next, an AI agent writes a short outreach script designed for a 15-second HeyGen avatar video, with a few different “paths” depending on what Scout discovers. That script gets sent to HeyGen through an HTTP request to generate the clip. While HeyGen renders, n8n checks status, waits, and retries until the video is actually ready. Once the final URL and thumbnail are available, a second AI step drafts an HTML email that embeds the thumbnail and includes your booking link (like Calendly). Finally, Gmail sends it out automatically, so your lead gets a fast, on-brand first touch without you hovering over the inbox.
The workflow starts with an inbound form trigger, then Scout enrichment shapes the script. HeyGen generates the video, n8n waits and checks completion, and OpenAI produces the email copy and layout. Gmail handles delivery, which means your “first response” can happen while you’re in meetings.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you get 10 inbound leads on a normal day. Manually, you might spend about 10 minutes per lead enriching details, writing a decent reply, adding a booking link, and making it look clean, which is roughly 100 minutes daily. With this workflow, the “work” becomes a quick scan for edge cases while n8n generates the HeyGen video, waits for completion, drafts the HTML email, and sends via Gmail. You get back about 90 minutes most days, and the lead hears from you while they still remember filling out the form.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- HeyGen for avatar video generation via API.
- Gmail to send the reply automatically.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Intermediate. You’ll connect accounts, add API keys, and sanity-check prompts and email formatting.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A new lead submits your form. n8n captures the name, email, and address through the inbound form trigger, then immediately starts the follow-up process.
Lead enrichment fills in the blanks. A Scout lookup runs via HTTP Request to pull extra context (things like property type, homeownership status, and income signals), so the message can be specific instead of “Hi there, thanks for reaching out.”
AI writes the script and HeyGen generates the clip. An AI agent produces a tight 15-second outreach script with multiple talking points based on the enrichment. That script is sent to HeyGen, which creates the avatar video.
Status checks prevent broken links. The workflow waits, checks video status, and retries when needed. Once complete, it retrieves the final video URL and thumbnail, generates an HTML email via OpenAI, and Gmail sends it to the lead.
You can easily modify the script tone and booking link to match your offer 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 inbound form that starts the outreach flow and captures lead details.
- Add and open Inbound Form Trigger.
- Set Form Title to
Inbound Form. - Set Form Description to
Fill Out This Form to Get More Info on Scout. - Ensure the form fields include first_name, middle_name, last_name, address, city, state, county, zip_code, level, phone, and email.
{{ $('Inbound Form Trigger').item.json['Email Address'] }}. Make sure your form field is named Email Address or update the expression to match your actual field label (for example {{ $('Inbound Form Trigger').item.json.email }}).Step 2: Connect TrustScout Lookup
Send the captured lead data to TrustScout for enrichment.
- Add and open Scout Lookup Request.
- Set URL to
https://api.trustscout.com/enterprise/people/lookup/and Method toPOST. - Set JSON Body to the provided mapping, including expressions like
{{ $json.first_name }},{{ $json.last_name }}, and{{ $json.email }}. - In Header Parameters, set X-Api-Key to your TrustScout API key (replace
[CONFIGURE_YOUR_API_KEY]).
Step 3: Set Up AI Script Generation
Generate a personalized video script based on the enriched lead profile.
- Open Chat Model Selector and set Model to
gpt-4.1-mini. - Credential Required: Connect your openAiApi credentials in Chat Model Selector.
- Open Personalized Script Agent and confirm the Text field includes the dynamic lead data and the system message rules.
- Ensure Chat Model Selector is connected as the language model for Personalized Script Agent (credentials are added on Chat Model Selector, not the agent).
{{ $json.language }} to choose language output. If your data doesn’t include language, the script defaults to English per the system message.Step 4: Configure HeyGen Video Creation and Status Polling
Create a HeyGen video from the AI script, then poll the status until the render is complete.
- Open Create HeyGen Clip and set URL to
https://api.heygen.com/v2/video/generateand Method toPOST. - Set JSON Body to the provided payload and keep
{{ $json.output }}as the input_text. - Credential Required: Connect your httpHeaderAuth credentials in Create HeyGen Clip.
- Open Pause Before Status (wait node) to introduce a short delay before status checks.
- Open Retrieve Video Status and set URL to
https://api.heygen.com/v1/video_status.getwith query parameter video_id set to{{ $('Create HeyGen Clip').item.json.data.video_id }}. - Credential Required: Connect your httpHeaderAuth credentials in Retrieve Video Status.
- Open Completion Check and set the condition to Equals with Left Value
{{ $json.data.status }}and Right Valuecompleted. - Open Delay Retry and set Amount to
20seconds to re-check status when not completed.
Step 5: Configure Email Drafting and Delivery
Generate the email content with the video link and send it to the lead via Gmail.
- Open Email Draft Generator and keep the message template that references
{{ $('Scout Lookup Request').item.json.matched_first_name }},{{ $json.data.thumbnail_url }}, and{{ $('Retrieve Video Status').item.json.data.video_url }}. - Credential Required: Connect your openAiApi credentials in Email Draft Generator.
- Open Dispatch Email With Video and set Send To to
{{ $('Inbound Form Trigger').item.json['Email Address'] }}. - Set Message to
{{ $json.message.content }}and Subject toHey from Scout. - Credential Required: Connect your gmailOAuth2 credentials in Dispatch Email With Video.
Step 6: Test and Activate Your Workflow
Validate the end-to-end process and then activate the automation for production use.
- Manually execute the workflow from Inbound Form Trigger and submit a test entry.
- Confirm that Scout Lookup Request returns data and that Personalized Script Agent produces a short script.
- Verify that Create HeyGen Clip returns a video_id, Retrieve Video Status eventually reports
completed, and Email Draft Generator outputs HTML content. - Check your inbox for the email sent by Dispatch Email With Video with the embedded thumbnail link.
- When satisfied, toggle the workflow to Active to run on all new form submissions.
Watch Out For
- Gmail OAuth credentials can expire or need specific permissions. If things break, check your connected account status in n8n’s Credentials 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.
Common Questions
About an hour if your accounts and API keys are ready.
Yes, but someone needs to be comfortable connecting tools and testing a few sample leads. No coding, just careful setup.
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 usage and HeyGen generation costs.
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.
You can change the message style inside the Personalized Script Agent and the Email Draft Generator so the tone matches your brand and offer. If you want a different “personalization brain,” swap the Scout Lookup Request for another enrichment source and keep the rest the same. Common tweaks include adding your Calendly link rules, inserting a second CTA for replies, and changing the avatar/video template used in the Create HeyGen Clip request.
Usually it’s an auth header issue on the HTTP Request nodes or an expired key. Confirm the HeyGen API key is stored in n8n credentials and that the request headers match what HeyGen expects. Also check the payload you’re sending from the AI script step, because empty or overly long scripts can cause errors. If it fails only during busy periods, you may be hitting rate limits or concurrency limits on your HeyGen plan.
If you self-host n8n, there’s no execution cap, so capacity mainly depends on your server and how fast HeyGen renders. On n8n Cloud, capacity depends on your plan’s monthly executions, and this workflow uses multiple steps per lead because it checks video status. In practice, most teams run this comfortably for daily inbound volume, then tune wait/retry settings as lead flow grows.
Often, yes, because this isn’t a simple two-step Zap. You have waits, retries, conditional checks, and multiple AI stages, which get expensive or awkward in simpler tools. n8n also gives you more control over the HTTP requests to HeyGen and the branching logic around “is the video done yet?” That said, Zapier or Make can be fine if you only want a basic email on form submit with no video generation. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation.
Fast follow-up is nice. Fast follow-up that actually feels personal is what books calls. Set this up once, let the workflow handle the repetitive parts, and keep your team focused on the conversations that matter.
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.