Triage GitHub issues into Linear tickets automatically

When a new GitHub issue is opened, an agent decides if it's a real bug, picks the right Linear team, and files a clean ticket with a back-link.

Agentic Task
GitHubLinearEngineeringProductFeedback TriageData SyncNotifications & Alerts
PromptCreate

Build me an agent workflow that triages new GitHub issues into Linear tickets so my engineers only see real bugs in the tool they actually plan work in.

Trigger: a GitHub webhook on the 'issues' event, scoped to action = opened, on the public-facing repo I'll connect. The trigger payload gives the agent the repo owner, repo name, and issue number.

When the trigger fires, the agent should:

1. Call GitHub Get an Issue with the owner, repo, and issue number from the webhook to load the full title, body, labels, and author.

2. Decide whether the issue is a genuine bug. Treat questions, discussions, support requests, and feature requests as out of scope and stop. A genuine bug has reproducible behavior that contradicts documented or expected behavior of shipped features. If unsure, err on the side of skipping.

3. For genuine bugs, classify severity into one of: Urgent (crashes, data loss, security, production outage), High (broken core feature with no workaround), Medium (broken non-core feature or has a workaround), Low (cosmetic, minor).

4. Identify the likely product area from the issue body (for example: web app, API, billing, auth, mobile).

5. Call Linear List Teams to get the workspace teams. Pick the team whose name or key best matches the product area. If nothing matches confidently, default to the team I'll specify when I configure this.

6. Call Linear Create Issue on that team with: a clean, action-oriented title rewritten from the GitHub title; a description that contains a short summary, the extracted repro steps, expected vs. actual behavior, environment details if present, and a back-link to the original GitHub issue URL; a Linear priority that maps from the severity above (Urgent = 1, High = 2, Medium = 3, Low = 4).

7. Call GitHub Create an Issue Comment on the original issue with a short message thanking the reporter and linking to the new Linear ticket URL so they can follow along.

8. Call GitHub Add Labels to an Issue to add a 'triaged' label (I'll create this label in the repo first) so my team can filter triaged vs. untriaged issues in the GitHub UI.

Integrations: GitHub and Linear. Both should be OAuth-connected to my account before this runs.

Edge cases to handle: if the issue body is empty or just a screenshot, skip rather than guess. If Linear List Teams returns no match, fall back to the default team. If any step fails, stop without partial state (don't add the triaged label if the Linear ticket wasn't created).

Additional information

What does this prompt do?
  • Listens for new issues opened on a public GitHub repo via webhook and reads the full issue body.
  • Classifies each issue as bug, feature request, question, or discussion, and ignores anything that isn't a genuine bug.
  • For real bugs, picks the matching Linear team, sets a severity priority, and creates a Linear ticket with extracted repro steps and a link back to GitHub.
  • Comments on the original GitHub issue with the Linear ticket link and applies a triaged label so reporters know it's been routed.
What do I need to use this?
  • A connected GitHub account with admin or maintainer access to the repo so the agent can read issues, post comments, and add labels.
  • A connected Linear account with permission to list teams and create issues in the relevant projects.
  • A 'triaged' (or similar) label already created in the GitHub repo so the agent has something to apply.
  • A short policy in your own words for what counts as a real bug vs. a question or feature request.
How can I customize it?
  • Tighten or loosen the bug definition. Some teams want anything reproducible filed; others only want regressions in shipped features.
  • Change the team-routing rule. Route by repo name, by labels on the GitHub issue, or by keywords in the body.
  • Adjust severity mapping. Map words like 'crash', 'data loss', or 'security' to Linear priority Urgent and everything else to Medium.

Frequently asked questions

What happens to feature requests and questions?
The agent leaves them alone. No Linear ticket is created and no triaged label is applied, so your team can handle them in GitHub or close them out manually.
How does the agent pick the right Linear team?
It calls Linear List Teams, then matches against rules you describe in plain English, like 'route anything mentioning billing to the Payments team' or 'default to the Core team if nothing matches'.
Will it create duplicate Linear tickets if an issue is edited or reopened?
The trigger fires only on issue opened, not on edits or reopens, so each GitHub issue produces at most one Linear ticket from this workflow.
Does this work on private repos too?
Yes. As long as your connected GitHub account has access to the repo and you point the webhook at it, the agent will triage issues from any repo you own.
What if our team uses Jira instead of Linear?
Swap Linear for Jira in the prompt before clicking Use this prompt. The same triage logic applies; only the ticket-creation step changes.

Related templates

Did the last Heroku deploy cause this Sentry error?

When a new Sentry error appears, we check your latest Heroku deploy, alert your team in Slack with the likely cause, and open a GitHub triage ticket.

Heroku
Sentry
Slack Bot
+1
Agentic Task
Turn Heroku deploys into a readable Slack changelog

Every time you ship to Heroku, we post a clear summary to Slack listing what changed, who deployed it, and whether it was a rollback.

Heroku
GitHub
Slack
Agentic Task
Daily backup compliance check for ClickHouse Cloud

Every morning, check each ClickHouse service against its own backup schedule, get a Slack summary, and a Linear ticket for anything stale or failed.

ClickHouse Cloud
Slack Bot
Linear
Agentic Task
Turn HappyFox support tickets into Linear bug reports

Every hour we scan new HappyFox tickets, spot the real software bugs, and file clean, deduplicated Linear issues so support and engineering stay in sync.

HappyFox
Linear
Agentic Task
Escalate Gorgias product bugs to Linear for engineering

Every two hours we scan your recent Gorgias tickets, spot the genuine product bugs, and file clean, deduplicated bug reports in Linear for engineering.

Gorgias
Linear
Agentic Task
Spin up a Fly.io preview environment for every pull request

The moment a pull request opens, we launch a live preview of that branch on Fly.io and post the link right on the PR and in your team's Slack channel.

Fly.io
GitHub
Slack Bot
Agentic Task

Stop hand-copying GitHub issues into Linear.

Connect GitHub and Linear once, and Geni triages every new issue the moment it's opened.