AI Influencer Workflow
Status: Coming soon
End-to-end recipe-first workflow to generate a short social reel from clips + audio, with validate-before-render and async retrieval.
Coming soon
This workflow is intentionally published as a roadmap page. The final production walkthrough may evolve before it is marked live.
Recipes-first path
This walkthrough intentionally uses the recommended Recipes path at
/v1/recipes/render.User request
Create a 15-second social reel from my highlight clips, add narration, and return a final output URL I can post.
Required assets
- 1 voiceover audio URL
- 2-4 background media URLs (video or image)
- transcript_words array (AssemblyAI-style text/start/end ms)
- optional webhook URL for completion delivery
Chosen ReelForge path
- Choose recipe: voiceover_explainer
- Validate payload first (recommended for production reliability)
- Render via recipe endpoint
- Retrieve via jobs polling or webhook callback
Operational examples
Render request payload (recipe)
{
"recipe_id": "voiceover_explainer",
"style_preset": "karaoke_yellow",
"idempotency_key": "influencer-flow-001",
"variables": {
"voiceover_audio_url": "https://samplelib.com/lib/preview/mp3/sample-15s.mp3",
"background_assets": [
"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4",
"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerEscapes.mp4",
"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4"
],
"transcript_words": [
{ "text": "The", "start": 0, "end": 900 },
{ "text": "striker", "start": 900, "end": 1900 },
{ "text": "gets", "start": 1900, "end": 2800 },
{ "text": "past", "start": 2800, "end": 3600 },
{ "text": "the", "start": 3600, "end": 4300 },
{ "text": "defender,", "start": 4300, "end": 5600 },
{ "text": "takes", "start": 5600, "end": 6600 },
{ "text": "the", "start": 6600, "end": 7300 },
{ "text": "shot,", "start": 7300, "end": 8700 },
{ "text": "and", "start": 8700, "end": 9500 },
{ "text": "it", "start": 9500, "end": 10200 },
{ "text": "is", "start": 10200, "end": 10900 },
{ "text": "a", "start": 10900, "end": 11600 },
{ "text": "beautiful", "start": 11600, "end": 13400 },
{ "text": "goal!", "start": 13400, "end": 15000 }
],
"hook_text": "Watch this crazy play!",
"cta_text": "Follow for more highlights"
},
"webhook_url": "https://example.com/reelforge/webhooks"
}Validate response (trimmed realistic)
{
"success": true,
"data": {
"valid": true,
"estimated_total_duration_seconds": 15,
"estimated_credit_cost": 15,
"warnings": []
},
"request_id": "req_01hxyz"
}Render response (trimmed realistic)
{
"success": true,
"job_id": "8f1fd0fe-63a5-4fef-8f2c-8f1225f6d309",
"request_id": "req_01hxyz"
}Job retrieval response (trimmed realistic)
{
"success": true,
"data": {
"id": "8f1fd0fe-63a5-4fef-8f2c-8f1225f6d309",
"status": "completed",
"output_url": "https://signed-url.example/video.mp4",
"error_message": null,
"created_at": "2026-03-10T12:00:00.000Z",
"updated_at": "2026-03-10T12:00:21.000Z",
"total_duration_seconds": 15,
"credit_cost": 15
},
"request_id": "req_01hxyz"
}Final output preview
Flagship workflow output
Representative social-video style sample preview for rollout validation.
Make/Zapier mapping tips
- Map incoming clip/audio variables directly to the request payload; avoid rebuilding JSON dynamically in multiple steps.
- Use a stable idempotency_key pattern per scenario run to prevent accidental duplicate charges.
- If webhooks are unavailable in your tool, poll /v1/jobs/{jobId} every 5-10 seconds until terminal status.
Advanced fallback
If your workflow needs frame-level sequencing or layouts recipes cannot express, switch to the Timeline API as an advanced fallback.