Skip to main content

Events

The following table lists all the events that can be sent via a webhook.

Event nameTrigger condition

PING

Debug event triggered whenever a webhook is created. Use this to verify that your endpoint was setup correctly.

event_typeString

The type of the event, as a string enum.

  • PING
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"event_type": "PING",
"passcode": "secretpasscode",
"timestamp": "2020-02-23T20:27:16Z",
"webhook_id": "22"
}

FILE_UPDATE

Triggers within 30 minutes of editing inactivity in a file.

event_typeString

The type of the event, as a string enum.

  • FILE_UPDATE
file_keyString
The key of the file that was updated.
file_nameString
The name of the file that was updated.
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"event_type": "FILE_UPDATE",
"file_key": "CL06nJNn5eZLQKDoARMND5",
"file_name": "Developer page mockup demo",
"passcode": "secretpasscode",
"timestamp": "2020-02-23T20:27:16Z",
"webhook_id": "22"
}

FILE_DELETE

Triggers whenever a file has been deleted. If you subscribe to FILE_UPDATE, you automatically get these notifications. Note that this does not trigger on all files within a folder, if the folder is deleted.

event_typeString

The type of the event, as a string enum.

  • FILE_DELETE
file_keyString
The key of the file that was deleted.
file_nameString
The name of the file that was deleted.
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
triggered_byUser
The user that deleted the file and triggered this event.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"event_type": "FILE_DELETE",
"file_key": "CL06nJNn5eZLQKDoARMND5",
"file_name": "Developer page mockup demo",
"passcode": "secretpasscode",
"timestamp": "2020-02-23T20:27:16Z",
"webhook_id": "22"
}

FILE_VERSION_UPDATE

Triggers whenever a user creates a named version in the version history of a file.

This is useful for workflow integrations. For example, suppose you have a Figma document with icon assets. When the design for an asset is updated and ready to publish, you can have a member of the team tag that version in the version history and then use this webhook event to generate and deploy your new asset version.

event_typeString

The type of the event, as a string enum.

  • FILE_VERSION_UPDATE
file_keyString
The key of the file that was updated.
file_nameString
The name of the file that was updated.
created_atString
UTC ISO 8601 timestamp of when the version was created.
version_idString
ID of the published version.
labelString
Label of the version in the version history.
descriptionString
Description of the version in the version history.
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
triggered_byUser
The user that deleted the file and triggered this event.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"created_at": "2020-02-23T20:27:16Z",
"event_type": "FILE_VERSION_UPDATE",
"file_key": "CL06nJNn5eZLQKDoARMND5",
"file_name": "Developer page mockup demo",
"version_id": "443",
"label": "Added new documentation!",
"description": "Wrote new documentation for webhooks v2",
"passcode": "secretpasscode",
"timestamp": "2020-02-23T20:27:16Z",
"triggered_by": {
"id": "813845097374535682",
"handle": "Dylan Field"
},
"webhook_id": "22"
}

LIBRARY_PUBLISH

Triggers whenever a library file is published.

This is useful for workflow integrations. This webhook could integrate with Slack, Asana or Jira, notifying designers to modify their assets when new components are published.

Note: depending on the type and number of assets that were published, a single publication may be delivered via multiple, separate LIBRARY_PUBLISH webhook events. There will be a separate LIBRARY_PUBLISH event for each type of published library asset (components, styles, and/or variables). Additionally, publications with a large number of assets (typically hundreds) will also be split into multiple separate events.

event_typeString

The type of the event, as a string enum.

  • LIBRARY_PUBLISH
file_keyString
The key of the file that was published.
file_nameString
The name of the file that was published.
descriptionString
Description of the library publish.
created_componentsLibraryItemData[]
Components that were created by the library publish.
created_stylesLibraryItemData[]
Styles that were created by the library publish.
created_variablesLibraryItemData[]
Variables that were created by the library publish.
modified_componentsLibraryItemData[]
Components that were modified by the library publish.
modified_stylesLibraryItemData[]
Styles that were modified by the library publish.
modified_variablesLibraryItemData[]
Variables that were modified by the library publish.
deleted_componentsLibraryItemData[]
Components that were deleted by the library publish.
deleted_stylesLibraryItemData[]
Styles that were deleted by the library publish.
deleted_variablesLibraryItemData[]
Variables that were deleted by the library publish.
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
triggered_byUser
The user that published the file and triggered this event.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"event_type": "LIBRARY_PUBLISH",
"file_key": "zH44k2FUM629Fa4EMShiHL",
"file_name": "Mockup library",
"description": "Adjusted colors to match guidelines",
"created_components": [
{
"key": "ed26a50a541c7e6828420a68707eb49812bda2d3",
"name": "Simple button"
}
],
"created_styles": [
{
"key": "a68707eb49ed26828420812bda2d36a50a541c7e",
"name": "Coral green"
}
],
"modified_components": [
{
"key": "eacab7bc887f50d99d73ef0eaf6716d5dae0855f",
"name": "Date picker"
}
],
"modified_styles": [
{
"key": "50d99d73ef0ab7bc887f716d5dae0855feaf6eac",
"name": "Background fill"
}
],
"deleted_components": [
{
"key": "0a575f0b60f7238d9f7da3e8d57b99ab4451f28f",
"name": "Slider"
}
],
"deleted_styles": [
{
"key": "0b60f0a577b99ab4451f25f7238d9f7da3e8d58d",
"name": "Header text"
}
],
"passcode": "secretpassword",
"timestamp": "2020-02-23T20:27:16Z",
"triggered_by": {
"id": "813845097374535682",
"handle": "Dylan Field"
},
"webhook_id": "22"
}

FILE_COMMENT

Triggers whenever a user comments on a file.

This webhook could integrate with Asana or Jira and automatically create tasks whenever a user comments. It could also integrate with Slack and notify mentioned users.

The contents of a comment is returned in an array of CommentFragment. A CommentFragment either contains a text or mention field. A text field contains raw comment text with formatting derivatives, newlines will be encoded as \n, etc.

Text fields can also contain emojis, which are always encoded as a separate fragment and are surrounded by two : characters. Mention fields occur if a user types @OtherUser in their comment. A mention contains the user id of the mentioned user. All mentioned users are added to the mentioned array field, where additional user information is included.

event_typeString

The type of the event, as a string enum.

  • FILE_COMMENT
file_keyString
The key of the file that was updated.
file_nameString
The name of the file that was updated.
commentCommentFragment[]
Contents of the comment itself.
comment_idNumber
Unique identifier for comment.
mentionsUser[]
Users that were mentioned in the comment.
order_idNumber
Only set for top level comments. The number displayed with the comment in the UI.
parent_idNumber
If present, the id of the comment to which this is the reply.
created_atString
The UTC ISO 8601 time at which the comment was left.
resolved_atString
If set, the UTC ISO 8601 time the comment was resolved.
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
triggered_byUser
The user that made the comment and triggered this event.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"event_type": "FILE_COMMENT",
"file_key": "zH44k2FUM629Fa4EMShiHL",
"file_name": "Mockup library",
"comment": [
{
"text": "TODO: \n"
},
{
"mention": "811724164054158337"
},
{
"text": "Change selection colors"
},
],
"comment_id": "32",
"mentions": [
{
"id": "811724164054158337",
"handle": "Evan Wallace"
}
],
"order_id": "23 ",
"parent_id": "",
"created_at": "2020-02-23T20:27:16Z",
"resolved_at": "",
"passcode": "secretpasscode",
"timestamp": "2020-02-23T20:27:16Z",
"triggered_by": {
"id": "813845097374535682",
"handle": "Dylan Field"
},
"webhook_id": "22"
}

DEV_MODE_STATUS_UPDATE

Triggers whenever the Dev Mode status changes for a layer in a file.

This can be useful if, for example, you want to create an integration that tracks the status of designs that are being worked on in your organization.

The event includes the Dev Mode status, the file_key and node_id of the layer where the status changed, and the user that made the change. It also includes any related links (Dev resources) that are applied to the layer in the file.

event_typeString

The type of the event, as a string enum.

  • DEV_MODE_STATUS_UPDATE
file_keyString
The key of the file where the change occurred.
node_idString
The id of the node where the Dev Mode status changed. For example, 43:2.
statusString

The new Dev Mode status, as a string enum.

  • NONE
  • READY_FOR_DEV
  • COMPLETED
change_messageString
If one was provided when the status was updated, a message describing the change.
related_linksDevResource[]
An array of related links that have been applied to the layer in the file.
passcodeString
The passcode specified when the webhook was created, should match what was initially provided.
timestampString
UTC ISO 8601 timestamp of when the event was triggered.
triggered_byUser
The user that made the change and triggered this event.
webhook_idNumber
The id of the webhook that caused the callback.

Example:

  {
"event_type": "DEV_MODE_STATUS_UPDATE",
"file_key": "ABzTs1A2aFSy960zBI3nMM",
"node_id": "43:2",
"status": "READY_FOR_DEV",
"change_message": "New rectangle",
"related_links": [
{
"id": 1118075899259441212,
"name": "Issue BB-8",
"url": "https://example.atlassian.net/jira/core/projects/BB/board?groupBy=status&selectedIssue=BB-8",
"node_id": "43:2",
"file_key": "ABzTs1A2aFSy960zBI3nMM"
}
],
"passcode": "secretpasscode",
"timestamp": "2025-05-14T23:28:40Z",
"triggered_by": {
"id": "813845097374535682",
"handle": "Dylan Field"
},
"webhook_id": "434"
}