{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Shuffll Engage campaign workflows","projectTitle":"Shuffll Developers","lang":"en","image":"/assets/icon-light.cf77c9f50f367b5652a57cbdbd6d9a5881b87349c1b0643a9f667e0d2e220f90.42541b0d.png","description":"Use the legacy Shuffll Engage flat-video-v1 workflow to render frozen clips for selected recipients and retrieve video results.","siteUrl":"https://api-docs.shuffll.com","jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://shuffll.com/#organization","name":"Shuffll","url":"https://shuffll.com"},{"@type":"WebSite","@id":"https://api-docs.shuffll.com/#website","name":"Shuffll Developers","url":"https://api-docs.shuffll.com","inLanguage":"en","publisher":{"@id":"https://shuffll.com/#organization"}},{"@type":"WebAPI","@id":"https://api-docs.shuffll.com/engage#api","name":"Shuffll Engage API and MCP","url":"https://engage.shuffll.com","documentation":["https://api-docs.shuffll.com/engage","https://api-docs.shuffll.com/openapi/engage.json"],"serviceType":"Video campaign API and MCP","provider":{"@id":"https://shuffll.com/#organization"}},{"@type":"WebAPI","@id":"https://api-docs.shuffll.com/guides#api","name":"Shuffll Video Production API","url":"https://api.shuffll.com/api/v1","documentation":["https://api-docs.shuffll.com/apis","https://api-docs.shuffll.com/openapi/video-production.yaml"],"serviceType":"Video production REST API","provider":{"@id":"https://shuffll.com/#organization"}}]},"llmstxt":{"hide":false,"title":"Shuffll Engage API and MCP — Shuffll Developers","description":"Shuffll Engage connects agentic creation, catalog-driven campaigns, overlays and multilingual video through API and MCP. Video Production covers individual video projects.","details":{"content":"Start with [Shuffll Engage](https://api-docs.shuffll.com/engage). Read [which API to use](https://api-docs.shuffll.com/choose-api) and the [FAQ](https://api-docs.shuffll.com/faq) for scope, endpoints, and authentication. REST references are separate: [Engage](https://api-docs.shuffll.com/engage/openapi) and [Video Production](https://api-docs.shuffll.com/apis). Machine-readable OpenAPI downloads: [Engage JSON](https://api-docs.shuffll.com/openapi/engage.json) and [Video Production YAML](https://api-docs.shuffll.com/openapi/video-production.yaml). Legacy flat-video-v1 restrictions apply to that rendering workflow. Check live workspace access and operation-specific environment requirements.\n"},"sections":[{"title":"Shuffll Engage API and MCP","includeFiles":["engage/**/*.md"]},{"title":"Choose an API and get answers","includeFiles":["choose-api.md","faq.md"]},{"title":"Shuffll Video Production API","includeFiles":["guides/*.md","integrations/*.md"]},{"title":"Support","includeFiles":["contact.md"]}]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"shuffll-engage-campaign-workflows","__idx":0},"children":["Shuffll Engage campaign workflows"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose a workflow around the result you want: a newly authored story, an audience-relevant product campaign, or generation from a published template. Start with the brief and supported creative inputs, then follow the selected workflow's generation and review steps."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Your starting point"},"children":["Your starting point"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Follow this path"},"children":["Follow this path"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A creative objective and an assistant"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/engage/agentic-workflows"},"children":["Agentic video journey"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A product catalog and audience rules"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/engage/product-catalogs"},"children":["Catalog-driven creative"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Existing footage that needs precise product text or artwork"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/engage/overlays"},"children":["Scene overlays"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A published template and the documented REST campaign contract"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The published-template sequence below"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"published-template-campaigns","__idx":1},"children":["Published-template campaigns"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The REST sequence below uses the legacy ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flat-video-v1"]}," rendering format: it renders frozen clips from an authorized published version. Recipient fields do not change that media. For new personalization or creative authoring, use the supported ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/engage/agentic-workflows"},"children":["journey workflow"]}," and its discovered input contract."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Discover a published template."]}," Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["templates_list"]}," / the matching REST operation with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["templates:read"]},". Inspect the selected template and its versions. A usable version must report ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["render_source_status: ready"]}," with supported immutable ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flat-video-v1"]}," content. Legacy unavailable versions cannot be used as a generation source."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create the campaign."]}," Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaigns_create"]}," with the exact fields shown in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/engage/openapi"},"children":["reference"]},", including the selected template/version. Supply a unique idempotency value. Keep the returned campaign identifier and revision."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add recipients."]}," Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recipients_upsert"]}," within the campaign. Use synthetic recipients when testing. Storing names or contact details does not personalize the rendered media or send messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate explicitly."]}," Read the campaign's current state, then call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaigns_generate"]}," with the required input, revision and idempotency value. This action may consume the configured generation allowance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Wait for completion."]}," Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["jobs_get"]}," according to its polling guidance until terminal. Distinguish completed, failed and partially failed jobs; see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/engage/errors"},"children":["jobs and retries"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Read results."]}," Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaign_results_list"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaign_results_get"]}," for returned media and status. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaign_analytics_get"]}," reports available campaign analytics; rendering does not establish message delivery or engagement attribution."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["REST operation names, routes and payloads are in the generated reference. MCP uses the tool names above with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["operation_id"]}," and, where required, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expected_revision"]},"; REST uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Idempotency-Key"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["If-Match"]}," headers instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For paginated operations, follow each operation's schema. Where ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cursor"]}," are supported, the default limit is 50 and maximum is 100. Reuse the returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nextCursor"]}," unchanged for the same operation/workspace until null. Do not infer access to other tenants from their identifiers."]}]},"headings":[{"value":"Shuffll Engage campaign workflows","id":"shuffll-engage-campaign-workflows","depth":1},{"value":"Published-template campaigns","id":"published-template-campaigns","depth":2}],"frontmatter":{"seo":{"title":"Shuffll Engage campaign workflows","description":"Use the legacy Shuffll Engage flat-video-v1 workflow to render frozen clips for selected recipients and retrieve video results."}},"lastModified":"2026-11-12T17:50:54.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/engage/workflows","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}