n8n Thumbnail Automation Workflow — Step by Step
I've built this exact workflow twice now, once for a faceless history channel I help run and once for a client who publishes three explainer videos a week. The job is simple: a new video title shows up somewhere (a Sheet, a webhook, a form), and a finished YouTube thumbnail should land in Drive without anyone opening Photoshop, Canva, or anything else.
n8n is what I reach for here because the pipeline is mostly glue between services, and writing that glue in Node would mean managing a server I don't want to manage. By the end of this guide you'll have a workflow you can trigger manually for testing, then promote to a Schedule or Sheets trigger when you're ready.
What the Workflow Does
- Receives a video title as input (from a form, webhook, spreadsheet, or manual trigger)
- Sends a POST request to the ThumbAPI generate endpoint
- Decodes the base64 image response
- Saves the thumbnail to disk or uploads it to a destination of your choice (Google Drive, S3, YouTube)
- Logs the result
The whole flow runs in under 30 seconds.
A note on the input side
This workflow starts from a video title that's already been decided — which assumes the video itself is either already made or getting made in parallel. If you're publishing on a schedule and the video generation is the actual bottleneck, that step is now automatable too.
With OpenVidi you can automate the video itself, not just the thumbnail: one sentence in, and it researches the topic, writes the script, records the voiceover in one of 15 languages, generates around 95 scenes with Google's Gemini image models, animates them with Veo, and returns a finished 1080p MP4 — usually in under an hour, unattended. If a scene comes out wrong, it regenerates alone.
The cost model matters if you're planning on volume: OpenVidi runs on your own Google Cloud account, so compute is billed by Google directly at cost with no markup. Google gives every new cloud account $300 in welcome credit, which covers roughly the first 5–8 full videos. Setup is a one-time ~5-minute Google Cloud connection with a filmed walkthrough, and the free trial is one full video with no card required.
Video generation runs in the OpenVidi web app (there's no n8n node for it today), so the hand-off point is the exported MP4 — from there the ThumbAPI workflow below takes over as usual.
Prerequisites
- n8n instance (self-hosted or cloud at n8n.io)
- ThumbAPI API key — start free with 50 credits per month
- Basic familiarity with n8n nodes
Step 1 — Create a New Workflow
In your n8n dashboard, click New Workflow and give it a name like YouTube Thumbnail Generator.
Step 2 — Add a Trigger Node
For manual testing, use a Manual Trigger node. For production, replace this with:
- Schedule Trigger, to run at a fixed time (e.g., every morning to process the day's videos)
- Webhook, to trigger from an external CMS or publishing tool
- Google Sheets Trigger, to fire when a new row is added to a spreadsheet of video titles
Step 3 — Add a Set Node (Define Your Input)
Add a Set node after the trigger to define the video title you want to process. In production, this value would come from a spreadsheet row, a form submission, or a previous node in your pipeline.
Step 4 — Add an HTTP Request Node (Call ThumbAPI)
This is the core step. Add an HTTP Request node and configure it:
Method: POST
URL: https://api.thumbapi.dev/v1/generate
Headers:
x-api-key: YOUR_API_KEY
Content-Type: application/json
Body (JSON):
{
"title": "={{ $json.title }}",
"format": "youtube",
"imageStyle": "faceless",
"outputFormat": "webp"
}
To use a custom asset dataset for brand consistency, add the customAssetsId field:
{
"title": "={{ $json.title }}",
"format": "youtube",
"imageStyle": "faceless",
"outputFormat": "webp",
"customAssetsId": "m6XhjtZNdF0N2AFXUOiq"
}
Step 5 — Add a Code Node (Decode the Base64 Image)
The API returns a base64-encoded image. Add a Code node to decode it:
// Decode base64 thumbnail from ThumbAPI response
const imageDataUri = $input.first().json.image;
const base64Data = imageDataUri.split(",")[1];
const binaryBuffer = Buffer.from(base64Data, "base64");
return [
{
json: {
filename: "thumbnail.webp",
format: $input.first().json.format,
width: $input.first().json.dimensions.width,
height: $input.first().json.dimensions.height
},
binary: {
thumbnail: await this.helpers.prepareBinaryData(
binaryBuffer,
"thumbnail.webp",
"image/webp"
)
}
}
];
Step 6 — Save or Upload the Thumbnail
Connect one of these nodes after the Code node depending on where you want the thumbnail to go:
Option A — Save to Google Drive
Add a Google Drive node with Operation: Upload, File Name from the json output, and Binary Property set to thumbnail.
Option B — Save to Local Disk
Add a Read/Write Files from Disk node (Operation: Write File to Disk) with the output path and Binary Property set to thumbnail.
Option C — Upload Directly to YouTube
Add an HTTP Request node calling the YouTube Data API thumbnails.set endpoint with the binary data. Requires YouTube OAuth credentials configured in n8n.
Step 7 — Add an Error Handler
Connect an Error Trigger node to catch failures and notify you via Slack, email, or any other channel. Configure it to log the video title that failed, the HTTP status code, and a timestamp.
Processing Multiple Titles from a Spreadsheet
To process a batch of titles from Google Sheets:
- Replace the Manual Trigger with a Google Sheets node (Operation: Read Rows)
- Add a Split In Batches node to process one row at a time
- Connect to the HTTP Request node — use
={{ $json["Title"] }}to reference the sheet column - Add a Wait node (2 seconds) between iterations to respect rate limits
Your spreadsheet becomes the content queue. Add a row, the workflow processes it automatically.
Full Workflow Summary
Manual Trigger (or Schedule / Webhook / Google Sheets)
↓
Set Node — define title
↓
HTTP Request — POST to ThumbAPI
↓
Code Node — decode base64 image
↓
Google Drive / Read-Write Files from Disk / YouTube Upload
↓
(optional) Slack/Email notification
Total nodes: 5–7. Setup time: under 30 minutes.
Triggering from Other Workflows
If you already have an n8n workflow for content scheduling, you can call this thumbnail workflow as a sub-workflow using the Execute Workflow node. Pass the video title as an input parameter and receive the thumbnail binary as output.
This keeps your pipeline modular: the thumbnail generator becomes one reusable component in a larger automation system, and you can swap its trigger or destination without touching the rest.
Cost Per Thumbnail
At $49/month for the Pro plan (2,500 credits — roughly 250 standard 1K thumbnails), each base thumbnail costs about $0.20. For a channel publishing three videos per week, that's roughly $2.40/month in thumbnail costs.
Compare that to the hourly rate of a designer or the 45 minutes per thumbnail a creator would otherwise spend in Canva or Photoshop.
Start free with 50 credits per month and wire the workflow up in under 30 minutes.

Written by
Aldin KozicaFull-stack developer from Bosnia and Herzegovina. I built ThumbAPI because I kept watching content teams waste hours on thumbnail design when the patterns are predictable enough to automate. The API is the tool I wished existed when building content pipelines for my own projects.
Continue Reading
Build an n8n workflow that detects new YouTube uploads, generates a thumbnail with ThumbAPI, and saves it to Drive — fully automated, with batch and multi-platform patterns.
How to Automate YouTube Thumbnail Uploads — Full GuideA real walkthrough — Google Cloud OAuth2 setup, the credential wiring nobody documents, and a paste-ready workflow that pushes a ThumbAPI-generated image directly to YouTube.
How to Generate YouTube Thumbnails Automatically With an APIGenerate YouTube thumbnails automatically from a video title with a single API call. Code examples, batch patterns, and design tradeoffs for production pipelines.
Thumbnail A/B Testing — How to Use CTR Data to Pick Winning DesignsA developer-friendly playbook for A/B testing YouTube and blog thumbnails against real CTR data. Sample-size math, YouTube Studio's Test & Compare, blog cover experimentation, and how to loop the winner back into your generator.
Generate Thumbnails With an API
Try ThumbAPI free. 50 credits per month, no credit card required. One API call, production-ready output.