Short answer: Drop the "Shotstack → Shotstack Render From Template" action anywhere in your workflow, map the inputs from upstream nodes, and publish.
Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.
| Field | Type | Required | Description |
|---|---|---|---|
Template ID template_id | string | Required | ID of a template you've saved in the Shotstack Studio. Find via List Templates. |
Merge Fields merge | object | Optional | Array of {find, replace} pairs that substitute values inside the template. Example: [{"find":"NAME","replace":"Ankit"}]. |
Callback URL (optional) callback_url | string | Optional | Webhook URL Shotstack will POST to when the render finishes. |
{"template_id": "e.g. 8c1a2b3d-4e5f-6789-abcd-1234567890ab","merge": "[{\"find\":\"NAME\",\"replace\":\"World\"}]","callback_url": "e.g. https://hooks.oute.app/shotstack-done"}
{"message": "Created","success": true,"response": {"id": "2abd5c11-0f3d-4c6d-9bff-abc123","message": "Render Successfully Queued"}}
Use these fields in downstream nodes for routing, logging, or error handling.
Any of these apps can fire this action as part of a workflow.
Triggered by anything in the catalog. Free tier available. No credit card.