Back to blog
Video20 min read

HeyGen Prompts: 21 Avatar Video Script and Direction Templates

HeyGen's avatar video endpoint takes a script, not a prompt. Its schema has no prompt field at all. 21 copy-paste templates, each labelled with the surface it belongs to.

NH
Nafiul Hasan
Founder, Prompt Architects

TL;DR: HeyGen prompts are not one thing. The avatar video endpoint takes a script plus an avatar ID and a voice ID, and its schema has no prompt field at all. Real prompt fields live on four other surfaces: the Video Agent, Cinematic Avatar, avatar creation, and voice design. Templates below are labelled by surface.

What does prompting HeyGen actually mean?

It means one of five things: writing a script, or filling one of four different fields named prompt. Picking the wrong one is why most advice on this topic fails in a way that looks like the model ignoring you.

The confusion is structural. HeyGen grew a prompt-to-video agent on top of a product whose original job was making a chosen presenter say chosen words. Both surfaces are live, both are documented, and they take completely different input. Here is the map, read off HeyGen's own API reference on 27 August 2026.

Field names and limits from HeyGen's create-video, video-agent, create-avatar and voices references, plus the published usage limits. Checked 27 August 2026.
FeatureEndpoint and typePrompt fieldWhat the text describes
Avatar videoPOST /v3/videos, type avatarNone. Takes script.The words the presenter says.
Image to videoPOST /v3/videos, type imageNone. Takes script.The words, spoken by any photo.
Video AgentPOST /v3/video-agentsprompt, 1 to 10,000 charsThe whole video, as a creative brief.
Cinematic AvatarPOST /v3/videos, type cinematic_avatarprompt, 1 to 10,000 charsOne shot. No script, no voice.
Avatar creationPOST /v3/avatars, type promptprompt, max 1,000 charsA character's face, clothes, setting.
Voice designPOST /v3/voicesprompt, max 1,000 charsA speaker's accent, tone, pace.

There is one more, narrower: motion_prompt, a natural-language string for body motion and hand gestures, which sits alongside the script on avatar and image requests rather than replacing it.

Does the avatar endpoint really reject a prompt?

Yes, and the schema makes it explicit twice over. The CreateVideoFromAvatar object lists script, voice_id, audio_url, audio_asset_id, voice_settings, avatar_id, brand_glossary_id, motion_prompt, expressiveness and engine, with no prompt among them. It also sets additionalProperties to false. An unknown key is refused, not quietly dropped, so a prompt field sent to that endpoint fails the request rather than doing nothing.

That matters more than it sounds. A silently ignored field produces a mediocre video and a vague sense that the prompt did not land. A rejected field produces an error you can act on, and it is the fastest way to discover you have been writing the wrong artefact.

So the useful skill here is not scene prompting. It is script writing. HeyGen agrees, in unusually plain language for a vendor: its own guide runs the heading "The #1 Rule: Write a Great Script" and states that "The single biggest factor in video quality is the script".

Which HeyGen surface fits which job?

Four routes, and the choice is mostly about who decides the pictures.

Talking head with your exact words. POST /v3/videos with type: "avatar": script plus avatar_id, and voice_id if you want to override the avatar's default. The workhorse for training, onboarding and anything compliance reads before it ships.

Whole video from a brief. POST /v3/video-agents. You supply a prompt and HeyGen scripts it, picks scenes, chooses B-roll, and renders. Optional avatar_id, voice_id, style_id, brand_kit_id and orientation pin down whatever you care about. Since July 2026 the agent composes its graphics with Hyperframes, HeyGen's HTML-to-video framework, which is why a written style paragraph works: scenes are generated as code rather than picked from a fixed template set.

One directed shot, no dialogue. POST /v3/videos with type: "cinematic_avatar". HeyGen describes it as having "no script or voice required", with motion driven by the prompt and by one to three avatar looks as visual references, for 4 to 15 seconds. Your opener, your cutaway, your establishing shot. This is the one HeyGen surface where ordinary video-prompt craft transfers directly, of the kind in our Grok Imagine prompt templates.

A multi-scene cut assembled from parts. POST /v3/videos with type: "studio", passing an ordered list of scenes: avatar clips, still images, existing footage, up to 50 per video.

Why does written copy sound wrong coming out of a mouth?

Because reading and listening have different failure modes, and prose optimised for one is actively hostile to the other.

A reader who loses the thread can go back three lines. A listener cannot. That asymmetry generates most of the rules. Subordinate clauses a reader parses effortlessly become a listener holding four items in memory waiting for a verb. Parenthetical asides that scan cleanly on a page arrive in the ear as a speaker who lost their place.

Four corrections, and they survive contact with every video job below.

Cut sentence length until it feels stupid, then leave it. Aim for a spoken average around 12 to 15 words with real variance. One long sentence after three short ones reads as emphasis. Three long ones in a row reads as a lecture.

Use contractions, including the ones you avoid in writing. "We're", "you'll", "it's", "here's". Uncontracted speech is how people write when they are being careful, and careful is the exact register that makes a synthetic presenter sound synthetic. HeyGen's own test finding is that scripts which read naturally beat scripts chopped into segments, and it gives you the check to use: "If it sounds awkward to read aloud, it'll sound awkward in the video."

Front-load the subject. "The reason we changed the policy is that..." makes the listener wait. "We changed the policy because..." does not.

Cut the questions. Counter-intuitive, and HeyGen tested it. A script built on rhetorical questions felt unnatural from a single presenter talking to camera, and its guidance is blunt: "Questions work in conversations, not monologues." Turn each question into the statement it was fishing for.

A fifth rule that is really a habit: read the script out loud, at pace, before you send it. Every place you stumble is a place the avatar will too. This is the same failure class we covered in why AI-written scripts flop, and it is cheaper to fix at the keyboard than after a render.

How do you signal emphasis and pacing to HeyGen?

Narrowly, and this is where HeyGen differs most from the audio tools people arrive from.

HeyGen documents exactly one piece of in-script markup: a break tag. The text-to-speech page states that <break> "is the only supported tag" and instructs you to add it inline in plain text with no wrapper. It goes further and warns off the obvious next move: "Keep <break> as the only markup in your text. Wrapping a script in other tags — such as <speak> — can introduce audio artifacts like extra spoken syllables." The command-line reference adds a constraint the API page does not: break tags must express time in seconds, and millisecond values are not supported.

So there is no bracketed emotion layer here. If you arrived from ElevenLabs expecting [whispers] and [laughs] to carry the performance, that vocabulary is model-specific and does not transfer; we covered which models take which markup in the ElevenLabs voice and direction templates. HeyGen's levers are structural rather than inline:

  • Voice choice, which does more than any direction written afterwards. Every voice returned by the API carries a preview_audio_url. Listen before you commit.
  • A voice design prompt, up to 1,000 characters, describing accent, age, tone, pace and use case, returning up to three candidates.
  • voice_settings, a numeric object taking speed from 0.5 to 1.5, pitch from -50 to +50 semitones, and a BCP-47 locale.
  • A brand glossary, mapping a term to how it should be spoken. HeyGen's own example is saying "HeyGen" as "hey-jen". Pronunciation applies to the audio only; captions keep the original spelling.
  • Punctuation and line breaks, which do real work when there is no tag layer to lean on.

Check the support_pause field on a voice before relying on break tags. HeyGen exposes it per voice, so it is not universal.

Where does a talking head need a visual cut?

Roughly every 20 to 30 seconds, and at every point where the script asks the viewer to hold a number, a name or a sequence in their head.

A face is a good delivery device and a bad information display. The moment your script says "there are three steps" or "revenue grew 40 per cent", the presenter alone is the weakest available frame. On the Video Agent that decision is made for you and mostly made well. Its tested advice is against negative direction: "Telling the agent what NOT to do makes it play safe. Use positive framing: describe what you want, not what you don't." Ask for what should be on screen instead of forbidding what should not.

On the direct endpoints you make the cut yourself, and type: "studio" is the mechanism: an ordered list of scenes, each an avatar clip, an image, or existing footage, rendered onto one canvas. A title card held for three seconds before the presenter starts is a two-line addition that changes the feel of the whole piece.

One exception. If the video will be translated later, the presenter needs to stay on camera, because lip-sync has nothing to work with over B-roll. HeyGen's recommended phrasing is in template 15 below.

The 21 templates

Each is labelled with the surface it belongs to. Scripts go in the script field; prompts go in the field named on the line.

Explainer

1. Video Agent explainer brief · POST /v3/video-agents, prompt

Make a 45-second landscape explainer about [TOPIC] for [AUDIENCE].

[PASTE YOUR FULL SCRIPT HERE, AS FLOWING PROSE, NO TIMESTAMPS]

Tone: [e.g. a colleague explaining something over coffee. Direct,
unhurried, no corporate voice.]
Background: [e.g. bright modern office, natural light.]
Duration: 45 seconds. Landscape.

2. Direct avatar-video explainer script · POST /v3/videos, type: "avatar", script

Here's the short version. [ONE-SENTENCE ANSWER.]

Now the part that matters. <break time="0.5s"/> [PROBLEM, IN TWO
SHORT SENTENCES.]

We fixed it like this. [MECHANISM, PLAIN LANGUAGE, UNDER 30 WORDS.]

That's it. If you want the detail, it's linked below this video.

3. Cinematic Avatar opener · POST /v3/videos, type: "cinematic_avatar", prompt

[PERSON] walks into a bright [SETTING] and turns to face the camera,
settling into a relaxed stance. Handheld, shallow depth of field,
soft morning light from a window on the left. Documentary feel.
Ends with them still and ready to speak.

4. Reusable style paragraph · appended to any Video Agent prompt

Style: [STYLE NAME]. [PALETTE AS HEX CODES: #XXXXXX, #XXXXXX,
#XXXXXX.] [ART DIRECTION: typography, texture, photography treatment.]
[MOTION: how numbers, charts and photography animate.] Transitions
are [TWO OR THREE NAMED TRANSITIONS]. [ONE CLOSING LINE FOR THE VIBE.]

Training module

5. Studio multi-scene skeleton · POST /v3/videos, type: "studio"

{
  "type": "studio",
  "title": "Module 3 — [TOPIC]",
  "aspect_ratio": "16:9",
  "resolution": "1080p",
  "scenes": [
    {
      "type": "image",
      "source": { "type": "url", "url": "https://example.com/module-title.png" },
      "duration": 3
    },
    {
      "type": "avatar_video",
      "input": {
        "type": "avatar",
        "avatar_id": "YOUR_LOOK_ID",
        "voice_id": "YOUR_VOICE_ID",
        "script": "[SECTION ONE SCRIPT]"
      }
    },
    {
      "type": "image",
      "source": { "type": "url", "url": "https://example.com/diagram.png" },
      "input": {
        "type": "avatar",
        "avatar_id": "YOUR_LOOK_ID",
        "voice_id": "YOUR_VOICE_ID",
        "script": "[NARRATION OVER THE DIAGRAM]"
      }
    }
  ]
}

6. Policy module script · script

This module covers [POLICY]. It takes about four minutes, and there's
a two-question check at the end.

Here's why it exists. <break time="0.5s"/> [ONE CONCRETE INCIDENT OR
RISK, NAMED, NO JARGON.]

Three things change for you.

First. [CHANGE ONE, ONE SENTENCE.] <break time="0.5s"/>
Second. [CHANGE TWO, ONE SENTENCE.] <break time="0.5s"/>
Third. [CHANGE THREE, ONE SENTENCE.]

If you're unsure which applies, ask [ROLE] before you act, not after.

7. Chapter-break direction · script, between sections

[LAST LINE OF SECTION.] <break time="1s"/>

Next up. [SECTION TITLE, SPOKEN AS A SENTENCE, NOT A HEADING.]

8. Pronunciation coaching · brand glossary term list, POST /v3/brand-glossaries

{
  "name": "[COMPANY] product names",
  "terms": [
    { "term": "[PRODUCT]", "pronunciation": "[pro-DUCT, hyphenated by syllable]" },
    { "term": "[ACRONYM]", "pronunciation": "[spelled out: ay bee see]" }
  ]
}

Product demo

9. Video Agent demo brief with attachments · POST /v3/video-agents

{
  "prompt": "Create a 60-second product walkthrough of [FEATURE] based on the attached screenshots. Open with the problem in one sentence, then show what changes, then one line on how to turn it on. Tone: a product manager showing a teammate, not a launch video. Landscape.",
  "orientation": "landscape",
  "files": [
    { "type": "url", "url": "https://example.com/screen-1.png" },
    { "type": "url", "url": "https://example.com/screen-2.png" }
  ]
}

10. Screen-referenced narration · script

This is [SCREEN NAME]. <break time="0.5s"/> The bit that matters is
[ELEMENT], right here.

Before, you had to [OLD FLOW, ONE CLAUSE]. Now you [NEW FLOW, ONE
CLAUSE]. That's the whole change.

One catch. [THE HONEST LIMITATION.] We're working on it.

To switch it on, go to [PATH]. Takes about ten seconds.

11. Demo cutaway shot · type: "cinematic_avatar", prompt

[PERSON] leans over a laptop at a standing desk, glances up at the
camera, and gestures once toward the screen. Static tripod shot,
mid-close framing, clean office background thrown slightly out of
focus. Neutral daylight. Four seconds.

Onboarding

12. Day-one welcome · script

Hi [NAME]. Welcome to [COMPANY]. I'm [PRESENTER], and I run [TEAM].

Today is deliberately light. <break time="0.5s"/> Three things, and
then you're done.

Your laptop is set up. Your accounts are waiting in your inbox. And
[BUDDY NAME] will find you at eleven for coffee.

Everything else can wait until tomorrow. We mean that.

13. Onboarding series brief, review before render · POST /v3/video-agents

{
  "prompt": "Make a 40-second onboarding video, part [N] of [TOTAL], covering [TOPIC] for a new [ROLE]. Warm and specific, not corporate. Keep the presenter on camera for at least half the runtime. Landscape.",
  "mode": "chat",
  "avatar_id": "YOUR_LOOK_ID",
  "voice_id": "YOUR_VOICE_ID",
  "brand_kit_id": "YOUR_BRAND_KIT_ID"
}

14. Consistent internal presenter look · POST /v3/avatars, type: "prompt"

{
  "type": "prompt",
  "name": "[PRESENTER] — [SETTING]",
  "prompt": "Wearing [OUTFIT], [SETTING] background, [LIGHTING]",
  "avatar_id": "EXISTING_LOOK_ID"
}

Localisation

15. Translation-ready framing · appended to a Video Agent prompt

This is a direct-to-camera message. One person, one camera, sincere
eye contact throughout. The presenter should be visible and speaking
for the entire video.

16. Translation-safe script rules · applied to any script

[WRITE THE SCRIPT WITH: short sentences. No idioms. No sports or
cultural metaphors. No puns. Numbers written as words where they
carry meaning. Product names kept in English and added to the brand
glossary. One idea per sentence.]

17. Locale and delivery block · POST /v3/videos, alongside script

{
  "voice_settings": {
    "speed": 0.95,
    "pitch": 0,
    "locale": "en-GB"
  }
}

Sales outreach

18. Personalised outreach script · script, with variables filled per prospect

Hi [FIRST NAME]. Quick one.

I was reading about [SPECIFIC THING THEIR COMPANY DID]. Nice work.

The reason I'm recording this. <break time="0.5s"/> Most [ROLE]s I
talk to are stuck on [PAIN POINT]. We [ONE-CLAUSE MECHANISM].

If that's not a problem for you, ignore me entirely. If it is, reply
and I'll send a five-minute walkthrough. No deck.

19. Batch fill payload · POST /v3/videos/batches, one item per prospect

{
  "type": "avatar",
  "avatar_id": "YOUR_LOOK_ID",
  "voice_id": "YOUR_VOICE_ID",
  "title": "Outreach — {{first_name}} @ {{company}}",
  "script": "Hi {{first_name}}. Quick one. I was reading about {{trigger_event}}. Most {{role}}s I talk to are stuck on {{pain_point}}. We {{mechanism}}. If that's not a problem for you, ignore me entirely.",
  "callback_url": "https://your-server.example/webhooks/heygen",
  "callback_id": "outreach-{{prospect_id}}"
}

20. Outreach voice design · POST /v3/voices, prompt

A [AGE RANGE] [GENDER] voice with a [ACCENT] accent. Warm, slightly
informal, medium pace with natural variation. Sounds like someone
recording a message on their phone between meetings, not a voiceover
artist. Suitable for one-to-one sales video.

21. Revision message · POST /v3/video-agents/{session_id} in chat mode

Keep everything except scene [N]. In that scene, [ONE SPECIFIC
CHANGE]. Leave the script, the voice and every other scene exactly
as they are.
Free Chrome Extension

Stop rewriting prompts. Start shipping.

Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 5.0★ on the Chrome Web Store.

Create An Account

For a digital twin, yes, and HeyGen enforces it in code rather than leaving it to your conscience.

Cite HeyGen's own policy rather than characterising it. Its Content Moderation Policy, effective 25 July 2024, states that when creating custom avatars you must obtain the explicit consent of the individual being represented, whom it calls the Actor, and adds: "Unless explicit consent has been provided, creating avatars of other individuals is strictly prohibited." It also grants the subject a standing right of withdrawal: "The Actor reserves the right to request removal of their likeness from our Services at any time." The policy makes you responsible for honouring a removal request wherever you have published.

Enforcement sits in the API. A digital twin cannot generate video until a consent flow completes, and HeyGen documents three levels: recording a consent statement by webcam, available to all customers; uploading a pre-recorded consent video, available to every Enterprise account since August 2026; and skipping consent entirely, which requires a signed indemnity agreement. Photo and prompt-generated avatars are documented as not requiring consent, on the stated basis that they depict no real, identifiable person.

Two details people miss. First, creating a digital twin also clones a voice, automatically, from the same footage: HeyGen's create-avatar page states that "Creating a digital twin automatically clones one voice from the training footage" with no separate request or opt-in step. Consenting to a face is consenting to a voice, whether or not your consent form says so. Second, a platform rule is not a legal analysis. Rights of publicity, employment agreements and what happens to an employee's twin after they leave have jurisdiction-specific answers, and a blog post is not where you get them. Get the consent in writing, scope it, and put an expiry on it.

Do you have to disclose that the presenter is synthetic?

Sometimes by law, more often by platform rule, and the platform rule is usually the one that bites first.

HeyGen puts the duty on you. Its Terms of Service, last updated 23 July 2026, prohibit using output "in a misleading way", including representing it as entirely human generated, and continue: "if you distribute your User Output to others, to the extent required by applicable law, you must proactively disclose that such User Output was created using artificial intelligence technologies so as not to mislead others of its origin." That is a contractual obligation deferring to statute, and statute varies by jurisdiction and is moving. HeyGen's developer documentation publishes no automatic provenance marker for API output.

Distribution platforms set their own bar and do not wait for legislation. YouTube's policy states that "we require creators to disclose when they use AI to meaningfully alter or generate photorealistic content", and lists as requiring disclosure any content that "Makes a real person appear to say or do something they didn’t do." A HeyGen digital twin of a real colleague delivering a script they never spoke is squarely inside that description, even when the colleague consented and the content is benign. Checked 27 August 2026.

The practical version is short. Internal training and onboarding are the low-risk end, though staff still deserve to know. Marketing and sales sit in the middle: disclose, because being found out costs more than the disclosure ever will. Anything resembling news, testimony or a record of a real event is where you talk to a lawyer, not a template.

Where HeyGen's own documentation disagrees with itself

Three live contradictions, found on 27 August 2026, all between HeyGen-owned pages. None is fatal, but each will waste an afternoon if you meet it cold.

Timestamps: recommended and warned against. The Prompting Guide's worked example is a five-scene script with explicit ranges, offered as the way to get scene-by-scene control. The Writing Effective Video Prompts page, describing 14 experiments, warns "Don't over-structure." and states that "Timestamps per scene (0-5s, 5-12s) make the delivery sound robotic." Both pages are current. Read them as two settings on one dial, precision versus natural delivery, and pick per video.

motion_prompt on an arbitrary image: three answers. The Avatar IV page lists it as "Available for photo avatars and arbitrary images." The Image to Video page's comparison table marks it not supported for image-to-video and supported for photo avatars. The API schema exposes the field on the image request while describing it as photo-avatars-only. Treat it as photo-avatar-only and use a registered avatar if you need it.

motion_prompt on a digital twin. The engine comparison table ticks it for both Avatar IV and Avatar V. The field description is stricter: "Rejected for video avatars on the default Avatar IV engine". For prompted gestures on a digital twin, pass the Avatar V engine explicitly and check supported_api_engines on the look first.

A fourth, smaller one: the text-to-speech guide tells you to keep input_type as plain text and calls the break tag the only supported markup, while the CLI reference exposes an ssml input type. Do not read the second as documented SSML support.

Where this leaves HeyGen, and us

HeyGen is two products sharing a URL. One is a prompt-to-video agent that is genuinely good at deciding things for you, and the right tool when you have a topic and a deadline. The other is a precise talking-head renderer where you own every word and the only creative input is a script, a voice and a set of IDs. "HeyGen prompts" is a muddled search because both are real, and the internet keeps writing about the first while people try to use the second.

If you are on the second path, and most business users are, the entire skill is script writing for the ear. Short sentences. Contractions. Statements instead of questions. A break tag where a human would breathe, and a cut where a face stops being the most useful thing on screen.

Prompt Architects generates the prompt and the script, not the video. We do not render MP4s, make avatars, or clone voices, and there is no HeyGen integration here. What we are for is the layer that decays fastest: keeping the version of a script that worked, variables and break tags intact, so the fourth onboarding video is not rewritten from memory. Video prompt generation sits on our Advanced and Team plans rather than Pro, and the free plan covers 5 prompt enhancements per day, forever, according to the FAQ page at prompt-architects.com/faq, checked 27 August 2026. For the structural side, the anatomy of a video prompt in seven parts covers what a scene prompt is made of, and JSON video prompt templates covers the case where the field really does take structured input.

Frequently asked questions

Free Chrome Extension

Stop rewriting prompts. Start shipping.

Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 5.0★ on the Chrome Web Store.

Create An Account