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
24k192 skills5 agents15 commands40 MCP
Install
$ npx -y skills add anthropics/knowledge-work-plugins --skill canva-creator --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/canva-creator

Context preview

The summary Claude sees to decide when to auto-load this skill.

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) —

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
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.

Get the whole plugin

Other skills on knowledge-work-plugins.