# Make Social Graphics From a Canva Brand Template

An agent fills a Canva brand template with your announcements and returns PNG exports and design links without changing the original template.

[Run this on Rush](https://cloud.getrush.ai/run/social-graphics-from-template/canva/).

## What the agent does

Start with approved announcement text and a Canva brand template, not an empty canvas. The agent reads the announcement headlines and bodies, finds the template named Social announcement, and inspects the fields available for autofill. Rush's connector catalog describes Canva as able to "autofill brand templates" and "export finished designs" in rush/shared/connectors/integrations.ts. The job uses that connection instead of cloning a repository. Template access, account permissions and any Canva plan requirements must be checked before generating the batch.

The request below keeps the announcements inside the string input so you can see exactly what text starts the job. Replace its bracketed instruction with your approved copy. A live run also needs the Canva MCP connection explicitly selected through the API's connections field; the minimal body shown here does not grant Canva access. The developer API quickstart explains how to create an MCP connection, complete its sign-in and select its id. Never paste a Canva password or access token into announcement text.

For each announcement, the agent maps the headline and body to the template's actual text fields and creates a separate design. It preserves the source template rather than editing it in place. Long text deserves inspection: a headline fitting the input field can still wrap badly in the finished graphic. The prompt asks the agent to inspect the generated designs and flag clipping, missing fonts or unsupported fields instead of shortening approved copy without permission. Ambiguous template names require an exact design identifier before work continues.

The agent exports the generated designs as PNGs and writes a manifest linking each announcement to its design and exported filename. It checks that the downloaded files are readable images and that every supplied announcement has a corresponding output. Failed exports stay visible as missing items, not silent omissions from the batch. This assignment creates graphics only. Scheduling posts, publishing designs and changing the brand kit remain outside the request, even when the connected Canva account exposes tools for those operations.

## Start it with one API call

`POST https://api.prix.dev/o/{org}/sessions`

```json
{
  "agent": "claude",
  "input": "Use the explicitly selected Canva connection. If no Canva tools are available, stop and report the missing connection. Announcements: [replace this bracketed text with approved headline/body pairs]. Find the brand template named Social announcement, inspect its autofill fields and create a separate design for each announcement. Do not edit the template or brand kit. Preserve the approved wording; flag overflow or missing fields rather than inventing replacements. Export each design as PNG, check the files, and return the images plus designs.md mapping each announcement to its design link and export filename. Do not publish or schedule anything."
}
```

1. **Get an API key.** In the console, open Settings, then API keys, and create a key for your org. Send it in the Authorization header as a Bearer token.
2. **Send the request.** POST the body in request.json to https://api.prix.dev/o/{org}/sessions, with your repository as the resources URL. The run starts in its own cloud sandbox.
3. **Read what came back.** Follow the run on its live stream or wait for the run.completed webhook, then read the result and its trajectory.

## What comes back

The deliverable contains the PNG exports and designs.md, with a row for each announcement, its Canva design link, its output filename and any visual concern. The report distinguishes a design created successfully from an export that could not be downloaded. An unavailable template or missing Canva permission produces a specific explanation of what is needed, rather than a claim that the graphics are ready.

Review the actual images before using them: headline wrapping, contrast, logo placement and whether the exported dimensions match the selected template. Open a sample design link and confirm that the original template remains unchanged. Read the finished session for its answer and artifact list; download links on that list expire, and reading the session again supplies fresh links. This page describes the requested output, not a completed design run.

## Run it on every approved announcement batch

Have your content approval workflow send one POST /o/{org}/sessions request after the announcement batch is final. Include the actual copy in input and select the Canva connection before dispatch. Use a new Idempotency-Key for a new batch and reuse it only when retrying the same body. Your server can wait for the completion webhook, read the session's artifacts and place the files in an internal review queue without publishing them.

## Why run it on Rush?

A batch of graphics involves more than generating text: template discovery, field mapping, image export and a final file check all belong together. Rush gives the agent its own cloud sandbox to collect the files and build the manifest. You do not have to keep a laptop open while separate Canva export operations finish, or manually match downloaded filenames back to announcement text.

The record of tool calls and their results lets a reviewer follow which template was selected and which exports succeeded. Separate announcement batches can run independently within your account's concurrency limits, without mixing their files in a shared download folder. The useful proof is the exported image and its design link, not an assurance that the template probably filled correctly.

## Frequently asked questions

### Will it change our Canva brand template?

The prompt explicitly forbids editing the source template or brand kit. It asks for separate generated designs and a manifest of their links. Check those links and the template history before accepting the batch.

### Do we need a GitHub repository?

No repository is involved in this task, so resources is omitted. Canva access is a separate prerequisite: connect its MCP server and explicitly select that connection for the real request. The sample's app name alone does not authorize it.

### Can we supply announcements as a file instead?

Yes, the developer API supports file input blocks. The example uses a string containing your copy; to attach a document, change input to the documented block form. Do not leave the placeholder text in a production request.

### What happens when a headline is too long?

Ask the agent to report overflow with the affected design link rather than silently rewriting an approved message. A person can approve shorter wording and send it in a follow-up after the turn finishes. Review the new export before posting it.
