Shotstack
Developer ToolsTurn data into rendered video with Shotstack's cloud editing API. Agents submit JSON timeline edits, render reusable templates with merge fields for personalized videos at scale, and poll render status until the finished asset URL is ready.
What This Integration Enables
Shotstack treats video the way the rest of your stack treats documents: as something a machine assembles from data. An edit is a JSON timeline of tracks and clips, a template is that timeline with merge-field placeholders, and rendering is an API call that returns a URL. That makes video a FlowRunner workload like any other: agents pull rows, fill templates, submit renders, poll status, and hand finished assets to publishing steps, with review gates exactly where the output touches customers. Because templates live in Shotstack and data lives in your systems, the division of labor stays clean: designers own how the video looks, workflows own what it says, and neither blocks the other. - Batch-produce personalized marketing, social, and product videos from a single saved template - Compose video, image, title, HTML, and audio assets into rendered output with no local video software - Build fully dynamic edits as JSON timelines when a template is not enough - Poll renders to completion and route finished URLs to storage, CMS, and notification steps - Test edits in the sandbox environment, then switch keys to production for watermark-free renders
Without FlowRunner
With FlowRunner
Use Case Scenarios
A thousand renewal videos from one template
The renewal table lives in [Airtable](/integrations/airtable). For each row, the flow calls Render Template with the customer's name, plan, and renewal price as merge fields, collects render IDs, and polls Get Render Status until each returns its URL. Finished links write back to the row, and the email tool merges each customer's video into their renewal notice. The template was designed once; the campaign renders itself every month with current prices.
Listings that become videos the hour they publish
When a new product or property listing lands, the flow assembles a JSON timeline with Submit Render: the listing photos as image clips, a title asset with the headline, a price overlay, and the brand soundtrack. Get Render Status waits for done, then the asset publishes through [WordPress](/integrations/wordpress) and posts to [Slack](/integrations/slack) for the social queue. Listings that update get re-rendered from the new data, so the video never advertises last week's price.
The weekly metrics recap as a rendered clip
Every Friday, the flow pulls the week's numbers from [Google Sheets](/integrations/google-sheets), fills a recap template's merge fields with the headline stats, and renders a short captioned clip. List Templates resolves the current template ID so design updates ship without touching the flow. The finished URL posts to the all-hands channel, and the render ID, template, and output log to the tracking sheet for an auditable trail of what was generated from which data.
Human-in-Loop Highlight
A template render is only as trustworthy as its merge data, and the failure mode is precise: Render Template will happily produce a thousand videos where {{PRICE}} came from the wrong column, and a price stated in a customer's personalized video is a claim your company made to them in their own name, on camera. Unlike a mail merge, you cannot correct it with a follow-up asterisk; the asset is out. So FlowRunner batches never go straight from table to fleet. The agent validates the merge data, renders exactly one proof from a real row, and holds: here is the proof video, here is the row that produced it, here are the 998 rows queued behind it. The campaign owner watches the proof, checks the price against the source of record, and approves. Only then does the batch render and only rendered output from an approved run reaches the send step. Machines do the thousand renders; a person vouches for the one that speaks for all of them.
Agent Capabilities
4 actionsRendering
2- Submit Render Submits a video edit for rendering, defined by a JSON timeline of tracks holding video, image, title, HTML, and audio clips, plus an output specification for format, resolution, aspect ratio, and frame rate. Asynchronous: returns a render ID immediately for polling. The fully dynamic path when a saved template is not enough.
- Get Render Status Retrieves a render's current status by ID as it progresses through queued, fetching, rendering, saving, and done or failed. Once done, the response carries the public URL of the finished asset. The polling step behind every pipeline on this page.
Templates
2- List Templates Retrieves all saved templates in the current environment with their IDs and names. The lookup that lets flows reference templates by ID, so design changes ship without editing the flow.
- Render Template Renders a saved template by ID, substituting merge fields to personalize the output, so placeholders like {{NAME}} and {{VIDEO_URL}} fill from workflow data and one template produces many variations. Asynchronous: returns a render ID to poll. The batch personalization engine this page's human gate protects.
Frequently Asked Questions
What can FlowRunner do with Shotstack?
FlowRunner agents can run Submit Render, Get Render Status, and List Templates in Shotstack, plus 1 more action.
Does connecting Shotstack to FlowRunner require OAuth?
No. Shotstack connects to FlowRunner with an API key, no OAuth flow required.
Can Shotstack trigger a FlowRunner workflow automatically?
Shotstack doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Shotstack
$100 in credits. No card required. Connect in minutes.