CONTENT CREATION
Publish Dubbed Tracks Only After Human Review Approval
Triggered by an approval webhook from your review tool, this promotes the approved language dubs from a staging R2 prefix to the published prefix and notifies the instructor…
How it runs
The automated pipeline, trigger to output.
- TriggerApproval webhook from review toolHTTP webhook
- LogicValidate payload and confirm staged track existsCloudflare R2
- LogicBranch on approved vs rejected
- ActionPromote track from staging to published in R2Cloudflare R2
- OutputNotify instructor in Slack that language is liveSlack
What it does
Generated dubs land in a staging area first. When a reviewer approves a specific lesson-language pair in your QA tool, an approval webhook fires this workflow, which promotes only the approved track from staging to the published R2 location and records the approver.
When to use it
Use it when machine-generated dubs need a human ear before they reach learners. It enforces that nothing goes live until a reviewer signs off, while still keeping the promotion step fully automated and auditable.
How it works
- 1The review tool sends an approval webhook containing lesson ID, language, and reviewer.
- 2Validate the payload and confirm the staged track actually exists in R2; reject malformed or missing requests.
- 3Branch on decision: if rejected, log the reason and notify the producer to regenerate.
- 4If approved, copy the staged dub and subtitle from `staging/` to `published/` in R2 with approval metadata.
- 5Post a confirmation to Slack tagging the instructor that the language is now live.
Set it up
What you configure once, before turning it on.
- 1Connect HTTP webhookTrigger any URL on agent actions.
- 2Connect Cloudflare R2Object storage, S3-compatible.
- 3Connect SlackChannels, DMs, threads, mentions.
- 4Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 5Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 6Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More Content Creation workflows
On-demand: turn a blog URL into narrated B-roll clips
Accepts a blog URL via webhook, scrapes the article, generates a B-roll clip per paragraph with Replicate and a voiceover with ElevenLabs.
Sync a Figma master frame into localized hero renders
Pulls the current master hero frame and its text layers from Figma, generates a localized image variant for each locale defined in Airtable.
Build a Dropbox B-roll library from exported blog drafts
Triggers when a new blog draft file lands in a Dropbox folder, generates a Replicate B-roll clip for each paragraph.
Generate B-roll clips when a blog post is marked Ready in Notion
Watches a Notion blog database for posts flipped to 'Ready', splits the body into paragraphs, and generates a short B-roll video clip for each paragraph with Replicate.
Weekly: clip last week's top blog paragraph and post to socials
Runs on a weekly schedule, picks the highest-traffic paragraph from the past week's posts, generates one polished B-roll clip with Replicate.
On-Demand Screenshot Freshness Report from a Slack Command
A writer requests a freshness check in Slack for a specific docs page; the workflow inspects every screenshot on that page, scores each by age and version gap.
Run it inside a business
This workflow drops into a full company template. Import the org, and this is one of the playbooks its agents run.

Run this workflow in your colony.
14-day trial. No DevOps. No Sales call. Provisioned in under a minute.
