Skip to content
Business
Skill

/canva-creator

Takes an approved content brief and executes a campaign end-to-end: builds the posting calendar, generates Canva designs for social posts, drafts caption and email copy, and stages social sends in HubSpot. Canva is used for social posts only (Instagram, Facebook, X, LinkedIn) —

From plugin
knowledge-work-plugins
35k200 skills5 agents15 commands40 MCP

Claude Code

$ npx -y skills add anthropics/knowledge-work-plugins --skill canva-creator --agent claude-code

SKILL.md

canva-creator.SKILL.md
name: canva-creator
description: >
  Takes an approved content brief and executes a campaign end-to-end: builds
  the posting calendar, generates Canva designs for social posts, drafts
  caption and email copy, and stages social sends in HubSpot. Canva is used
  for social posts only (Instagram, Facebook, X, LinkedIn) — email content
  is drafted as plain text and surfaced inline for the owner to send from
  their own tool. Every step requires explicit owner approval. This is the
  one-shot campaign executor: a finished brief goes in, a complete campaign
  comes out. Use when the owner hands off an approved brief or points at one
  — "run this brief," "execute the campaign," "turn this brief into posts,"
  "build the campaign from the plan we approved." For day-to-day posting with
  no brief — "I need to post more," "what should we post" — use
  social-content-engine instead; it owns the standing calendar.
allowed-tools: Read, WebFetch

Canva Creator

Scope

This skill handles a campaign in five sequential stages, each gated by owner approval:

brief → calendar → asset inventory → Canva designs → copy → HubSpot staging

| Path | Channels | What this skill produces | |------|----------|--------------------------| | Canva (social) | Instagram, Facebook, X/Twitter, LinkedIn | Canva design + caption + scheduled HubSpot post | | Text-only | Email (newsletter, marketing, drip) | Subject + preheader + body, surfaced inline for the owner to send |

**Canva is not used for email rows under any circumstance** — no templates, no autofill, no design copies, no asset uploads, no exports. Email graphics are out of scope for this skill because email-template autofill produces placeholder graphics when image slots exceed available photos, and variation thumbnails fail to render in chat previews. If the owner asks for a Canva email design, see `reference/gotchas.md` for the redirect language.

---

Pre-flight

Before Stage 1, confirm:

1. **Brief.** The user has referenced or pasted an approved brief. If not: "I'll need the content brief before I can build the campaign. Do you have one from the content-strategy skill, or would you like to write one now?"

2. **Canva tier.** Pro/Teams require manual template selection from the user's library (no autofill API). Enterprise can autofill from brand templates.

3. **HubSpot tier.** Social staging requires Marketing Hub Professional. Starter or Free → skip Stage 5 and export a CSV instead (see [reference/hubspot-staging.md](reference/hubspot-staging.md)).

4. **Brand assets.** If a storefront is connected (Shopify or Square — peers, `../../shared/connector-neutrality.md`), read the product list first: titles, image URLs, and prices for every product the brief names. Read only — nothing is uploaded to Canva until Stage 2 step 5, and then only the images the approved calendar's slots need. That list is the starting photo inventory; ask only about products the store has no image for. The pull rules — which fields, the price-claim rule — are in [../social-content-engine/reference/shopify-assets.md](../social-content-engine/reference/shopify-assets.md) (written for Shopify; Square's catalog images follow the same steps from the tool inventory). With no storefront, confirm the path to product photos on disk or that the brand kit is live in Canva.

5. **Generation budget.** Estimate the campaign's Canva volume and surface it before Stage 1 begins. Default is 3 candidates per Canva-bound row; each design costs ~5 API calls (autofill + export + polling).

   Generation budget for this campaign:
     Canva (social) rows: 8
     Candidates per row:  3   (default — say "single candidate" to use 1)
     Total designs:       24
     API calls (approx):  ~120  (autofill + export + polling)

   Canva limit: 100 requests/minute. This will take ~2-3 minutes of
   generation, well within your tier limits. Proceed?

If the projected total designs exceeds 30, recommend single-candidate mode upfront — large campaigns run out of headroom fast. The owner can override the default to 1, 2, or 3 candidates per row before Stage 1 starts. Lock the chosen value for the entire session.

---

Workflow

Stage 1 — Posting calendar

Pull from the brief: content themes, channels, cadence, hard dates (launches, sales, holidays).

Build a calendar table with a `Path` column that routes every row to either Canva or text-only drafting:

| Date | Channel | Path | Theme | Asset type | Caption/Subject angle | |------|---------|------|-------|------------|-----------------------| | Jun 2 | Instagram feed | Canva (social) | Linen launch | Square post | "finally, a dress…" | | Jun 5 | Email | Text-only | Linen launch | Email body | "Linen that actually breathes" |

Tag every email-channel row as `Text-only` before presenting. Cap at 30 days unless the brief specifies otherwise. Flag scheduling conflicts (two posts same day for the same product) up front.

**Checkpoint 1.** Present the calendar. Ask: "Does this match the plan? Any dates to shift, channels to add, or themes to swap?" Iterate until approved, then restate the split out loud — "N rows go through Canva, M rows go through text-only drafting" — before moving on. Catching a miscategorization here is free; catching it after generating designs isn't.

---

Stage 2 — Asset inventory (Canva rows only)

Email rows skip this stage entirely. For each `Canva (social)` row, build a manifest of what the template needs and what's already available.

1. **Enumerate every image slot by name.** Square Instagram posts usually have 1-2 image slots; carousels and product grids can have 5+. List them individually (`Header_Image`, `Product1_Image`, `Product2_Image`, …) — never roll them up as "product images."

  • Enterprise: read field names from `dataset[].label` on the brand

template (`GET /v1/brand-templates/{id}`).

  • Pro/Team
Read more
@anthropics-2
Ships withknowledge-work-plugins

Plugins that turn Claude into a specialist for your role, team, and company. Built for Claude Cowork, also compatible with Claude Code.

35k200 skills5 agents40 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
35.3k
Star history of anthropics/knowledge-work-plugins on GitHub, a chart by star-history.com

Other skills on knowledge-work-plugins.

More skills from other plugins.

opc-asset-ops

opc-asset-ops

Turn repeatable outputs of a one-person company into compounding assets. Use when Codex needs to explain asset-compounding…

@easychen@easychenInstall Skill
dbs

dbs

dontbesilent 商业工具箱的技能调度台,根据当前问题和反馈选择下一步,在对话中直接执行、澄清、组合或对照尝试 Skill。用户不知道从哪里开始、需要调整处理方法、第一次使用…

dbs2d11k
@dontbesilent2025@dontbesilent2025Install Skill
money

money

Main entry point for the Show Me The Money business automation suite. Dual mode: pre-task routing (which skill fits your problem)…

@iamzifei@iamzifeiInstall Skill

Questions about canva-creator.

Which coding agents can use canva-creator?
canva-creator installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.