Figma n8n integrationAutomate Figma with n8n.
Design files move all day, and nothing downstream hears about it. The Figma n8n integration is a trigger-only node: 5 events split across 2 families, delivered by webhook once the workflow is active. It suits design ops people who want handoff to run without a reminder.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Figma n8n integration actually give you?
The Figma Trigger (Beta) node starts an n8n workflow when something happens in a Figma team. It listens to 5 events grouped in 2 families, file and library, and it works by webhook: a URL that Figma calls the moment an event fires, so the workflow runs within seconds instead of waiting for a scheduled check.
Start with comment triage. Set the trigger on fileComment, and every comment left on a file in the team becomes an n8n execution. From there the item goes wherever the team already talks, most often Slack, with the values you need pulled from the payload through an expression such as {{ $json.field }}. Designers stop watching notifications, and nobody has to remember to forward anything.
Second, a version log that writes itself. fileVersionUpdate fires when someone creates a named version in the version history of a file, which is the closest thing Figma has to a release marker. Append one row per event to Google Sheets or to Airtable, and the design changelog stops being a monthly archaeology session.
Third, design system announcements. libraryPublish fires when a library file is published, so the workflow can send the news to engineering by Gmail the second a component ships. One event, one message, no side channel.
The trigger is the whole node here. Anything beyond the event catalog goes through HTTP Request, which calls any endpoint of the Figma API while reusing the same credential through predefined authentication. That is the normal pattern: Figma Trigger to start the workflow, HTTP Request for the rest, and the usual n8n nodes in between.
Two things shape how you scope it. The trigger watches one team, named by Team ID, so a company with several teams needs several workflows or several triggers. And fileUpdate is broader than it looks: it fires when a file saves or is deleted, a save being counted when someone closes a file within 30 seconds after making changes. If that firing rate is more than a Slack channel can take, filter right after the trigger. The n8n training walks through that filtering step with a real workflow.
How do you connect Figma to n8n?
- 01
Pick an authentication method
Figma credentials in n8n support two methods: Access token and OAuth2. Both need a Figma account with an admin or owner level. A credential is created once in the Credentials menu of n8n and reused in every workflow, so this step happens one time even if you later build a dozen Figma workflows.
- 02
Generate the token or register the app
For the simple route, generate a Personal Access Token in Figma and paste it into the credential. For OAuth2 on a self-hosted n8n, open the Figma developer apps page, select Create a new app, give it a name such as
n8n integration, copy the OAuth Redirect URL from n8n into Add a callback, then bring the Client ID and Client Secret back into n8n. - 03
Point the trigger at a team and activate
In the node, fill Team ID with the identifier of the Figma team to monitor, then choose the event under Trigger On. Activating the workflow is what registers the webhook on the Figma side, which means a workflow left inactive receives nothing. Save, activate, then act in Figma to see the first execution arrive.
What can the Figma Trigger listen to?
Figma Trigger (Beta) is the node that starts a workflow when something happens in Figma. It listens to 5 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Figma account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
file.*4library.*1Configuration notes
01Set Up The Figma Trigger
This node is the entry point of the workflow and the only Figma node involved. When the workflow is activated, n8n registers a webhook with Figma, meaning a URL that Figma calls each time a selected event happens, which is why execution starts within seconds and no polling interval exists to configure.
Key parameters
- Team ID: the Figma team the trigger monitors, required. It comes from the URL of the team page,
figma.com/files/team/{TEAM-ID}/, and it scopes every event the workflow will see. - Trigger On: the event the node listens to. The list holds 5 entries spread over 2 families, file and library.
02File Commented, Updated, Version Updated, Deleted
Four of the 5 events belong to the file family, and each answers a different question. fileComment fires when someone comments on a file. fileUpdate fires whenever a file saves or is deleted, a save being counted when a file is closed within 30 seconds after changes. fileVersionUpdate fires when a named version is created in the version history of a file. fileDelete fires when a file has been deleted, counted file by file, so removing a whole folder is not reported as one event per file inside it.
Key parameters
- Trigger On: one of the four file events per node. A workflow that needs two of them uses two Figma Trigger nodes.
- Team ID: keeps all four events scoped to a single team.
{{ $json.field }}.03Library Publish
libraryPublish is the library family on its own, and it fires whenever a library file is published. That publish is the moment a component or a style reaches everyone consuming the library, which makes it the cleanest signal that the design system changed. Nothing else in the event list carries that meaning.
Key parameters
- Trigger On: set to Library Publish for a workflow that only reacts to design system releases and ignores day to day file activity.
- Team ID: the published library has to belong to the team the trigger watches, otherwise nothing arrives.
{{ $json.field }}.Need help automating Figma with n8n?
A person reads every message.



