> ## Documentation Index > Fetch the complete documentation index at: https://www.canva.dev/docs/apps/llms.txt > Use this file to discover all available pages before exploring further. # Automate marketing campaigns with Canva Learn how to connect your marketing platform to Canva and automate content creation workflows Marketing teams juggle dozens of campaigns, each requiring on-brand assets across multiple channels. By integrating Canva into your platform using the [Canva REST APIs](https://www.canva.dev/docs/apps/rest-apis/), you can automate content creation, letting marketers generate campaign materials directly from your platform. AVAILABILITY: This app uses brand templates and autofill, which are available to users on Canva Pro, Canva Teams, or Canva Enterprise. This guide walks you through a reference demo that shows these integration patterns in action. You'll see how to connect your platform to Canva, autofill templates with campaign data, and streamline your marketing workflows. NOTE: The Nourish demo is a reference implementation for learning purposes. Use it to understand the integration patterns you can apply to your own platform. ## What you can automate With the REST APIs, your marketing platform can: * **OAuth authentication:** Securely connect a user's Canva account to your platform. * **Brand templates:** Fetch and display templates from a user's Canva Brand Kit. * **Autofill:** Automatically populate templates with campaign data, product information, and images. * **Design creation:** Generate Canva designs programmatically from your platform. * **Return navigation:** Allow users to return to your platform after editing in Canva. ## Prerequisites Before starting, ensure you have: * Node.js v24 or later * npm v11 * A Canva account on a plan with brand templates and autofill (Canva Pro, Teams, or Enterprise) ## Step 1: Create an app and enable the REST APIs 1. Open [Your apps](https://www.canva.com/developers/apps) in the Developer Portal and click **Create an app**. 2. In the modal: * Enter an **App name**, using 18 characters or fewer. * Under **Who can use your app?**, choose **Public** or **Private**. **Private** is only available on a Canva Enterprise plan. This can't be changed later. * Accept the Developer Terms. * Click **Create app**. You land on the app's **Overview** page, which summarizes the app and links to the setup for each surface. 1. On **Outside Canva > Configuration**, under **Scopes**, enable: * `asset`: Read and Write * `brandtemplate:content`: Read * `brandtemplate:meta`: Read * `design:content`: Read and Write * `design:meta`: Read * `profile`: Read 2. On **Outside Canva > Redirect URLs**, set **URL 1** to: ```text http://127.0.0.1:3001/oauth/redirect ``` 3. On **Outside Canva > Configuration > Return navigation**, turn on the toggle and set the **Return URL** to: ```text http://127.0.0.1:3001/return-nav ``` ## Step 2: Clone and configure the demo 1. Clone the [starter kit for the Canva REST APIs](https://github.com/canva-sdks/canva-connect-api-starter-kit): ```shell git clone https://github.com/canva-sdks/canva-connect-api-starter-kit.git cd canva-connect-api-starter-kit ``` 2. Install dependencies: ```shell npm install cd demos/ecommerce_shop ``` 3. Configure your environment variables in the `demos/ecommerce_shop/.env` file: * `DATABASE_ENCRYPTION_KEY`: Automatically generated during installation. If missing, run `npm run generate:db-key`. * `CANVA_CLIENT_ID`: Your Client ID from Step 1. * `CANVA_CLIENT_SECRET`: Your client secret from Step 1. ## Step 3: Set up brand templates To use the autofill functionality, you need Brand Templates in your Canva account: 1. Open the [sample Brand Template deck](https://www.canva.com/design/DAGGkcb61HQ/OJhMIQrmz2daIoxo8u3T2g/view). 2. Click **Use template** to add the templates to your Canva account. 3. Ensure the templates are saved to your Brand Kit. ## Step 4: Run the demo 1. Start the application: ```shell npm start ``` 2. Open [http://127.0.0.1:3000](http://127.0.0.1:3000) in your browser. WARNING: Access the app using `127.0.0.1:3000`, not `localhost:3000`, to avoid CORS errors. ## Using the demo 1. Click **Connect to Canva** to authenticate with your Canva account. 2. Browse campaigns on the **Campaigns** page. 3. Select a campaign to create marketing materials. 4. On the **Configure design** page: 1. Choose a Brand Template. 2. Select the campaign details and product information. 3. Click **Generate with Canva**. 5. The app validates the template fields, generates the design using autofill, and displays a preview. 6. Click **Edit in Canva** to open the design in Canva's editor. ## Integration patterns to apply Use these patterns from the demo as a reference when integrating Canva into your own platform. ### Authentication The demo uses OAuth 2.0 with PKCE for secure authentication. Your backend should handle: * Generating authorization URLs with code challenges * Exchanging authorization codes for access tokens * Securely storing and refreshing tokens For more information, see [Authentication](https://www.canva.dev/docs/apps/rest-apis/authentication/). ### Autofill Autofill lets you programmatically populate Brand Template fields with your data. On your platform, you would map your own data (such as campaign details, product information, or content from your CMS) to template placeholders. For more information, see [Autofill guide](https://www.canva.dev/docs/apps/rest-apis/autofill-guide/). ### Return navigation Return navigation allows users to return to your platform after editing a design in Canva. You can use this to update your UI with the edited design or trigger follow-up actions like publishing to social media or sending for approval. For more information, see [Return navigation guide](https://www.canva.dev/docs/apps/rest-apis/return-navigation-guide/). ## Next steps * Explore the [REST APIs documentation](https://www.canva.dev/docs/apps/rest-apis/) to learn about additional capabilities. * Review the [Autofill guide](https://www.canva.dev/docs/apps/rest-apis/autofill-guide/) for detailed information on populating templates. * Check the [API reference](https://www.canva.dev/docs/apps/rest-apis/reference/authentication/generate-access-token/) for endpoint details. * Submit your app for review using the [Submission checklist](https://www.canva.dev/docs/apps/submission-checklist/).