mcpField
R
run-featured-workflow

run-featured-workflow

github.com/adobeMarketing & growth316123 installsUpdated today
Repository

About run-featured-workflow

A skill for running predefined marketing and production workflows through run-workflow MCP. It guides discovery, input handling, submission, and result monitoring, while directing custom jobs to a separate workflow path.

Key features

  1. 01Finds named featured workflows
  2. 02Routes images, fonts, and CSV inputs
  3. 03Supports default and custom InDesign templates
  4. 04Submits jobs and polls results
  5. 05Provides failure diagnosis guidance

Use cases

  1. 01Generate product banners from CSV data
  2. 02Run retargeting or localization workflows
  3. 03Prepare catalog, packaging, or packshot outputs

MCP support

It uses run-workflow MCP tools to find, submit, and monitor workflows, upload assets, inspect templates, and diagnose failures.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/adobe/skills --skill run-featured-workflow

After installing, type/run-featured-workflowin Claude Code to confirm it loaded.

Details

From the project README

Featured Workflows (run-workflow MCP)

Run pre-built marketing and production workflows bundled with the MCP server. Never compose from scratch when get_featured_workflow finds a match.

When to use

TRIGGER when the user:

  • Names a featured workflow: retargeting, localization, banner advertising, packaging, product banners at scale, catalogs, packshots, spin video, etc.
  • Asks to run a "known" or "predefined" workflow by name or keyword
  • Provides product images + fonts for a banner/merge-data workflow with defaults

DO NOT TRIGGER when:

  • User wants a custom workflow with no named match — use run-workflow and compose_workflow
  • User pastes only a batch/execution/workflow ID — use inspect_run via run-workflow skill

Tool routing

StepTool
Find predefined workflowget_featured_workflow
Upload images, fonts, custom templates, CSV dataupload_asset
Extract merge tags from custom .inddget_indesign_tags
Submit (large / multi-banner)run_workflow_submit
Poll progress and outputsrun_workflow_get_status (always includeOutputs: true)
Re-wire graph after tag diffcompose_workflow (custom templates only)
Diagnose failureinspect_run

Discovery flow

  1. Call get_featured_workflow({ query: "<keyword>" }).
  2. Multiple matches — prepared is absent. List matched names, ask user to pick, retry with exact name.
  3. Single match — present mergeNodes, required inputs, sizes. Confirm with user.
  4. Ask about templates if not specified (defaults vs custom .indd).
  5. Ask about fonts if user has .otf/.ttf files — upload via upload_asset.
  6. If the user supplies a .csv (data-merge workflows like product-banners-at-scale), upload it and wire it to the input-files node (type: "file" in prepared.inputNodes) — see Data/CSV inputs below.

Distinct asset types route to distinct input nodes: images → input-images, fonts → defaults.fonts, CSV/data → input-files (which feeds parse-data). Never collapse them onto one node.

Fast path (defaults)

When user wants default templates and default text:

  1. Upload product images and fonts via upload_asset.
  2. Call run_workflow_submit:
{
  "session_id": "<prepared.session_id>",
  "useSessionDefaults": true,
  "defaults": {
    "fonts": [{ "presignedUrl": "...", "name": "Font.otf", "storageType": "azure" }]
  },
  "inputs": [
    {
      "node_id": "<input-images id from prepared.inputNodes>",
      "content": [{ "type": "image", "url": "..." }]
    }
  ]
}
  • Do not call compose_workflow.
  • Do not send actions/connections when session_id is present.
  • Pass all images in one content array — one submit call.

Data / CSV inputs

Some featured workflows (e.g. product-banners-at-scale) have a CSV branch: input-files → parse-data → merge-data. prepared.inputNodes surfaces the CSV node with type: "file", and prepared.inputs carries the workflow's baked sample CSV as inline content.

  • Defaults only (no user CSV): submit as-is — the baked sample CSV flows through, no input-files entry needed.
  • User-supplied CSV: upload it via upload_asset, then add an inputs[] entry for the input-files node id so it overrides the baked default:
{
  "node_id": "<input-files id from prepared.inputNodes>",
  "content": [{ "url": "<uploaded csv url>", "mimeType": "text/csv" }]
}

The CSV columns drive the parse-data fan-out (e.g. headline, subcopy, CTA) — do not also wire those as separate text inputs. A product image that's constant across every row (not a per-row CSV column) wires input-images directly into merge-data, bypassing parse-data entirely — this is the privileged default; only route an image through parse-data's media-override port when it genuinely varies per row.

Custom template path

When user provides custom .indd templates:

  1. get_indesign_tags on each template.
  2. Compare to prepared.mergeNodes[].tags:
    • Identical → swap template URLs only; skip compose.
    • Different → feasibility check, then optional compose_workflow re-wire.
  3. If a critical image tag was removed (e.g. background in retargeting), stop — offer defaults, different template, or build from scratch.
  4. Show updated graph visually. Prompt for missing merge-data inputs only.
  5. Submit after user confirms all values.

Merge-data vs scene prompts: Only InDesign merge-port tags need user-facing text/image inputs. Keep gen-object-composite scene prompts at their defaults unless user asks to change them.

Polling and outputs

After run_workflow_submit, poll run_workflow_get_status every ~5 seconds with includeOutputs: true.

  • Report: Running — N/M complete (X%) · Ns elapsed using elapsedSeconds from response.
  • On completion: list every output's full presigned URL verbatim. Never truncate.
  • On failure: inspect_run, summarize, stop — do not auto-retry.

Known featured workflows

Slug / keywordUse case
product-banners-at-scaleProduct banners from a CSV (data merge), one template + constant image, per-row copy
retargetingRetargeting ads
localizationLocalization
generic-banner-advertisingGeneric banners
contextual-or-native-advertisingNative ads
catalogs-and-circularsCatalogs
promotional-pricing-or-discountingPricing promos
packaging-variants-2dPackaging
standardized-packshots-2d / 3dPackshots
refreshed-product-imagery-2dProduct imagery refresh
composite-imagery-3d3D composite
3d-spin-video360 spin video

Anti-patterns

  • Calling compose_workflow when featured workflow exists and tags match
  • Sending full graph JSON when session_id is available
  • Repeating fonts on every merge-data input — use defaults.fonts
  • Sending all input entries when useSessionDefaults: true suffices
  • Separate submit per image
  • Skipping user confirmation on missing merge-data text fields

References

Comments

Markdown supported