Training video
16:9 training video with a presenter, step titles and captions

- What goes in
- training_scriptThe script, word for word
- presenterWho presents and where
- What it costs
- about 87 credits. Paid plan or paid credits.
- Made with
- GPT Image 2.5, Kling AI Avatar, ElevenLabs, Video Editor
The call
The call for this app, then the wait for the file. The sample above is a canvas run of the board this app was copied from, so this exact call did not make that file. Set WIREFLOW_API_KEY first. Plain HTTP, no SDK to install.
curl -X POST https://www.wireflow.ai/api/v1/apps/training-video/execute \
-H "Authorization: Bearer $WIREFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"training_script": "Got an email that feels off? Here'\''s how to report it in three steps. Step one: don'\''t click any links or open attachments. Step two: press the Report Phishing button, or forward the email to the security team. Step three: delete it. Clicked something already? Call the IT help desk right away.",
"presenter": "A friendly corporate trainer in her early 40s with shoulder-length dark brown hair, wearing a navy blazer over a plain white blouse, in a bright modern office meeting room."
}
}'
# It returns an executionId right away. Poll until it finishes.
curl https://www.wireflow.ai/api/v1/apps/training-video/executions/EXECUTION_ID/poll \
-H "Authorization: Bearer $WIREFLOW_API_KEY"
The key needs Full access or Run published apps (apps:execute).
Change this
Same endpoint, different values. Each one starts a run, and you wait for it the same way as the call above.
Change the lesson
Write it the way you would say it. Numbered steps become the titles beside the presenter.
curl -X POST https://www.wireflow.ai/api/v1/apps/training-video/execute \
-H "Authorization: Bearer $WIREFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"training_script": "Before you lift anything heavy, do these three things. Step one: clear your path. Step two: bend your knees and keep your back straight. Step three: ask for help if it is over your limit.",
"presenter": "A friendly corporate trainer in her early 40s with shoulder-length dark brown hair, wearing a navy blazer over a plain white blouse, in a bright modern office meeting room."
}
}'
Change the presenter
Describe a made-up person and a room.
curl -X POST https://www.wireflow.ai/api/v1/apps/training-video/execute \
-H "Authorization: Bearer $WIREFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"training_script": "Got an email that feels off? Here'\''s how to report it in three steps. Step one: don'\''t click any links or open attachments. Step two: press the Report Phishing button, or forward the email to the security team. Step three: delete it. Clicked something already? Call the IT help desk right away.",
"presenter": "A warehouse safety lead in his 50s with a grey beard and a high-visibility vest, in a bright warehouse aisle."
}
}'
Make it yours
Your copy of the board is private, and every step on it can change.
Copy the board
Use as a template puts a private copy in your account.
Connect Claude
Run this once. On the sign-in screen tick "Create, edit and delete workflows", or Claude can copy boards but not change them.
Terminalclaude mcp add --transport http wireflow https://www.wireflow.ai/api/mcpChange it by talking to Claude
Ask for a different rule, voice, length or model setting. Claude edits the settings on each node. New nodes and wires you add on the canvas.
Publish it as your own endpoint
Use Publish on the board, or this call with a key that has workflows:write. Name your inputs in exposedInputs, or every input on the board is exposed. dailyCreditBudget 0 means only calls with a key can run it, so nobody spends your credits without one. Then call your own slug the same way as the call above.
curl -X POST https://www.wireflow.ai/api/v1/workflows/WORKFLOW_ID/publish \ -H "Authorization: Bearer $WIREFLOW_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "customSlug": "my-endpoint", "exposedInputs": ["training-script", "presenter"], "dailyCreditBudget": 0 }'