Engage & Convert Cold Outbound SDR/BDRAEDemand GenFounder

Send 1:Many Personalized Prospecting Video at Scale

Record one base video and have AI personalize the opening and on-screen details per prospect, so each recipient gets a video that feels made for them.

StageEngage & Convert
Time to buildHalf a day
DifficultyAdvanced
Best forSDR/BDR, AE, Demand Gen, Founder
The stack

The stack

The problem

The problem

Personalized video gets replies precisely because it is rare, effortful, and unmistakably human. That is also exactly why it does not scale: recording a unique sixty-second video per prospect tops out at maybe twenty a day, and here is the part nobody admits, most of each of those videos is the same pitch repeated. You record the same middle thirty seconds over and over, and the only part actually driving the response is the unique opening where you reference something specific about them.

Two AI approaches now make 1:many video genuinely workable, and they are different enough that picking the wrong one wastes the whole effort. Sendspark stitches a dynamic personalized intro, plus dynamic on-screen elements like the prospect's own website in the background, onto a pre-recorded base video. The opener feels custom while the body is recorded once with a real human on camera. HeyGen takes a different path: you create an AI avatar and feed it a fully personalized script per prospect, generating hundreds of entirely distinct videos from one avatar, personalizing the spoken words and not just the intro.

Driven by Clay, either approach turns a personalized-video play from twenty a day into hundreds, while keeping the part that actually matters, the specific personal opener, genuinely grounded. The architecture is the same as personalized cold email: enrich each prospect, generate a grounded line with a hard fallback, render, QA, deliver, and trigger follow-up on the view signal.

The honest tradeoff, and the opinion that should shape your choice: an AI avatar is not a human and pretending otherwise will eventually cost you. A synthetic avatar passed off as a real personal recording erodes trust the moment a prospect realizes, and they increasingly can tell. For a first touch to a senior buyer, a real recorded base with a dynamic intro (Sendspark) usually beats a fully synthetic avatar on the only thing that matters, which is trust. Reach for HeyGen when the volume and script-depth genuinely require it, and disclose the synthetic nature rather than hoping nobody notices.

How it works

How it works

  • Build a prospect list in Clay with the exact variables the video needs (name, company, domain, one personal hook)
  • Choose the approach: Sendspark dynamic intro on a real recording, or HeyGen full AI-avatar video
  • Generate one grounded, spoken-style personalized opener per prospect with a hard fallback flag
  • Render the videos at scale and get a unique personalized thumbnail and landing page per prospect
  • QA a sample as the recipient before sending hundreds
  • Deliver the video link via Smartlead and trigger same-day follow-up the moment a prospect watches
See it run

See it run

zsh
$# generate the per-prospect spoken opener for the dynamic video intro
$cat dana.json
{"first_name":"Dana","company":"Meridian Freight","hook_fact":"opened Stockholm office last month"}
$cat dana.json | llm "Write a one-sentence spoken video intro using the hook_fact. Natural, conversational, under 20 words. If hook_fact is empty output NEED_FALLBACK."
Hey Dana, saw Meridian just opened in Stockholm, so I figured new-region ops planning is pretty top of mind right now.
$# send the opener to Sendspark to render the dynamic intro on the base video
$curl -s https://api.sendspark.com/v1/videos/dynamic -H "Authorization: Bearer $SENDSPARK_API_KEY" -H 'content-type: application/json' -d @intro_dana.json | jq '{id,status,share_url}'
{ "id": "vid_8f2c1", "status": "rendering", "share_url": "https://app.sendspark.com/v/8f2c1" }
$
The playbook

The playbook

Prepare the prospect data in Clay

Build or import your prospect list in Clay and enrich it with everything the video will reference. At minimum: first name, company name, company domain (Sendspark uses the domain to render a dynamic background showing the prospect's own website), title, and one real personal hook fact. The video is only as personal as this data, so invest in the hook fact exactly the way you would for a personalized cold email; a generic hook produces a generic video, except now it is a generic video with your face on it, which is worse.

Verify emails here too, because you will deliver the video by email and a bounce means you paid to render a video nobody will ever see. Waterfall-verify and drop the unverifiable rows before you spend render credits or API quota on them.

Add a column flagging which prospects are high enough value to warrant a real per-person recorded intro versus the automated dynamic treatment. Your top twenty accounts may justify the rep recording a genuine custom opener; the long tail gets the scaled approach.

💡

TipStore the first name exactly as it should be spoken and displayed, and clean it now. 'bob (robert) smith' imported from a CRM will render literally on screen and sound absurd in an avatar's mouth. The data hygiene you skip here shows up on camera.

Choose your personalization approach

Decide between the two models deliberately, because they imply different production work. Sendspark's dynamic-intro approach: you record one real base video where the body is your standard pitch, and Sendspark personalizes the very start plus on-screen elements, the prospect's name on screen and their actual website as a dynamic background. A real human stays on camera, which builds the most trust and is the safest choice for senior first touches.

HeyGen's avatar approach: you create an AI avatar (of yourself, with explicit consent and following HeyGen's verification, or a stock avatar) and feed a fully personalized script per prospect, generating an entirely unique video each time. This personalizes the actual spoken words, not just the intro, and scales to higher volume, but it is unmistakably an AI avatar and must be treated and disclosed as such.

The rule of thumb: Sendspark for authenticity and senior buyers, HeyGen for deeper script-level personalization at higher volume where a real recording is impractical. When in doubt for a first touch, choose the real human. Trust is the entire reason video outperforms text, and a synthetic avatar spends some of that trust the moment it is recognized.

💡

TipIf you go the HeyGen route with an avatar of yourself, record the consent and keep the body of the script honest about being a generated video. 'I made this with an AI version of my voice so I could reach more of you personally' is defensible; silent synthetic impersonation is not.

Generate the personalized opener line per prospect

Add a Clay AI column that writes the personalized opening each prospect will hear or see. For Sendspark this is a short spoken intro; for HeyGen it is the personalized portion of the full script. Apply the same grounding discipline as personalized cold email: tie the line to one real provided fact, ban generic flattery, forbid mentioning that you researched them, and require a NEED_FALLBACK output when there is nothing specific enough to say. Fallback rows route out of the video play and into a standard sequence rather than getting an invented line.

Write for the ear, not the eye. A line that reads cleanly on a page can sound clumsy out loud, and clumsy is far more noticeable in spoken video than in text. Keep spoken openers short, under about eighteen words, and conversational, the way one person actually talks to another.

Run twenty rows and read every opener out loud yourself before generating at scale. The ones that make you wince when spoken are the ones that will make a prospect close the video.

Video opener line prompt
Write a spoken video opening line (max 18 words) that sounds natural OUT LOUD for /Full Name at /Company.

Ground it in ONE real fact, most specific first:
- Recent company news: /Company News
- Their recent LinkedIn activity: /Recent Post
- Their role and tenure: /Title, /Tenure

Rules:
- Conversational, like one operator talking to another, not a script.
- Reference a SPECIFIC detail, never a category.
- No 'I hope this finds you well', no generic praise, no mention that we researched them.
- Must sound natural spoken aloud (read it in your head as speech).
- If no specific fact exists, output exactly: NEED_FALLBACK

Output only the single spoken line, or exactly NEED_FALLBACK.
💡

TipAdd a syllable sanity check by keeping lines short: long subordinate clauses that parse fine on paper turn into breathless run-ons when an avatar or a person reads them. Short sentences sound human; long ones sound like a teleprompter.

Render the videos at scale

Connect Clay to your chosen tool. With Sendspark, connect via its Clay integration or API and pass the variables: first name, company domain for the dynamic website background, and the personalized intro line. Sendspark generates a personalized version and a unique landing page per prospect. With HeyGen, use its batch/API workflow to pass the personalized script per row; HeyGen generates one rendered video per row. Both return a shareable video URL and a personalized thumbnail per prospect.

Render a small batch first, ten or fifteen, and watch them end to end. Personalization that looks correct as text frequently renders awkwardly on screen: unusual name spellings, all-caps company names, a website background that fails to load or loads the wrong page. The dynamic website background in particular is worth checking, because a broken or wrong-site background is immediately visible and immediately discrediting.

Confirm the thumbnail renders correctly for each prospect, because the thumbnail is what drives the click in the first place.

💡

TipA personalized thumbnail, the prospect's name or their own website visible in the still frame, is the single biggest driver of the click. If the rest is perfect but the thumbnail is generic, nobody presses play and the personalization inside is never seen.

QA the rendered videos as the recipient

Watch a sample of finished videos exactly as the recipient would, from the email through the thumbnail to the full play. Check four things: the personalized opener flows naturally into the recorded or generated body, names are pronounced and displayed correctly, dynamic backgrounds load the right website, and nothing is hallucinated or visually off. A jarring or wrong personalized video is more memorable than a bad email, for all the wrong reasons, because it has your face or your avatar attached to the mistake.

Confirm the NEED_FALLBACK prospects were actually routed out of the video play and into a standard sequence, not silently sent a video with a blank or default opener. A video that opens with an awkward non-personalized line undermines the entire premise.

For the HeyGen avatar route specifically, verify the audio and lip-sync hold up and that the disclosure of synthetic generation is present where you decided to place it.

Deliver via email and trigger follow-up on the view

Send the video link in an email through Smartlead or your sequencer, using the animated thumbnail or GIF and a short text wrapper around it rather than burying the video. Sendspark provides the landing page and view tracking natively. Route view notifications into Slack or your CRM via webhook so reps know the moment a prospect watches, which is the entire point of doing this measurably rather than blindly.

A video view is a strong, time-sensitive intent signal, and it decays fast. Set up a same-day follow-up trigger for anyone who watches past the opener: a Slack alert to the owning rep with how much they watched, and a queued follow-up touch. Someone who watched thirty-eight seconds of a forty-second video is engaged right now, not next week.

Apply the same deliverability hygiene as any cold-email play: warmed inboxes, a dedicated domain, authentication, conservative volume. A clever video email still lands in spam from a cold domain.

💡

TipSet the follow-up to fire on watch percentage, not just on 'opened the email.' A 90%-watched view is a hand half-raised; treat it as hot and follow up the same hour. An open with no play is a different, much weaker signal and should not trigger the same urgency.

What you get

What you get

A personalized prospecting video email with a custom thumbnail, a grounded spoken opener, and the view-triggered follow-up alert.

Example output
EMAIL (sent via Smartlead):
Subject: quick 40-sec video for you, Dana

Hi Dana, recorded this short walkthrough after seeing Meridian's Stockholm launch. Forty seconds, no pitch deck.
[animated thumbnail: 'Dana' on screen + meridianfreight.com rendered in the background]
Watch (40s) -> [sendspark landing page link]

- Marcus

SPOKEN OPENER (personalized per prospect, Sendspark dynamic intro):
'Hey Dana, saw Meridian just opened in Stockholm, so I figured new-region ops planning is pretty top of mind right now.'
[then the recorded base pitch continues for the remaining ~32 seconds]

VIEW-TRIGGERED SLACK ALERT to @marcus:
:eyes: Dana Ruiz (VP Ops, Meridian Freight) watched 38s of 40s, 6 minutes ago.
She made it past the opener and through the ask. Follow up NOW while it's warm.
CRM: [record link]

NEED_FALLBACK note:
Prospects with no specific hook fact returned NEED_FALLBACK and were moved to the standard text sequence rather than receiving a video with a generic opener.
Pitfalls to avoid

Pitfalls to avoid

⚠️

Synthetic video without disclosurePassing an AI avatar off as a real personal recording erodes trust the instant a prospect realizes, and they increasingly can. Be honest that a video is AI-generated, keep it tasteful, and prefer a real recorded base for senior first touches.

⚠️

Lines that read but don't speakText written for the eye sounds wrong aloud, and clumsiness is far more noticeable in spoken video than in email. Write and test every opener for the ear, keep it short, and read it out loud before scaling.

⚠️

Render errors at scaleUnusual names, all-caps companies, and failed website backgrounds break visibly on screen and discredit the whole send. QA a sample end to end before rendering hundreds, and clean the name and company data first.

⚠️

Fake personalization in videoAn invented hook is worse on video than in text because it has your face or avatar attached. Enforce the NEED_FALLBACK flag and route those prospects out of the video play into a standard sequence.

⚠️

No view-based follow-upA video view is high intent and decays within hours. Without a same-day, watch-percentage-triggered follow-up, you waste the strongest signal the entire play produces.

Want playbooks like this in your inbox?

A new AI use case, prompt, or teardown every couple of weeks.

Subscribe →