Skip to content

Instantly share code, notes, and snippets.

@intellectronica
Created August 24, 2025 14:23
Show Gist options
  • Save intellectronica/8e02e0d9f8944a13748124a902c8d57f to your computer and use it in GitHub Desktop.
Save intellectronica/8e02e0d9f8944a13748124a902c8d57f to your computer and use it in GitHub Desktop.
n8n GitHub --> Todoist
{
"name": "GitHub → Todoist",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 10
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
-80,
-80
],
"id": "59c56e93-0b13-4b36-a1e4-bbf207d9b876",
"name": "Schedule Trigger"
},
{
"parameters": {
"operation": "getAll",
"limit": 123,
"filters": {
"labelId": "GitHub"
}
},
"type": "n8n-nodes-base.todoist",
"typeVersion": 2.1,
"position": [
144,
-176
],
"id": "ef6eb065-61d3-43d5-9937-914be51d8c1b",
"name": "Todoist",
"credentials": {
"todoistApi": {
"id": "u953zYxcAiyzcFlo",
"name": "Todoist account"
}
}
},
{
"parameters": {
"jsCode": "const alreadyImported = [];\nconst issuesToImport = [];\n\nfor (const item of $('Todoist').all()) {\n alreadyImported.push(item.json.description.replace('https://github.com/', ''));\n}\n\nfor (const item of $('GitHub').all()) {\n const urlFragment = item.json.url.replace('https://api.github.com/repos/', '');\n let found = false;\n for (const desc of alreadyImported) {\n if (desc.includes(urlFragment)) {\n found = true;\n break;\n }\n }\n if (!found) {\n issuesToImport.push({\n json: {\n title: item.json.title,\n repo: item.json.repository.full_name,\n url: 'https://github.com/' + urlFragment\n }\n });\n }\n}\n\nreturn issuesToImport;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
592,
-80
],
"id": "91a5d022-9f3f-44e9-99d0-8db153961ce8",
"name": "Code"
},
{
"parameters": {
"url": "https://api.github.com/issues",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "githubApi",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
144,
32
],
"id": "fec7b934-9b1d-440f-a8a6-448314bb707f",
"name": "GitHub",
"credentials": {
"githubApi": {
"id": "0eZoPjGfOMz8oTwi",
"name": "GitHub account"
}
}
},
{
"parameters": {
"project": {
"__rl": true,
"value": "2321533940",
"mode": "list",
"cachedResultName": "Inbox"
},
"labels": [
"GitHub"
],
"content": "=[{{ $json.repo }}] {{ $json.title }}",
"options": {
"description": "={{ $json.url }}"
}
},
"type": "n8n-nodes-base.todoist",
"typeVersion": 2.1,
"position": [
800,
-80
],
"id": "ee852572-e9ee-43ad-abcd-402f5b87c773",
"name": "Todoist-Create-Task",
"credentials": {
"todoistApi": {
"id": "u953zYxcAiyzcFlo",
"name": "Todoist account"
}
}
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.1,
"position": [
368,
-80
],
"id": "be26a9aa-5602-40b9-8d84-832a4c9d8dcd",
"name": "Merge"
}
],
"pinData": {},
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "GitHub",
"type": "main",
"index": 0
},
{
"node": "Todoist",
"type": "main",
"index": 0
}
]
]
},
"Todoist": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"GitHub": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Code": {
"main": [
[
{
"node": "Todoist-Create-Task",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "PWgZAr5mz01cw2Sa"
},
"versionId": "bb8df576-9019-488b-ba28-1eb5925d8eac",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "4b43dc0c16e2be92bd65c2e6b7ecf8472625c4cb0ee672e0215ad4e8e97a5deb"
},
"id": "Gj3aC2gXJ8W4A16u",
"tags": []
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment