Make.com end-to-end
Make.com (formerly Integromat) is a visual automation platform. It is the most common way to integrate JSON2Video with other tools (Google Sheets, Airtable, Slack, YouTube, …) without writing code. This guide walks through a complete end-to-end scenario, from creating a connection to publishing a finished video.
TODO: capture screenshot of the Make.com scenario canvas with the JSON2Video module placed.
1. Prerequisites
- A Make.com account (the free tier is enough to start).
- A JSON2Video account with at least one API key. Sign in at json2video.com/dashboard.
- A clear idea of what the video should look like — at minimum, a Quickstart-style JSON.
2. Create a secondary API key
Open json2video.com/dashboard/apikeys and create a secondary API key specifically for Make.com. Best-practice settings:
- Role:
Renderif Make.com only needs to render videos,Editorif it also creates / updates templates. - Expiration: optional, but recommended for production keys.
Keep this key separate from your primary key. If the Make.com side is ever compromised, you can revoke just this key without rotating everything else.
3. Create a JSON2Video Connection in Make.com
- In a Make.com scenario, add any JSON2Video module. All modules require a Connection.
- When prompted, click Add to create a new Connection.
- Give it a name (e.g. "JSON2Video — production").
- Paste the secondary API key from step 2.
- Save. The Connection is now available across every scenario in your Make.com workspace.
4. Pick the right module
JSON2Video's Make.com app exposes these modules:
| Module | Use it for |
|---|---|
| Create a Movie from JSON | Full control: paste any movie JSON, render it. |
| Create a Movie from my Template | Reuse a template stored in your JSON2Video account. Replace variables only. |
| Create a Movie from a Template ID | Same as above, but for templates you've imported from someone else. |
| Create Slideshow with Audio | One-click slideshow from an array of image URLs + a music track. |
| Add Automatic Subtitles to a Video | Generate burned-in subtitles from an audio source. |
| Concat a List of Videos with Background Audio | Stitch multiple clips into one with shared music. |
| Toolbox | Sub-module: voiceover-to-image, merge audio + video, trim, quote card, social reel. |
| Wait for a Movie to Render | Pause the scenario until the movie finishes. |
| Check a Movie Status | Poll once for status; useful inside If branches. |
For most workflows, the pattern is:
- Trigger (e.g. Google Sheets — Watch new rows).
- Create a Movie module (any of the create flavours).
- Wait for a Movie to Render module.
- Downstream action (upload to YouTube, post to Slack, email the link, store the URL in a CRM, …).
5. Submit a render
The simplest scenario: a new row in a Google Sheet triggers a personalised video.
-
Add a Google Sheets → Watch new rows trigger pointed at your sheet.
-
Add the JSON2Video — Create a Movie from JSON module.
-
Map the input JSON to a body that uses Google Sheets columns as Make.com variables. Example:
{ "comment": "Personalised intro for {{1.name}}", "resolution": "full-hd", "scenes": [ { "elements": [ { "type": "text", "text": "Hello {{1.name}}!", "duration": 5, "style": "002" } ] } ] }{{1.name}}is the Make.com variable from the trigger (module #1, column name). Make.com replaces it at runtime. -
Save and run once with test data.
6. Wait for the render to finish
Drag in the Wait for a Movie to Render module after the create-movie step. Map its Project ID input to the project field returned by the create step.
This module pauses the scenario until the render is done (or error). On success, it returns the full movie object including url, thumbnail, and duration.
For long-running renders (60s+), consider switching to a webhook-based pattern: have JSON2Video call back into Make.com using a Webhooks → Custom webhook trigger. See Webhooks (production) for the receiver side.
7. Use the rendered video downstream
Once the Wait module returns, the rest of the scenario can act on the video. Typical patterns:
- Upload to YouTube — YouTube → Upload a video, map the URL.
- Post to Slack — Slack → Create a message, embed the URL.
- Update the original sheet — Google Sheets → Update a row, store the URL in a "Video URL" column.
- Save to Google Drive — Google Drive → Upload a file from URL.
8. Common pitfalls
"Source URL is required for video element in Scene X, Element Y"
You're using a Make.com variable for an src that didn't resolve. Check the variable mapping — if the upstream column is empty, the value reaches JSON2Video as an empty string. Add a filter in Make.com to skip rows with missing values, or set a fallback.
Movie duration cannot be zero
The total movie length must be at least 1 second. Causes:
- An image element with no
durationand no other timed element in the scene. - An empty
scenesarray.
Fix by adding "duration": N on the scene or on an image element.
"Source URL is not a [video/audio/image] file"
The codec or container isn't supported. Allowed formats:
- Video:
h264,hevc,mpeg4,wmv3,vp8,vp9,mpeg2video,av1,theora - Audio:
aac,flac,mp3,opus,vorbis, plus video containers with audio - Image:
png,jpg,jpeg,gif,mjpeg,bmp,tiff,webp
Make.com variable serialization
Make.com sends string values. If you map a variable into a JSON property that expects a number or a boolean, wrap it appropriately in Make.com (use the parseNumber() and parseJSON() functions). For nested JSON inputs, use Make.com's parseJSON() to convert a stringified payload.
API key issues
Double-check the Connection's API key is the secondary key (not your primary). Re-paste from the dashboard if in doubt — copy/paste sometimes drops trailing characters.
Webhook receiver
If you set up a webhook destination in your movie JSON, the receiver URL must be publicly hosted over HTTPS with a valid TLS certificate. Make.com's own Custom webhook trigger works as a receiver.
Rate limiting
Make.com scenarios that render large batches can hit the JSON2Video rate limit. Add a Make.com Sleep or Iterator with a delay between renders, or upgrade your JSON2Video plan.
Debugging tips
- Execution history: Make.com keeps a per-run log of every module's input and output. Inspect it to see the exact JSON sent to JSON2Video and the response received.
- Test with the API directly: copy the exact JSON Make.com is sending and POST it with
curlto confirm whether the issue is in the JSON or in the Make.com mapping. - Sub-module errors: when Wait for a Movie to Render returns an error, the
messagefield on its output shows the JSON2Video error message verbatim. - Reference the errors catalog for known error messages.