Webhooks

Receive real-time notification data for your users.

Webhooks allow Canva to send real-time information to your integration, without polling or manual intervention. Your integration will receive webhooks for events relevant to the authenticated user. Here's how a webhook typically works:

  1. An event occurs in Canva. For example, John has commented on Jane's design.
  2. Canva sends the event information to your integration as a notification.
  3. Your integration receives the notification, processes the data, and performs further actions based on the information about the event. For example, sending an auto-reply to John's comment.

A notification is generated once an event occurs in Canva. The Notification object consists of the required information about the event that has occurred.

The resource schema for the Notification object is:

#idstring

The unique identifier for the notification.

#created_atinteger

When the notification was created, as a UNIX timestamp (in seconds since the UNIX epoch).

#contentNotificationContent

The notification content object, which contains metadata about the event.

Properties of content
#typestring

This can be one of the following:

  • share_design: The notification content for when someone shares a design.
  • share_folder: The notification content for when someone shares a folder.
  • comment: The notification content for when someone comments on a design.
  • design_access_requested: The notification content for when someone requests access to a design.
  • design_approval_requested: The notification content for when someone requests a user to approve a design.
  • design_approval_response: The notification content for when someone approves a design or gives feeback.
  • design_mention: The notification content for when someone mentions a user in a design.
  • team_invite: The notification content for when someone is invited to a Canva team.
  • folder_access_requested: The notification content for when someone requests access to a folder.
#triggering_userUser

Metadata for the user, consisting of the User ID and display name.

Properties of triggering_user
#idstring

The ID of the user.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#receiving_team_userTeamUser
Conditional

Metadata for the user, consisting of the User ID, Team ID, and display name.

Properties of receiving_team_user
#user_idstring
Optional

The ID of the user.

#team_idstring
Optional

The ID of the user's Canva Team.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#designDesignSummary
Conditional

Basic details about the design, such as the design's ID, title, and URL.

Properties of design
#idstring
Optional

The design ID.

#titlestring
Optional

The design title.

#urlstring
Optional

URL of the design.

#thumbnailThumbnail
Optional

A thumbnail image representing the object.

Properties of thumbnail
#widthinteger

The width of the thumbnail image in pixels.

#heightinteger

The height of the thumbnail image in pixels.

#urlstring

A URL for retrieving the thumbnail image. This URL expires after 15 minutes. This URL includes a query string that's required for retrieving the thumbnail.

#folderFolderSummary
Conditional

This object contains some folder metadata. You can retrieve additional metadata using the folder ID and the /v1/folders/{folderId} endpoint.

Properties of folder
#idstring
Optional

The folder ID.

#titlestring
Optional

The folder name, as shown in the Canva UI.

#urlstring
Optional

The folder URL.

#commentCommentEvent
Conditional

Basic details about the comment.

Properties of comment
#typestring

The type of comment event. This can be one of the following:

  • COMMENT
  • REPLY
  • MENTION
  • ASSIGN
  • RESOLVE
#dataComment

The comment object, which contains metadata about the comment.

Properties of data
#typestring

This can be one of the following:

  • PARENT: The type of comment. When creating a new parent (top-level) comment, the type is PARENT.
  • REPLY: The type of comment. When creating a reply to a top-level comment, the type is REPLY.
#idstring

The ID of the comment.

You can use this ID as the path parameter commentId to create replies to this comment using the /v1/comments/{threadId}/replies endpoint.

#messagestring

The comment message. This is the comment body shown in the Canva UI. User mentions are shown here in the format [user_id:team_id].

#authorUser

Metadata for the user, consisting of the User ID and display name.

Properties of author
#idstring

The ID of the user.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#mentionsobject

The Canva users mentioned in the comment.

Properties of mentions
#<KEY>object of TeamUsers

Metadata for the user, consisting of the User ID, Team ID, and display name.

{
"oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP": {
"user_id": "oUnPjZ2k2yuhftbWF7873o",
"team_id": "oBpVhLW22VrqtwKgaayRbP",
"display_name": "John Doe"
}
}
json
#user_idstring
Optional

The ID of the user.

#team_idstring
Optional

The ID of the user's Canva Team.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#thread_idstring
Conditional

The ID of the comment thread this reply is in. This ID is the same as the id of the parent comment.

#attached_toCommentObject
Optional

Identifying information about the object (such as a design) that the comment is attached to.

Properties of attached_to
#typestring

This can be one of the following:

  • DESIGN: If the comment is attached to a Canva Design.
#design_idstring

The ID of the design this comment is attached to.

#created_atinteger
Optional

When the comment or reply was created, as a Unix timestamp (in seconds since the Unix Epoch).

#updated_atinteger
Optional

When the comment or reply was last updated, as a Unix timestamp (in seconds since the Unix Epoch).

#assigneeUser
Optional

Metadata for the user, consisting of the User ID and display name.

Properties of assignee
#idstring

The ID of the user.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#resolverUser
Optional

Metadata for the user, consisting of the User ID and display name.

Properties of resolver
#idstring

The ID of the user.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#requested_groupsGroup[]
Conditional

Metadata for the Canva Group, consisting of the Group ID, display name, and whether it's an external Canva Group.

Properties of requested_groups
#idstring

The ID of the group with permissions to access the design.

#externalboolean

Is the user making the API call (the authenticated user) and the Canva Group from different Canva Teams?

  • When true, the user and the group aren't in the same Canva Team.
  • When false, the user and the group are in the same Canva Team.
#display_namestring
Optional

The display name of the group.

#approval_requestApprovalRequestAction
Conditional

Metadata about the design approval request.

Properties of approval_request
#messagestring

The message included by the user when requesting a design approval.

#responding_groupsGroup[]
Conditional

Metadata for the Canva Group, consisting of the Group ID, display name, and whether it's an external Canva Group.

Properties of responding_groups
#idstring

The ID of the group with permissions to access the design.

#externalboolean

Is the user making the API call (the authenticated user) and the Canva Group from different Canva Teams?

  • When true, the user and the group aren't in the same Canva Team.
  • When false, the user and the group are in the same Canva Team.
#display_namestring
Optional

The display name of the group.

#approval_responseApprovalResponseAction
Conditional

Metadata about the design approval response.

Properties of approval_response
#approvedboolean

Whether the design was approved. When true, the reviewer has approved the design.

#messagestring
Optional

The message included by a user responding to a design approval request.

#receiving_userUser
Conditional

Metadata for the user, consisting of the User ID and display name.

Properties of receiving_user
#idstring

The ID of the user.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

#inviting_teamTeam
Conditional

Metadata for the Canva Team, consisting of the Team ID, display name, and whether it's an external Canva Team.

Properties of inviting_team
#idstring

The ID of the Canva Team.

#display_namestring

The name of the Canva Team as shown in the Canva UI.

#externalboolean

Is the user making the API call (the authenticated user) from the Canva Team shown?

  • When true, the user isn't in the Canva Team shown.
  • When false, the user is in the Canva Team shown.
#shareShareAction
Optional

Metadata about the share event.

Properties of share
#messagestring

The optional message users can include when sharing something with another user using the Canva UI.

#requesting_userUser
Optional

Metadata for the user, consisting of the User ID and display name.

Properties of requesting_user
#idstring

The ID of the user.

#display_namestring
Optional

The name of the user as shown in the Canva UI.

{
"id": "eb595730",
"created_at": 1377396000,
"content": {
"type": "share_design",
"triggering_user": {
"id": "uKakKUfI03Fg8k2gZ6OkT",
"display_name": "John Doe"
},
"receiving_team_user": {
"user_id": "auDAbliZ2rQNNOsUl5OLu",
"team_id": "Oi2RJILTrKk0KRhRUZozX",
"display_name": "Jane Doe"
},
"design": {
"id": "DAFVztcvd9z",
"title": "My summer holiday",
"url": "https://www.canva.com/design/DAFVztcvd9z/edit",
"thumbnail": {
"width": 595,
"height": 335,
"url": "https://document-export.canva.com/Vczz9/zF9vzVtdADc/2/thumbnail/0001.png?<query-string>"
}
},
"share": {
"message": "Check this out!"
}
}
}
json

The NotificationContent depends on the type of notification. For: