The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "GitHub issue triage \u2014 AI-Powered-personal-Assistant",
"nodes": [
{
"parameters": {
"owner": "={{ $env.GITHUB_OWNER }}",
"repository": "AI-Powered-personal-Assistant",
"events": [
"issues"
]
},
"id": "issue-trigger",
"name": "GitHub issue opened",
"type": "n8n-nodes-base.githubTrigger",
"typeVersion": 1,
"position": [
-520,
0
],
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const event = $json;\nconst action = event.action;\nconst issue = event.issue;\nif (action !== \"opened\" || !issue || issue.pull_request) return [];\nconst text = `${issue.title || \"\"} ${issue.body || \"\"}`.toLowerCase();\nconst labels = [\"needs-triage\"];\nif (/\\\\b(bug|error|exception|crash|broken|fail(?:s|ed|ure)?)\\\\b/.test(text)) labels.push(\"bug\");\nelse if (/\\\\b(doc|readme|documentation|guide)\\\\b/.test(text)) labels.push(\"documentation\");\nelse if (/\\\\b(feature|request|proposal|support)\\\\b/.test(text)) labels.push(\"feature\");\nelse if (/\\\\b(question|how do|how to|help)\\\\b/.test(text)) labels.push(\"question\");\nelse labels.push(\"enhancement\");\nif (/\\\\b(security|vulnerab|data loss|outage|critical)\\\\b/.test(text)) labels.push(\"priority:high\");\nelse if (/\\\\b(regression|blocked|urgent|broken)\\\\b/.test(text)) labels.push(\"priority:medium\");\nelse labels.push(\"priority:low\");\nreturn [{ json: { issueNumber: issue.number, labels } }];"
},
"id": "classify",
"name": "Classify conservatively",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-260,
0
]
},
{
"parameters": {
"method": "POST",
"url": "=https://api.github.com/repos/{{$env.GITHUB_OWNER}}/AI-Powered-personal-Assistant/issues/{{$json.issueNumber}}/labels",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "githubApi",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify({ labels: $json.labels }) }}",
"options": {}
},
"id": "label-issue",
"name": "Apply triage labels",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
0,
0
],
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
}
],
"connections": {
"GitHub issue opened": {
"main": [
[
{
"node": "Classify conservatively",
"type": "main",
"index": 0
}
]
]
},
"Classify conservatively": {
"main": [
[
{
"node": "Apply triage labels",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "1"
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
githubApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
GitHub issue triage — AI-Powered-personal-Assistant. Uses githubTrigger, httpRequest. Event-driven trigger; 3 nodes.
Source: https://github.com/CoreyLeath-code/AI-Powered-personal-Assistant/blob/50e30b5705ac8f2959f9decd643689452f2757f6/n8n/issue-triage.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Detect and merge duplicate GitHub issues automatically using Claude AI. This n8n automation triggers on new GitHub issues, checks them against open issues for duplicates, merges duplicate reports into
By embedding specific keywords and a JIRA issue ID within your git commit commands, this workflow automatically creates a Pull Request in GitHub and simultaneously updates the corresponding JIRA ticke
Semantic Duplicate Issue Detector. Uses githubTrigger, httpRequest, github. Event-driven trigger; 18 nodes.
This template is ideal for developers, DevOps engineers, and automation managers who manage their n8n workflows using GitHub. It helps teams streamline their CI/CD automation by syncing changes from G
This workflow automatically adds a note of the PR from GitHub to the Pipedrive contact if their GitHub email matches a Person in Pipedrive. Pipedrive account and Pipedrive credentials GitHub account a