plugins/creative-cloud/adobe-for-creativity/skills/adobe-design-from-template/SKILL.md
Create any visual design using Adobe Express templates — including flyers, posters, banners, social media posts (Instagram stories, Facebook posts, LinkedIn graphics), business cards, invitations, greeting cards, resumes, cover letters, brochures, newsletters, certificates, presentations, YouTube thumbnails, email headers, logos, menus, labels, and more. Use this skill whenever the user wants to make, design, create, or build any visual — even if they just say "make me a flyer", "design a poster", "I need something for Instagram", "create an event invite", "make a business card", or any similar request. Also handles requests to find or browse templates, edit text/copy, change background colors, or animate a design. Access: 🔐 Signed-In required | Gen AI: ❌
npx skillsauth add adobe/skills adobe-design-from-templateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Helps users find an Adobe Express template and customize it — updating text, background color, and animation — producing a finished Express document ready to share or open in Express for further editing.
| Step | Tool | Notes |
|------|------|-------|
| Search for template | search_design | Interactive picker; user selects URN |
| Edit text and copy | fill_text | Retry once on transient error |
| Change background color | change_background_color | Pass hex; infer from color description if needed |
| Animate design | animate_design | Skip on 403 entitlement; no retry |
Call adobe_mandatory_init first. This returns file handling rules and tool routing guidance required for the rest of the workflow.
{ "skill_name": "adobe-design-from-template", "skill_version": "1.0.1" }
Now that adobe_mandatory_init confirmed that the "Adobe for creativity" connector is live, check which tools are available through the "Adobe for creativity" connector by cross checking against the Tool Reference table above.
Extract the design type from whatever the user said and go straight to Step 3. Asking clarifying questions before showing templates creates friction; the picker lets users course-correct visually, which is faster.
| User says | Query to use |
| -------------------------------- | -------------------------- |
| "make me a flyer" | "flyer" |
| "I need something for Instagram" | "Instagram post" |
| "design a poster for my event" | "event poster" |
| "make a business card" | "business card" |
| "flyer for an ice cream social" | "ice cream social flyer" |
Call search_design:
{
"generalQuery": "<design type from user prompt>",
"pageSize": 24
}
This renders an interactive picker in the chat. The user taps a template to select
it; the URN comes back automatically. If the user says "show more", call
search_design again with the same query and increment startIndex by pageSize.
Once a template is selected, confirm what was picked and ask what to customize:
"Got it — you've selected [template name]. What would you like to change?
- ✏️ Edit the text — names, dates, headlines, copy
- 🎨 Change the background color
- ✨ Animate it
- ✅ I'm done — just give me the link"
The user may choose one, several, or none. Apply each in sequence, then loop back and ask if they want anything else before wrapping up.
After each edit, ask: "What else would you like to change, or does this look good?"
Call fill_text:
{
"templateURN": "<URN>",
"description": "<what to change and what to change it to>",
"generalQuery": "<same, minus any PII>"
}
If the user hasn't specified what the text should say, ask before calling.
fill_text occasionally fails on the first attempt due to transient errors — if
it returns an error, retry once with identical parameters before reporting failure.
Call change_background_color:
{
"templateOrDocumentURN": "<URN>",
"backgroundColor": "<hex>",
"description": "<e.g. change background to coral pink>",
"generalQuery": "<same, minus any PII>"
}
If the user describes a color without a hex (e.g. "coral pink"), pick a reasonable hex value using your judgment.
Call animate_design:
{
"templateOrDocumentURN": "<URN>",
"description": "<animation style or intent>",
"generalQuery": "<same, minus any PII>"
}
If animate_design returns a 403, the user's plan doesn't include animation.
Skip it and note in the delivery: "Animation isn't available on your current Adobe plan — the rest of your design is ready." Retrying does not resolve a 403 entitlement — continue without retry.
When the user is satisfied:
✅ Here's your finished design:
🎨 Template: [name]
[Edits applied, e.g. ✏️ Copy updated · 🎨 Background changed · ✨ Animated]
📎 Open in Express: [editor link]
Remind the user that the document is temporary (deleted after 12 hours) and they should open it in Express to save.
ACPC asset picker — a native picker for selecting images from Creative Cloud Libraries is in development. This skill will be updated when it ships.
| Situation | Action |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| fill_text fails on first attempt | Retry once with identical parameters |
| animate_design returns 403 | Skip; note entitlement limit in delivery |
| Any tool returns 401 | Ask user to re-authenticate via Adobe OAuth, then retry |
| No templates match query | Try a broader query |
| User hasn't selected a template yet | Do not advance past the picker until a URN is returned; the URN is required for every subsequent tool call. |
| User skips all edits | Fine — deliver the template link as-is |
tools
Use the run-workflow MCP to discover, compose, execute, publish, and save Adobe Firefly workflows. TRIGGER when: user asks what actions are available, what the MCP can do, how to process images/video/3D via workflow, wants to build/run/save/publish a workflow, OR pastes any workflow/batch/execution ID. BARE ID (UUID/workflowId/batchId) = INSPECT ONLY — call inspect_run, NEVER run_workflow_submit. ALWAYS call list_actions first for capability/discovery questions. DO NOT TRIGGER for direct Firefly API calls without MCP (use firefly-api-specs).
tools
Run predefined featured workflows via run-workflow MCP. TRIGGER when user names a featured workflow (retargeting, banners at scale, localization, packaging, banner advertising, etc.) or asks to run a known marketing/production workflow. Requires run-workflow MCP. ALWAYS call get_featured_workflow before compose_workflow. DO NOT TRIGGER for custom one-off workflows with no named template — use run-workflow skill.
tools
Migrate an Adobe Commerce App Builder project from the Integration Starter Kit or Checkout Starter Kit to the new App Management approach. Run from the root of the App Builder project to be migrated. Pass --auto to skip confirmation prompts (suitable for CI or batch use) — auto mode prints a summary of all Q&A questions answered with their defaults. Pass --doc-scan-only to scan README.md and env.dist for outdated content without modifying any files. Use when the user wants to migrate an App Builder project from the Integration Starter Kit or Checkout Starter Kit to the App Management approach, or mentions upgrading their Adobe Commerce extension architecture.
development
Add or modify webhook interceptors in an Adobe Commerce app. Use when the user wants to intercept Commerce operations to validate input, append data, or modify behavior — before or after execution. Requires a base app initialized with commerce-app-init.