Four Things You Can Automate with the Adobe Workfront Fusion v3 API
Four Things You Can Automate with the Adobe Workfront Fusion v3 API
If you're running Fusion at scale, you've probably hit at least one of these walls: you don't know which of your 200+ scenarios is still active, you blew your operations budget mid-month without a warning, promoting a scenario from dev to prod took half a day, or you woke up to a failure alert with no idea where to start.
The Fusion v3 API is the answer to all four. Here's a practical breakdown of what you can automate — and how to get started in under 10 minutes.
Before You Begin: Authentication
Every call goes to https://fusion.adobe.io and requires four headers:
Authorization: Bearer <IMS token>
x-api-key: (from Adobe Developer Console)
x-organization-id: (your target org)
x-gw-region: (your gateway region)Set these up once in Postman as environment variables and every example in this post will work against your own tenant without modification.
Setup in four steps:
- Create a Fusion integration in Adobe Developer Console
- Grant API permissions to the technical account
- Generate an IMS access token
- Copy the four credential values into your environment
Module 1: Governance at Scale
"We have 300+ Fusion scenarios across 12 teams. We don't know what's active, who owns what, or what changed last week."
Sound familiar? The Fusion UI has no org-wide inventory view. Manual audits take hours, miss stale scenarios, and can't answer the compliance team's favorite question: who changed scenario X, and when?
Three API calls solve this entirely.
| Step | Method | Endpoint | Purpose |
|---|---|---|---|
| 1 | GET | /api/v3/scenarios?property=teamId==<id>&limit=100 | List all scenarios for a team |
| 2 | GET | /api/v3/folders?teamId=<id> | Map folder structure — ownership and org grouping |
| 3 | GET | /api/v3/activity-logs?property=type==scenario | Audit trail — what changed and who changed it |
What this unlocks:
- A live scenario inventory report you can export to CSV or pipe into a dashboard
- Automatic detection of orphaned or inactive scenarios — no UI browsing required
- Programmatic answers to compliance questions, including full change history
The pattern to steal: Schedule a nightly job that runs GET /scenarios + GET /activity-logs. Diff the results daily, flag newly inactive scenarios or unexpected changes, and push a digest to Slack for team leads.
Module 2: Cost Monitoring
"We hit our operations limit mid-month and don't know which scenarios are burning the most. We're flying blind on cost."
Operations are the billing unit in Fusion. High-volume orgs have no automated alerting on consumption, and finance teams need per-team chargeback data that the UI simply doesn't export.
This API cluster gives you direct, programmatic access to the same data that drives the billing meter.
| Step | Method | Endpoint | Purpose |
|---|---|---|---|
| 1 | GET | /api/v3/operations/summary?from=<date>&to=<date> | Total ops by scenario + team in a date range |
| 2 | GET | /api/v3/operations?groupby=scenarioId&from=<date>&to=<date> | Time-series breakdown — identify the spike |
| 3 | GET | /api/v3/operations?groupby=teamId&from=<date>&to=<date> | Roll up by team for chargeback reporting |
What this unlocks:
- Automated weekly ops reports per team — no one has to log into the UI on Monday morning
- Custom alert rules: flag any scenario that exceeds a daily operations threshold you define
- A chargeback model that attributes costs to business units programmatically
The pattern to steal: Run GET /operations/summary every Monday. Compare to the prior week — flag any scenario with more than a 20% increase. POST a human-readable summary to Slack: "Scenario X consumed 40k ops this week, up 35%."
Module 3: Environment Promotion
"When we want to move a scenario from our test org to production, we do it manually. It takes hours and we break dependencies every time."
Fusion has no native environment promotion UI. Every manual promotion means hand-rewiring every connection, webhook, and data store. Errors are common, rollbacks are painful, and the process doesn't scale.
The clone API makes this completely scriptable. The trick is to inspect first, then clone.
Phase 1 — Inspect before you promote:
| Step | Method | Endpoint | Purpose |
|---|---|---|---|
| 1 | GET | /api/v3/scenarios/{scenarioId} | Full blueprint — connections, webhooks, data stores |
| 2 | GET | /api/v3/scenarios/{scenarioId}/dependencies | Map every dependency needing a prod equivalent |
Phase 2 — Execute the promotion:
| Step | Method | Endpoint | Purpose |
|---|---|---|---|
| 3 | POST | /api/v3/scenarios/{scenarioId}/clone | Copy to target team with dependency replacements |
Connection replacements are declared directly in the POST request body — no manual rewiring after the fact. The response returns the new scenario ID plus a Location header, which you can log directly into your release notes.
What this unlocks:
- A repeatable, scriptable pipeline: dev → QA → prod
- Zero manual rewiring on every release
- Immediate linkable reference to the promoted scenario
The pattern to steal: Store a connection mapping file (dev-conn-id → prod-conn-id). On release day: GET dependencies → build replacement map → POST clone → log new ID to release notes automatically.
Module 4: Failure Triage
"A scenario failed overnight. By morning we have an alert but no fast way to know which execution failed, what it was processing, or which connection is the culprit."
The Fusion UI surfaces failures but doesn't support bulk triage across scenarios. When a shared connection goes down, multiple scenarios fail simultaneously. Before you rotate a credential, you need to know the blast radius.
| Step | Method | Endpoint | Purpose |
|---|---|---|---|
| 1 | GET | /api/v3/logs?scenarioId=<id>&property=status==3 | List only failed executions (status 3 = failed) |
| 2 | GET | /api/v3/logs/{executionId} | Drill into one execution — module-level error detail |
What this unlocks:
- An automated overnight failure report across every active scenario
- A pre-rotation safety check: know exactly which scenarios will break before you rotate a credential
- Failure data piped directly into PagerDuty or Slack — no one reads log files manually
The pattern to steal: Nightly job — GET /logs?property=status==3 for all active scenarios. For each failure: GET /logs/{id}, extract error.message + moduleIndex, POST a summary to your #ops-alerts Slack channel with scenario name and error.
Try It Now — 10 Minutes to Your First Live Call
- Import the OpenAPI spec into Postman: File → Import → select
workfront-fusion-apis/static/fusion.json - Set your four environment variables: Authorization, x-api-key, x-organization-id, x-gw-region
- Run your first call:
GET /api/v3/scenarios— you'll see your org's scenario list immediately
Comments
Post a Comment