Skip to main content

Triage GitHub issues with OpenAI categorization and embedding-based duplicate detection

Workflow preview

Workflow preview
100%
Triage GitHub issues with OpenAI categorization and embedding-based duplicate detection preview
Open on n8n.io

1. Workflow Overview

Who's it for Open source maintainers, product teams with public repositories, and any organization receiving a steady stream of GitHub Issues. Ideal for small teams who waste hours per week triagin...

Best for

  • Ticket Management automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.set, n8n-nodes-base.if, n8n-nodes-base.github, n8n-nodes-base.code, n8n-nodes-base.httprequest, @n8n/n8n-nodes-langchain.openai, n8n-nodes-base.switch

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Ayaka Sato.

Original n8n.io source

1.1 Workflow description

Title
Triage GitHub issues with OpenAI categorization and embedding-based duplicate detection
Workflow name
Triage GitHub issues with OpenAI categorization and embedding-based duplicate detection

Who's it for

Open-source maintainers, product teams with public repositories, and any organization receiving a steady stream of GitHub Issues. Ideal for small teams who waste hours per week triaging duplicates and misrouted reports.

How it works

When a new Issue is opened, a GitHub webhook fires this workflow. It first filters for the "opened" action, then fetches the last 30 Issues from the repository. All Issue texts (new + past) are sent to OpenAI's embeddings API in a single batch call for efficiency. The workflow calculates cosine similarity between the new Issue and every past Issue. If the maximum similarity exceeds 0.85, the new Issue is auto-closed with a comment referencing the original. Otherwise, AI classifies it into one of four categories: bug (adds label + Slack alert to dev team), question (posts FAQ link as a comment), feature (appends to a roadmap Google Sheet), or spam (auto-close with label). AI is used only for classification — the duplicate detection uses deterministic vector math, and every action is rule-based.

Set up steps

  1. Generate a GitHub Personal Access Token with repo scope
  2. Create a webhook on your repository pointing to this workflow's URL, subscribing to Issues events
  3. Create a Google Sheet named feature_roadmap with columns: date_added, issue_number, title, author, url, status
  4. Open Set Configuration and fill in the repo owner, repo name, Sheet ID, Slack channel, and FAQ URL
  5. Register GitHub and OpenAI Header Auth credentials and connect Google Sheets and Slack
  6. Activate the workflow

How to customize

Adjust duplicate_threshold for stricter or looser matching, change the embeddings model, or swap Sheets for Notion or Airtable.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - GitHub Issue Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 2 - Set Configuration

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 3 - Only On Issue Opened

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 4 - Extract Issue Info

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 5 - Fetch Recent Issues

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 6 - Prepare Texts for Embedding

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 7 - Get Embeddings (Batch)

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 8 - Calculate Similarity

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 9 - If Duplicate

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 10 - Post Duplicate Comment

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 11 - Close as Duplicate

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 12 - Classify Issue

Type / Role
@n8n/n8n-nodes-langchain.openAi - openAi
Config choices
Version 1.8

Block 13 - Route by Category

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.2

Block 14 - Add Bug Label

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 15 - Alert Dev Team

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.2

Block 16 - Post FAQ Comment

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 17 - Add to Roadmap

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 18 - Close as Spam

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 19 - README

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Section 1 Trigger & Filter

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Section 2 Fetch & Embed

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Section 3 Similarity & Dedup

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Section 4 Classify & Dispatch

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 24 - Branch: Post Duplicate Comment

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Showing the first 24 of 30 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Triage GitHub issues with OpenAI categorization and embedding-based duplicate detection
Complexity advanced
Nodes 30
Categories Ticket Management, AI Summarization
Author Ayaka Sato
Published 23 Apr 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15251/15251.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Triage GitHub issues with OpenAI categorization and embedding-based duplicate detection do?

Who's it for Open source maintainers, product teams with public repositories, and any organization receiving a steady stream of GitHub Issues. Ideal for small teams who waste hours per week triagin...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Ticket Management, AI Summarization use case.