Skip to main content

Evening,

I've been at this for hours with no success, so thought I'd try my luck here! 

Essentially, I'd like to automate some simple social media posts. 

I want to pull text from Google Sheets on to a company branded Canva Template and via Zapier change the text (but keep the text placement and style the same for each post) within the Canva template. 

However, it appears that Zapier does not like Canva's native design file as it can't seem to find/import the design unless it's been uploaded to Canva as PNG etc. 

However, that means I can't automate the dynamic text change.

Is this possible or am I just being dull? 

Much Thanks 👍 

Hi there ​@Trashbat90,

Welcome to the Community! 🎉

Before we dig deeper into this, would you mind sharing a detailed screenshot of how your Zap is configured? Also, please share a screenshot of the “CONFIGURE” section of the Canva step that shows all of its fields.

Please don't include personal information in the screenshot, or be sure blur out any personal information.

Thanks!


@Trashbat90 

What you are looking for is the Canva Autofills API request to a to fill an enable brand template. This is very easy to setup with some of API requests steps to Canva. 

Follow this excellent documentation from Canva on how to generate dynamic designs using brand templates and the autofill APIs. https://www.canva.dev/docs/connect/autofill-guide/

 

Here is a quick example I knocked up using the guide and the template file they provide. This is the default template provided in the documentation. I have left their default text there too.


The field names are important to remember here they are: discount, image, name, price. You must also get the template ID from the share link url. 

After publishing the template you need to setup the Zap with your trigger then add the first API request to send the autofill to Canva. See below:
 


You need to include the JSON for the variable data to be autofilled. I have just typed the values you can add your data from google sheets.
 

 
The brand template ID is the ID you grabbed from the share link url. Mine is obscured but you need it. You could even put the template IDs into the Google Sheet to make the zap truly dynamic by choosing the template base on business logic which seem very shiny to me.

The next step is to then get the responding autofilled template back. Which requires a new GET request from the API. Using the Job ID passed back from your post request you can set the request as below.

 


Once you have this now you have to make the export request using the returned design ID

​​​​
Then the add the get design export job in Canva using the Job ID just returned.
 

This then provides the export url to send the file where it needs to go.
​​​​​​​


These urls do expire so watch how long you wait before using them.

Here is our autofilled design exported from Canva.
 



I hope this is helpful do let me know how you get on.​​​​


Reply