JSON2Video
Media & VideoJSON2Video renders finished MP4 videos from a Movie JSON document of scenes, text, voice, subtitles, HTML, and audiograms. Agents submit a movie, wait for the render, manage templates and media folders, and react when a render finishes.
What This Integration Enables
JSON2Video treats a video as a document. Scenes, text, images, voice, subtitles, HTML blocks, and audiograms are fields in a movie definition, which means a video is something a workflow can compose the same way it composes an email. FlowRunner agents submit a movie and collect the rendered MP4, save and duplicate templates, discover a template's variables as a schema, and manage the media library the renders draw their assets from.
Two behaviors decide whether a production workflow built on it holds up. Rendered videos are removed after a fixed retention window on every plan, downloading does not extend it, and an expired render returns an empty URL while keeping its history entry, so any flow that publishes a JSON2Video link into a page that must keep working is already broken and does not know it. And creating a movie is not idempotent: an identical submission creates a new project and renders again unless the cache absorbs it. Both are the sort of thing that makes automation look unreliable when it is really the retry logic that was never written. This connector surfaces both as data a flow can act on rather than as behavior a flow discovers in production.
Without FlowRunner
With FlowRunner
Use Case Scenarios
One template, a catalog of promos
The promo template lives in JSON2Video with variables for headline, price, product shot, and voice line. When a product is published in Shopify, the agent reads the template's variable schema with Get Template, fills the values from the product record, and submits Create Movie. On completion it pulls the file, stores it durably, writes the storage URL back to the product row in Airtable, and posts the preview to the marketing channel in Slack. The template is edited once; the catalog gets a video each.
A render list that reconciles
Weekly, the agent calls List Movies with both dates set explicitly, because the default range covers only the current month and older work is invisible until the range is widened. It matches finished renders against the campaign plan in Google Sheets, flags any render that came back with a failure reason beside an otherwise successful looking response, and calls Get Retention Policy so the report states exactly how long each asset has left where it sits. Get Storage Info runs before any bulk upload, because when the account's storage is blocked every upload is rejected.
Updating the template everything renders against
A brand refresh changes the lower third on every promo. The agent has the new movie definition ready and one operation that would apply it. That operation either creates a new template or replaces an existing one depending on a single parameter, and the listing it would check first does not include enough to compare against. So it assembles the comparison and hands it over.
Human-in-Loop Highlight
Saving a template is two different operations wearing one name. Passing a template id switches it from creating a new template to overwriting an existing one, and every scheduled render, every campaign flow, and every other workflow pointed at that id resolves against whatever is now in that slot. Making it worse, the template listing omits each template's body, so an agent cannot diff what it is about to replace without a deliberate read first. So the brand refresh agent calls Get Template on the target, builds the comparison, and stops: "Template promo_v3 is referenced by 6 scheduled flows. The change replaces the lower third and the outro card. Here is the current definition against the proposed one. Save over promo_v3, or save as a new template and migrate the flows one at a time?" A marketer answers. Renders already running are unaffected either way, because they resolved the body when they started, but everything that runs tomorrow is decided by that one answer, and FlowRunner's human-in-the-loop step is what makes sure a person gave it.
Agent Capabilities
20 actionsMovies
6- Create Movie Submits a movie document for rendering and returns the project immediately. Each call creates a new project even for an identical body, so a retry renders and bills again unless the cache absorbs it, and the cache is on unless a flow turns it off.
- Get Movie Retrieves a render's state and result. The API answers the same way for pending, running, finished, and errored renders with the real state in the body, so this operation adds explicit done and failed booleans to branch on.
- Create Movie And Wait Submits a movie and polls it to completion in one step. It returns a failed render rather than raising on it, because the reason is usually what the flow needs to branch on, and on timeout the render carries on so a later read can pick it up.
- List Movies Lists renders over a date range. The default range covers only the current month and the range is capped, so older work stays invisible until both dates are set.
- Delete Movie Frees a render's storage early while keeping its history entry, so usage records are not rewritten by a cleanup pass.
- Get Retention Policy Returns the platform's retention windows as data. It calls nothing, and it exists because a video URL that silently stopped working after a week is the most common way a downstream integration breaks.
Templates
6- Save Template Creates a reusable movie definition, or replaces an existing one when a template id is supplied. The parameter that decides which is why this operation carries this page's human gate.
- Duplicate Template Copies a template, including a public template library entry, into the account so it can be modified without touching the original.
- Get Template Retrieves a template. Requested as a schema it returns a description of the template's variables, which is how a flow discovers what a template expects without opening the editor.
- List Templates Lists the account's templates. It omits each template's body, so a comparison still needs a deliberate read of the one being changed.
- Delete Template Removes a template. Renders already running are unaffected, because they resolved the definition when they started.
- List Template Library Lists the public template library, which is the starting point a workflow duplicates from rather than composing a movie from scratch.
Media Library
8- Get Storage Info Returns the account's storage state. Worth reading before a bulk upload, because when storage is blocked every upload is rejected, and stored files above the free allowance bill on a recurring basis rather than once.
- Upload Media From URL Runs the whole presigned upload exchange in one call, which it has to, because the presigned URL expires in a window too short to split across flow steps. Files above the platform's size limit are rejected.
- Create Media Folder Creates a folder in the media library.
- Get Media File Retrieves a media file's record. A file whose state reads as pending is a record whose bytes never arrived, which is what an abandoned upload leaves behind.
- List Media Folder Lists the contents of a media library folder.
- Move Media File Moves a file between folders. Moving a file into the temporary folder schedules its deletion, because everything in that folder is treated as temporary by lifecycle rules.
- Delete Media File Removes a file from the media library.
- Delete Media Folder Removes a folder from the media library.
Triggers
1 triggersEvent Triggers
1- On Render Finished Fires on newly finished renders, optionally filtered to succeeded or failed only. JSON2Video declares its webhook inside each movie's own definition rather than as a subscription, so there is nothing for a trigger to register and this one polls the render list instead. Its first pass records the current state and emits nothing, which matters here because the default listing window is the whole current month.
Frequently Asked Questions
What can FlowRunner do with JSON2Video?
FlowRunner agents can run Create Movie, Get Movie, and Create Movie And Wait in JSON2Video, plus 17 more actions.
Does connecting JSON2Video to FlowRunner require OAuth?
No. JSON2Video connects to FlowRunner with an API key, no OAuth flow required.
Can JSON2Video trigger a FlowRunner workflow automatically?
Yes. JSON2Video supports 1 trigger that can start a FlowRunner workflow automatically.
Start building with JSON2Video
$100 in credits. No card required. Connect in minutes.