Turn Typeform bug reports into clean Linear issues, with duplicate detection
Every Typeform bug report becomes a well-structured Linear ticket, or a comment on the existing one, and your team gets a heads-up in Slack.
Build me an agent workflow that turns customer bug reports submitted through a Typeform form into engineering-ready Linear issues, with duplicate detection.
Trigger: a Typeform webhook fires when a new submission lands on my bug report form. Pass the full form_response payload (all answers plus any uploaded screenshots) into the agent as input.
On each submission, the agent should:
1. Normalize the raw submission. Read the answers and any attached screenshots, extract the affected feature or product area, and infer a severity level from the wording and visuals. Use these severities: P0 critical (data loss, outage, payment broken, security), P1 high (core flow broken for many users), P2 medium (workaround exists), P3 low (cosmetic or minor). Restructure the free-text description into four sections: Steps to Reproduce, Expected, Actual, and Environment (browser, OS, app version, account or workspace id if present).
2. Look for duplicates in Linear before filing anything. Call Linear's Search Issues with the extracted feature name plus the most distinctive key terms from the report. Only consider non-archived, open issues. Decide whether any match is the same underlying defect by comparing symptom, feature, and reproduction shape; do not match purely on shared keywords. If you are uncertain, treat it as new.
3a. If there is a strong duplicate, call Linear's Add Comment to Issue on that existing issue. The comment should include the new steps to reproduce, any new environment info, the reporter's name and email from the Typeform answers, and a short note that this is an additional report. Do not change the existing issue's priority or state.
3b. If it is genuinely new, call Linear's Create Issue in the team that owns the affected feature. Use a concise title that names the feature and the symptom. Put the structured Steps to Reproduce / Expected / Actual / Environment in the description in markdown. Map severity to Linear priority (P0->1 Urgent, P1->2 High, P2->3 Normal, P3->4 Low). Add labels like 'bug' and the feature area. Include the reporter's contact info at the bottom of the description.
4. After Linear is updated, call Slack Bot's Send a Message to post to #bugs. Include: the Linear issue title and link, the severity, the affected feature, the reporter's name, and a clear note saying whether this was created as a new issue or merged into an existing one (link the existing issue when merged).
Configuration the agent should accept up front: the Typeform form id, a mapping from feature area to Linear team, the default Linear team for unmatched reports, the Slack channel (default #bugs), and the severity-to-priority mapping if I want to override the defaults.
Be conservative on the duplicate check: when in doubt, file a new issue rather than merging into the wrong one.
What does this prompt do?
- Listens for new submissions on your Typeform bug report form and parses the raw answers into a clean issue.
- Rewrites the report into the structure engineers expect: Steps to Reproduce, Expected, Actual, and Environment, with severity inferred from the wording.
- Checks Linear for likely duplicates before filing anything, so the same defect does not stack up under three different titles.
- Either creates a new Linear issue in the right team with priority and labels, or adds the new repro and reporter info as a comment on the existing one.
- Posts a short summary to your bug channel in Slack with the Linear link, severity, and whether it was a new ticket or a merge.
What do I need to use this?
- A Typeform account with a bug report form you can point a webhook at.
- A Linear workspace with the team or teams you want bugs filed in.
- A Slack workspace with a channel for bug notifications, like #bugs.
How can I customize it?
- Change which Linear team gets the issue, or branch by product area so frontend, backend, and mobile bugs go to different teams.
- Adjust how severity is inferred from the report, or map the severity levels to your own priority and label scheme.
- Pick a different Slack channel, change the summary format, or only ping Slack for high severity reports.
FAQs
How does it decide whether a report is a duplicate?
What happens when it finds a duplicate?
How is severity decided?
Do reporters need a Linear account?
Can it route to different Linear teams?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
A board that ranks the people who opened three or more separate support conversations this month, reads their threads, and files the real fix.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.
See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.
Stop hand-translating bug reports into Linear tickets.
Connect Typeform, Linear, and Slack once, and every new bug report shows up structured, deduplicated, and announced.