🌞 Solstice of Surprises: Data Connectors are now in GA!

As part of our Solstice of Surprises launches, we’re excited to announce that the Data Connector Intent is now Generally Available for all developers building with the Apps SDK.

What it does:
Data Connectors are the easiest, most future-proof way to feed external data into Canva enabled by Apps SDK Intents. Whether you’re pulling proprietary data from your own backend, integrating with a well-known SaaS API, or sharing a cool public dataset, Data Connectors let your users drop that data (think tables of images, numbers, text and more!) straight into Canva’s Charts, Sheets, and Bulk Create features.

With today’s capabilities, this enables two key use cases:

  1. Data Storytelling: creating dynamic charts and presentations with data from external sources
  2. Personalized, On-Brand Content at Scale: bulk generating designs from your data

No more copy-paste, CSV downloads/uploads, or manual transcription - just one-click refresh to keep content current.

Why it matters:
This unlocks powerful data-driven design workflows for your users. Whether you’re building an e-commerce app that needs up-to-date product data to bulk create designs from marketing templates, or enabling enterprise teams to create monthly reports with live data, Data Connectors streamline these workflows, saves time, and prevents embarrassing copy-paste errors for your users.

  • Ready for tomorrow - once you build your connector, it automatically surfaces across all compatible Canva experiences without any additional work from your end. As data-powered features are added, your connector will pack in even more value for end users!
  • Open or secure - support anything from public datasets to OAuth-protected, enterprise data sources. Data Connectors can be private to your team or be visible to Canva’s 220M+ users via the apps marketplace.

:wrench: How to Use It
Install the latest version of the Apps SDK:

npm install @canva/intents

Enable the intent and enable required permissions in the Developer Portal, then register the Data Connector Intent in your app:

import { prepareDataConnector } from "@canva/intents/data";
// Register the data connector when your app loads
prepareDataConnector({
  getDataTable: async (request) => {
    // Return the data table based on the data source reference
    return {
      status: "completed",
      dataTable: {
        rows: [],
      },
    };
  },
  renderSelectionUi: (request) => {
    // Render your selection UI here
    console.log("Rendering selection UI");
  },
});

You can create a custom data selection UI for your app, enabling streamlined workflows for your users, create and store data source references to enable 1-click refresh, and actually fetch the data from your platform. Check out the Data Connector developer guide for all the details. If you prefer to vibe code your apps, remember, all our documentation can be connected to your favorite vibe coding tool via MCP!

Docs & details:

We look forward to seeing what you build with Data Connectors, and feel free to reply or start a new thread if you have any feature requests or feedback! We’d love to learn how we could make the platform even more valuable for your use case in the future :purple_heart:

Happy Solstice! :sun_with_face:

5 Likes