Turn Figma design comments into Linear tickets
Every new comment on your Figma files becomes a triaged Linear issue with the thread, a screenshot, and a link back to the frame.
When a new comment is posted on one of our Figma design files (webhook trigger: FILE_COMMENT), automatically turn it into a Linear ticket. The webhook payload gives us the comment id, file_key, mentions, and the pinned node id.
Before doing anything else, decide whether this comment should produce a ticket. Call Figma Get Comments to pull the full thread for the file. If this comment is a reply inside a thread that already has a Linear ticket linked to it, skip and stop. Detect that link by (a) checking Figma dev resources already attached to the pinned frame for a Linear URL, and (b) scanning the earlier comments in the thread for a Linear issue link. This is the deduplication rule that keeps a single thread from spawning multiple tickets.
Otherwise, gather context. Call Figma Get File Metadata to get the file's human name, creator, and last modified time. Read the pinned node id from the comment's client_meta.node_id. Important: Figma URL node ids use hyphens (for example 1-2), but the API expects colons (1:2). Convert before calling Figma Get File Nodes with that node id to fetch the frame the comment is pinned to.
Call Figma Render Images of File Nodes on that same node id, format PNG, to produce a screenshot of the frame. Because Figma render URLs expire after 30 days, download the PNG bytes and upload them as a persistent attachment on the Linear issue rather than only linking to the temporary Figma URL.
Read the comment text plus the surrounding thread and classify the comment as one of: bug, change request, or question. Use simple signals (words like crash, broken, doesn't work → bug; words like change, please move, update copy → change request; a question mark or how/why phrasing → question).
Pick the right Linear team. Call Linear List Teams to enumerate options, then choose one by matching keywords in the comment (engineering-flavored words go to the engineering team, copy or content words go to marketing, and so on) or by mapping the Figma file's project (from Get File Metadata) to a team. Fall back to a default team if nothing matches.
Call Linear Create Issue in the chosen team. Title = a short summary of the comment (max ~80 chars). Description (Markdown) should include: the full comment text, quoted thread context, the classification, the author's name and handle, the file name, and the direct Figma deep-link to the exact comment. Build the deep-link as https://www.figma.com/file/{file_key}/{url-safe-file-name}?node-id={hyphen-form-node-id}#{comment-id}. Attach the downloaded PNG screenshot to the issue so it renders inline.
After the issue is created, call Linear Add Link to Issue with the Figma deep-link and a title like 'Figma comment' so the Figma URL appears as a linked resource on the ticket.
Finally, call Figma Create Dev Resources on the pinned frame (max 10 per node) with the new Linear issue URL and a name like 'Linear: {issue identifier}'. This makes the ticket visible in Figma's Inspect panel next to the design, so designers see the tracked ticket inline without leaving Figma.
Nuances to bake in: only run on Figma Design files (FigJam and Slides return 400 on these endpoints); handle 429 rate limits with backoff on the render call (Render Images is one of the most expensive Figma endpoints); if the comment has no client_meta.node_id (a file-level comment, not pinned), skip the frame screenshot and dev-resource steps but still create the Linear issue with the deep-link.
Additional information
What does this prompt do?
- Watches your Figma files for new comments and reads the whole thread for context before doing anything.
- Classifies each comment as a bug, change request, or question and routes it to the right Linear team.
- Creates a Linear issue with the comment text, the author's name, a screenshot of the frame, and a direct link back to Figma.
- Pins the new Linear ticket back onto the frame in Figma so designers see the issue inline in the Inspect panel.
What do I need to use this?
- A Figma account with permission to add webhooks and read your design files.
- A Linear workspace where you can create issues and add attachments.
- A rough idea of how you want comments routed to Linear teams (by keyword or by Figma project).
How can I customize it?
- Pick which Figma files or projects the workflow watches.
- Adjust the keywords that route comments to specific Linear teams (for example 'crash' or 'broken' to the engineering team).
- Change the default priority, label, or state applied to new tickets.
Frequently asked questions
Will a reply on an existing comment thread create a duplicate ticket?
What happens when the Figma screenshot link expires?
How does the workflow decide which Linear team a ticket goes to?
Will this work on FigJam boards or Figma Slides?
Will designers actually see the Linear ticket inside Figma?
Related templates
Stop copying design feedback into Linear by hand.
Let every new Figma comment become a triaged Linear ticket with the thread, a screenshot, and a link back to the frame ready for your team.