🎁 Unwrapping the Second of Our Festive Releases: `@canva/platform` SDK to open external links!

We’ve heard from many of you that although users can complete the majority of their workflows within the Canva app, there are times when you need to link them somewhere else, and we know that any workarounds were leading to a subpar user experience.

So, continuing with our Christmas releases, we’re super excited to finally announce that we’re relaxing some of the restrictions around external links from within Canva apps to enable a much better user experience.

For something as fundamental to the web as hyperlinks, there were many security, legal, & compatibility considerations we had to overcome to enable this.

@canva/platform SDK

This functionality is available via the brand new @canva/platform SDK, which currently contains two methods:

Don’t forget to make sure you’re on the latest version of the starter kit to access this SDK.

Link types

There are 2 types of external links that you can take advantage of, each with its own set of guidelines.

:link: External links

These are used when linking the user to your app or website to continue their design workflow. The behaviour of these links is consistent on all platforms the user is accessing your Canva app on.

An example of such a link is a QR Code app linking to a fully-fledged analytics dashboard.

:bookmark: Guidelines

:moneybag: Payment links

These are used when a user is clicking the link to purchase/upgrade/manage subscriptions. They should only be displayed when getPlatformInfo().canAcceptPayments boolean property is true.

import { getPlatformInfo } from “@canva/platform”;

const info = getPlatformInfo();
if (info.canAcceptPayments) {
  // Display payment links and upgrade flows
} else {
  // Hide payment links and upgrade flows
  // Show an appropriate message
}

:bookmark: Guidelines

We hope that this makes for a more seamless experience between your Canva app and services outside Canva.

Stay tuned for tomorrow’s unwrapping for a supplementary UI Kit component and more gifts :eyes:

11 Likes

Christmas arrived early. Thanks Anto and the amazing Canva team :smiley:

6 Likes

Awesome! I was thinking only one gift per day, but now two! THANKS!

5 Likes

Thanks @Anto. This is great news!

Is there any plan to let Canva manage the billing/charges for the apps? It was earlier proposed by someone in the forum as well. That would be a lot better rather than individual apps taking their own payments.

Imagine a user with 5 active apps, will be managing 5 different subscriptions. This means 5 different portals & 5 different logins. But, if Canva manages the billing, it’ll all be managed as a single charge & user can manage everything within Canva.

2 Likes

Hello @Anto, I have a feedback. When the link is launched, it shows the actual link with https… & everything.
Link_Canva_2

This can be discomforting/scary for the users since link can contain params & other values that is useful for technical integration, but doesn’t make sense to a non-technical user. In next iteration, can you introduce a field for ‘Title’ so that user is displayed the title (of link/destination page), rather than the actual link?

Hi @coral!

Thanks for the feedback and feature suggestions.

Regarding the Canva-managed billing system, that is something that’s actively being discussed and brainstormed by the team. This feature is the first step towards that and is aimed to allow developers to plug in their subscription services, and from here we’ll constantly be iterating and improving the experience both for our developers and users. Due to the complex nature of this, I cannot provide any timelines at this stage, unfortunately.

As to the full URL being shown in the dialog, that was a conscious and deliberate decision to be completely transparent about the external link, and let users know exactly what they’re clicking on. As we get more data about the types of links being opened and user feedback, we will revisit this decision and iterate over it if needed. The Title based approach can be misused if developers provide misleading/incomplete titles, so the link URL should always be shown to the user before navigation.

1 Like

Thanks, that makes sense. Agree, it is better to be transparent to the users.

1 Like

The new @canva/platform SDK lets you easily open external links, making integrations smoother! We’ve used tools like this in my SEO agency to enhance client websites seamlessly.

1 Like