Skip to main content

Rebrand a template (full rebrand on copy)

When to use: The user has a source canvas they like and wants a new canvas with a different brand applied — different colors, different fonts, different logos. Common for agencies producing the same layout for multiple clients. The original canvas is preserved.

Tool call

What the server does

The server:
  1. Copies the source canvas into the caller’s team (original untouched).
  2. Applies the new brand_kit_id to the copy.
  3. Because the resolved kit differs from the source’s, the agent runs the template-remix skill — full rebrand (palette, typography, hero imagery), not just content swap — and it does not need the prompt to ask for it.
  4. Returns a task handle. Poll get_task_status as usual.

Don’t ask for the rebrand in the prompt

The rebrand is implicit and automatic. Passing a brand_kit_id that differs from the source canvas’s kit is the rebrand request — the server force-bundles the template-remix skill, which instructs the agent to read your prompt as describing only the content theme and to swap colors, fonts, logos, and hero imagery regardless of what the prompt says. Write the prompt as a content brief only:
  • Good: "Rebuild this deck as Acme's Series A pitch — swap the metrics on slides 4-6 for Acme's numbers and rewrite the customer quotes."
  • Bad: "Rebrand for Acme. Update colors, fonts, and imagery to the new brand kit."
The bad version isn’t merely redundant. Restating styling in the prompt fights the resolved brand kit (../references/gotchas.md#brand-kits), and it re-opens the content-only reading of the prompt that the server-side skill exists to close. The one thing worth putting in the prompt is a deviation the user asked for (“keep the dark background even though the kit is light”).

Picking the new brand_kit_id

  • If get_moda_bootstrap returned brand_kit_count > 1, you may already have the right id in hand from a recent find_brand_kits call or session preference. Use it.
  • If unsure, call find_brand_kits (JSON-only) and pick by name. Don’t call list_brand_kits autonomously — it renders the visual showcase the user didn’t ask for.

Mutually exclusive

template_canvas_id is mutually exclusive with both canvas_id and conversation_id.

Bulk variant — different brand per output

For “produce N rebranded variants, one per client”, iterate start_design_task calls with the same template_canvas_id and a different brand_kit_id each call. Pattern B of bulk-variants.md covers the windowed-launch shape.

See also