🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

HeyGen + TikTok: turn any link into Shorts fast

Lisa Granqvist Partner Workflow Automation Expert

Turning a good article into a short video sounds simple until you actually do it. You read, summarize, write a hook, find visuals, record (or fake it), edit, export, re-upload, rewrite captions, and then repeat the whole thing for the next link.

This is where HeyGen TikTok automation helps. Content marketers trying to stay consistent feel the grind first, but agency owners and newsletter teams get buried by it too. You drop a URL and get a platform-ready vertical video that you can publish after a quick review.

This workflow turns “link → short” into a repeatable system. You’ll see what it does, what you need, and how the moving parts fit together so you can ship more without living in editing tools.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: HeyGen + TikTok: turn any link into Shorts fast

The Problem: Link-Based Shorts Are Weirdly Time-Consuming

You already have the raw material (a great link), but getting it into a short-video format is where things fall apart. Summaries get fluffy. Hooks miss the point. Captions are inconsistent across TikTok, Reels, and Shorts, so performance is unpredictable. And even when you finally have an MP4, you’re still stuck doing the boring parts: downloading, renaming files, re-uploading, copy-pasting descriptions, and checking that the “final” is actually final. One small mistake and you’re re-rendering a video you’ve already mentally moved on from.

It adds up fast. Here’s where it breaks down in real teams.

  • You spend about 45 minutes turning one URL into something you’d actually post.
  • When captions are written on the fly, your voice shifts post to post, and it shows.
  • Rendering becomes a waiting game, so someone ends up “babysitting” a tool instead of doing marketing work.
  • Posting to TikTok, Reels, and Shorts turns into three separate mini-projects.

The Solution: URL → Script → HeyGen Video → TikTok Post

This n8n workflow takes a single URL (a news story, blog post, product launch, even an n8n workflow page) and turns it into a vertical short with an AI avatar explaining it. It starts by fetching the source page, then has an AI agent (Google Gemini) extract the key points and write a tight, hook-led monologue designed for a 30–45 second delivery. Next, it generates a matching background by capturing the page as either an animated scroll video or a static image. That background is sent to HeyGen, which renders your avatar video in either free split-screen mode or a cleaner paid cut-out mode. Finally, the workflow waits for rendering to finish, optionally pauses for human approval, and then publishes via Upload-Post to TikTok (and also Instagram Reels and YouTube Shorts if you want).

The workflow starts when you launch it (manually, or from a message if you extend it with Telegram). From there, Gemini writes the script and per-platform descriptions, ScreenshotOne produces the visuals, and HeyGen renders the final MP4. Upload-Post handles distribution so you don’t repeat the same upload three times.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you publish 5 link-based shorts a week and you post to 3 platforms. Manually, if scripting and captions take about 25 minutes per video and uploading takes maybe 10 minutes per platform, you’re looking at roughly 4 hours a week (and that’s if nothing needs re-rendering). With this workflow, the “work” is mostly dropping the URL and reviewing the draft: about 5 minutes per video, plus render time in the background. You still stay in control, but you stop doing the repetitive parts.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • HeyGen to render the avatar video.
  • Google Gemini to generate scripts and descriptions.
  • ScreenshotOne API key (get it from your ScreenshotOne dashboard).

Skill level: Intermediate. You’ll connect a few APIs, set variables, and run a test render end-to-end.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

You trigger it with a URL. The workflow is designed to run on demand (a manual launch), and it starts by loading the page you want to turn into a short. That can be a news link, a blog post, or even documentation you want to explain.

The content gets summarized into a real script. A Gemini-powered agent reads the page and produces a hook-led monologue designed to land in about 30–45 seconds. In the same pass, it generates platform-optimized descriptions so TikTok, Reels, and Shorts aren’t getting the same generic caption.

The visuals are created from the page itself. You choose between an animated scroll capture (video background) or a static image background. ScreenshotOne generates the asset, and n8n sends it to HeyGen so the avatar render matches what the viewer is hearing.

The final MP4 is rendered, reviewed, and published. HeyGen renders either a free split-screen layout or a paid cut-out style with background removal. n8n polls for completion, grabs the final video URL, waits for optional human approval, and then hands it off to Upload-Post for publishing to your selected platforms.

You can easily modify the background style and the review step to match your process. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Launch Trigger

Start the workflow with a manual trigger so you can test the end-to-end pipeline on demand.

  1. Add the Manual Launch Trigger node as your workflow trigger.
  2. Connect Manual Launch Trigger to Initialize Input Variables to pass control to your configuration node.

Step 2: Connect HeyGen and ScreenshotOne

Define the URL to analyze, background settings, and API keys for media capture and HeyGen generation.

  1. Open Initialize Input Variables and set workflow_url to a target page URL, for example https://www.xataka.com/empresas-y-economia/openai-acaba-mover-ficha-su-separacion-bienes-microsoft-ha-firmado-acuerdo-amazon-38-000-millones-dolares.
  2. Set screenshotone.comAPI_KEY and heygen_api_key to your API keys (both are currently blank and must be filled).
  3. Set avatar_id and voice_id with your HeyGen avatar and voice IDs.
  4. Set background_removal to true and background_type to video to match the current branching logic.
  5. Confirm Initialize Input Variables connects to Content Strategy Agent as the next node.

⚠️ Common Pitfall: Leaving screenshotone.comAPI_KEY, heygen_api_key, avatar_id, or voice_id empty will cause downstream HTTP requests to fail.

Step 3: Set Up Content Strategy Agent

Generate the short-form script, captions, and titles from the source URL using Gemini and structured parsing.

  1. Open Content Strategy Agent and keep the detailed prompt text as-is to enforce the JSON output format and 30-second script structure.
  2. Ensure the agent references the URL with {{ $json.workflow_url }} inside the prompt (already embedded in the text).
  3. Attach Gemini Chat Engine as the language model. Credential Required: Connect your googlePalmApi credentials.
  4. Attach Structured JSON Parser as the output parser. It uses autoFix set to true with the provided JSON schema example.
  5. Attach Gemini Parser Model to Structured JSON Parser. Credential Required: Connect your googlePalmApi credentials.
  6. Confirm Fetch Source Page is connected as the AI tool and uses {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}. Credentials should be added to the parent node (Content Strategy Agent), not the tool.

If your URL blocks bots, the Content Strategy Agent may fall back to limited content. Use publicly accessible URLs for best results.

Step 4: Configure Background Capture and Upload

Choose between scrolling video or static image backgrounds, then upload the captured asset to HeyGen.

  1. In Select Background Type, keep the condition checking {{ $('Initialize Input Variables').item.json.background_type }} equals video.
  2. For the video path, configure Capture Scrolling Background with the full URL string: https://api.screenshotone.com/animate?access_key={{ $('Initialize Input Variables').item.json.screenshotone.comAPI_KEY }}&url={{ $('Initialize Input Variables').item.json.workflow_url }}&format=mp4&viewport_width=1080&viewport_height=1920&viewport_mobile=true&block_ads=true&storage_return_location=true&block_cookie_banners=true&block_banners_by_heuristics=false&block_trackers=true&delay=10&timeout=60&scenario=scroll&duration=30&scroll_delay=5000&scroll_duration=200&scroll_by=400&scroll_start_immediately=true&scroll_start_delay=5000&scroll_back=true&scroll_complete=true&scroll_easing=ease_in_out_quint&scroll_try_navigate=false.
  3. For the image path, configure Capture Static Background with the URL: https://api.screenshotone.com/take?access_key={{ $('Initialize Input Variables').item.json.screenshotone.comAPI_KEY }}&url={{ $('Initialize Input Variables').item.json.workflow_url }}&viewport_width=1080&viewport_height=1920&viewport_mobile=false&format=jpg&block_ads=true&block_cookie_banners=true&block_banners_by_heuristics=false&block_trackers=true&delay=10&timeout=60&response_type=json&image_quality=80.
  4. In Upload Asset to HeyGen, set URL to https://upload.heygen.com/v1/asset, Method to POST, and Content Type to binaryData.
  5. Add header X-Api-Key with value {{ $('Initialize Input Variables').item.json.heygen_api_key }} and Content-Type set to video/mp4.

Step 5: Configure HeyGen Generation Branches

Create avatar videos or images based on the background type and removal flags, then map the resulting video ID.

  1. In Evaluate Removal Flag, keep the boolean check on {{ $('Initialize Input Variables').item.json.background_removal }} to route to either Generate Avatar Overlay Video or Generate Split Screen Video.
  2. In Check Photo Removal, keep the boolean check on {{ $json.background_removal }} to route to either Generate Avatar Overlay Image or Generate Split Screen Image.
  3. Verify each HeyGen request uses the script from Content Strategy Agent with {{ $('Content Strategy Agent').item.json.output[0].guion }} and voice settings from Initialize Input Variables.
  4. Ensure background URLs use {{ $('Upload Asset to HeyGen').item.json.data.url }} for video and {{ $('Capture Static Background').item.json.screenshot_url }} (or {{ $('Capture Static Background').item.json.screenshot }}) for images.
  5. In Map Video Identifier, map video_id to {{ $json.data.video_id }} for status polling.

Keep the HeyGen JSON body intact in each of the generation nodes to preserve avatar positioning and 9:16 dimensions.

Step 6: Configure Rendering Polling and Human Review

Poll HeyGen until the render is complete, then prompt a human approval step before publishing.

  1. In Delay Retry, keep Unit set to minutes and Amount to 1 to throttle polling.
  2. In Fetch Avatar Status, set query parameter video_id to {{ $('Map Video Identifier').item.json.video_id }} and header X-Api-Key to {{ $('Initialize Input Variables').item.json.heygen_api_key }}.
  3. In Check Render Status, keep the condition that {{ $('Fetch Avatar Status').item.json.data.status }} equals completed. If not completed, it loops back to Delay Retry.
  4. In Retrieve Final Video URL, set query parameter video_id to {{ $json.data.id }} and keep the HeyGen API key header.
  5. In Await Human Review, keep formTitle as Review the posts and formDescription as {{ $json.data.video_url }}, with the decision dropdown.

⚠️ Common Pitfall: If HeyGen never returns completed, the workflow will loop between Delay Retry and Fetch Avatar Status. Monitor render timeouts in HeyGen.

Step 7: Configure Publishing to Social Platforms

Only approved videos are distributed to social platforms using UploadPost.

  1. In Verify Approval Decision, keep the condition that {{ $('Await Human Review').item.json.decision }} equals approve.
  2. Open Distribute Video to Platforms and set user to your UploadPost user ID, replacing [YOUR_ID].
  3. Set video to {{ $('Retrieve Final Video URL').item.json.data.video_url }} and keep operation as uploadVideo.
  4. Map titles from Content Strategy Agent: tiktokTitle to {{ $('Content Strategy Agent').item.json.output[0].descripcion }}, instagramTitle to {{ $('Content Strategy Agent').item.json.output[1].descripcion }}, and youtubeTitle to {{ $('Content Strategy Agent').item.json.output[2].descripcion }}.
  5. Set instagramMediaType to REELS.
  6. Credential Required: Connect your uploadPostApi credentials.

Step 8: Test and Activate Your Workflow

Run a manual test, verify the generated video, approve it, and then activate the workflow for production use.

  1. Click Execute Workflow from Manual Launch Trigger to run a test.
  2. Confirm the Content Strategy Agent outputs structured JSON and the HeyGen generation nodes return a video_id.
  3. Wait for Await Human Review to display the video_url, then choose approve to continue to Distribute Video to Platforms.
  4. Verify that posts are uploaded for TikTok, Instagram Reels, and YouTube Shorts with the generated captions.
  5. Toggle the workflow Active once the test succeeds.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • HeyGen credentials can expire or need specific permissions. If things break, check the HeyGen API key header (X-Api-Key) and confirm your avatar_id and voice_id still exist in your HeyGen account.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Upload-Post will fail quietly if the connected social account loses authorization. If publishing stops, open Upload-Post and re-connect TikTok (and any other platforms) before you touch the workflow.

Frequently Asked Questions

How long does it take to set up this HeyGen TikTok automation?

About an hour if you already have the API keys and a HeyGen avatar ready.

Do I need coding skills to automate HeyGen TikTok posting from a URL?

No. You’ll paste in keys, pick options like background type, and test a run.

Is n8n free to use for this HeyGen TikTok automation workflow?

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 Gemini, ScreenshotOne, HeyGen, and Upload-Post usage (most have free trials, and then you pay based on how many videos you generate).

Where can I host n8n to run this automation?

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.

Can I customize this HeyGen TikTok automation workflow for Instagram Reels and YouTube Shorts too?

Yes, and it’s already designed for it. You’ll keep the same URL-to-video pipeline, then change your platform selections in the Upload-Post publishing node to include TikTok, Instagram Reels, and YouTube Shorts. Common tweaks include switching background_type between video and photo, turning background_removal on or off, and editing the Gemini prompt so the hook matches your brand voice.

Why is my HeyGen connection failing in this workflow?

Usually it’s an invalid or expired X-Api-Key, or the workflow is referencing an avatar_id or voice_id that no longer exists. Update the key in the HeyGen request node, then confirm the avatar and voice are still available in your HeyGen workspace. If it fails only on some runs, it can also be rate limits or a temporary render outage, so retrying after a short wait often resolves it.

How many videos can this HeyGen TikTok automation handle?

On n8n Cloud Starter you’re capped by monthly executions, so think in terms of how many runs you trigger per month, not “videos per day.” If you self-host, there’s no execution limit, and throughput mostly depends on render time in HeyGen and how quickly ScreenshotOne returns assets. Practically, most teams run a handful a day at first, then scale once prompts and review are dialed in. If you want high volume, keep the human review step but make it lightweight so it doesn’t become the new bottleneck.

Is this HeyGen TikTok automation better than using Zapier or Make?

Often, yes, because this workflow needs branching logic (split-screen vs cut-out, photo vs scroll video), polling/waits while HeyGen renders, and clean handling of structured AI output. n8n is comfortable with those “real workflow” patterns, and you can self-host for unlimited executions if posting volume grows. Zapier or Make can still work, but you may end up fighting the wait/polling pieces or paying more once the scenario gets beyond a couple of steps. Also, n8n makes it easier to add a true approval gate so a human can reject a bad script before it hits TikTok. If you’re unsure which route fits your team’s tolerance for setup, Talk to an automation expert.

Once this is running, a new link isn’t a “content project” anymore. It’s just input, review, publish, done.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal