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": "DSA",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 11
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
0,
0
],
"id": "2dafa641-a7de-4468-818b-f5e30d00e26c",
"name": "Schedule Trigger"
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "appa9I5tjbGpfRj3S",
"mode": "list",
"cachedResultName": "Leetcode",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S"
},
"table": {
"__rl": true,
"value": "tblTy1XLQtUc1lFI7",
"mode": "list",
"cachedResultName": "Table 1",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S/tblTy1XLQtUc1lFI7"
},
"filterByFormula": "={Status} = \"Pending\"",
"returnAll": false,
"limit": 1,
"options": {},
"sort": {
"property": [
{
"field": "Date"
}
]
}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
224,
0
],
"id": "3fbbce9f-e81c-4ea7-9e91-63b0eb85ca63",
"name": "Search records",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "message",
"guildId": {
"__rl": true,
"value": "1452870752402669754",
"mode": "list",
"cachedResultName": "System",
"cachedResultUrl": "https://discord.com/channels/1452870752402669754"
},
"channelId": {
"__rl": true,
"value": "1467042504200425706",
"mode": "list",
"cachedResultName": "daily-dsa",
"cachedResultUrl": "https://discord.com/channels/1452870752402669754/1467042504200425706"
},
"content": "=\u2b50 Daily DSA Problem \u2b50 {{ $json.Date }}\n\n\ud83d\udccc Category: {{ $json['Topic/Category'] }},\n\ud83e\udde0 Problem: {{ $json['Question Title'] }},\n\u26a1 Difficulty: {{ $json.Difficulty }} ,\n\ud83d\udd17 url: {{ $json.URL }}\n\n\ud83d\udcd6 Problem Description:,\n{{ $json['Question Description'] }}",
"options": {}
},
"type": "n8n-nodes-base.discord",
"typeVersion": 2,
"position": [
448,
0
],
"id": "4e2ab72d-07c7-4dea-a4d1-bc7bd9b88b96",
"name": "Send a message",
"credentials": {
"discordBotApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "update",
"base": {
"__rl": true,
"value": "appa9I5tjbGpfRj3S",
"mode": "list",
"cachedResultName": "Leetcode",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S"
},
"table": {
"__rl": true,
"value": "tblTy1XLQtUc1lFI7",
"mode": "list",
"cachedResultName": "Table 1",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S/tblTy1XLQtUc1lFI7"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"id": "={{ $('Search records').item.json.id }}",
"Discord Message ID": "={{ $json.id }}"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Assignee",
"displayName": "Assignee",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
},
{
"name": "Pending",
"value": "Pending"
}
],
"readOnly": false,
"removed": true
},
{
"id": "Attachments",
"displayName": "Attachments",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "Attachment Summary",
"displayName": "Attachment Summary",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Date",
"displayName": "Date",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "dateTime",
"readOnly": false,
"removed": true
},
{
"id": "Question Title",
"displayName": "Question Title",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Question Description",
"displayName": "Question Description",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Difficulty",
"displayName": "Difficulty",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Easy",
"value": "Easy"
},
{
"name": "Medium",
"value": "Medium"
},
{
"name": "Hard",
"value": "Hard"
}
],
"readOnly": false,
"removed": true
},
{
"id": "Topic/Category",
"displayName": "Topic/Category",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Discord Message ID",
"displayName": "Discord Message ID",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Question ID",
"displayName": "Question ID",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Complete",
"displayName": "Complete",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Complete",
"value": "Complete"
},
{
"name": "Not Complete",
"value": "Not Complete"
}
],
"readOnly": false,
"removed": true
},
{
"id": "URL",
"displayName": "URL",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
672,
0
],
"id": "ec4a1a5b-f99d-40aa-93b4-71c3bd6b292d",
"name": "Update record",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 23,
"triggerAtMinute": 59
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
0,
560
],
"id": "8096870e-4ea4-40bc-b40a-5da1cdddb319",
"name": "Schedule Trigger1"
},
{
"parameters": {
"resource": "message",
"operation": "get",
"guildId": {
"__rl": true,
"value": "1452870752402669754",
"mode": "list",
"cachedResultName": "System",
"cachedResultUrl": "https://discord.com/channels/1452870752402669754"
},
"channelId": {
"__rl": true,
"value": "1467042504200425706",
"mode": "list",
"cachedResultName": "daily-dsa",
"cachedResultUrl": "https://discord.com/channels/1452870752402669754/1467042504200425706"
},
"messageId": "={{ $json['Discord Message ID'] }}",
"options": {}
},
"type": "n8n-nodes-base.discord",
"typeVersion": 2,
"position": [
672,
320
],
"id": "7d54d853-cfa9-465c-95e1-5cd632d163d7",
"name": "Get a message",
"credentials": {
"discordBotApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "update",
"base": {
"__rl": true,
"value": "appa9I5tjbGpfRj3S",
"mode": "list",
"cachedResultName": "Leetcode",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S"
},
"table": {
"__rl": true,
"value": "tblTy1XLQtUc1lFI7",
"mode": "list",
"cachedResultName": "Table 1",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S/tblTy1XLQtUc1lFI7"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"id": "={{ $('Search records2').item.json.id }}",
"Status": "Done"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Assignee",
"displayName": "Assignee",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
},
{
"name": "Pending",
"value": "Pending"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Attachments",
"displayName": "Attachments",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "Attachment Summary",
"displayName": "Attachment Summary",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Date",
"displayName": "Date",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "dateTime",
"readOnly": false,
"removed": true
},
{
"id": "Question Title",
"displayName": "Question Title",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Question Description",
"displayName": "Question Description",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Difficulty",
"displayName": "Difficulty",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Easy",
"value": "Easy"
},
{
"name": "Medium",
"value": "Medium"
},
{
"name": "Hard",
"value": "Hard"
}
],
"readOnly": false,
"removed": true
},
{
"id": "Topic/Category",
"displayName": "Topic/Category",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Discord Message ID",
"displayName": "Discord Message ID",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Question ID",
"displayName": "Question ID",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "Complete",
"displayName": "Complete",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Complete",
"value": "Complete"
},
{
"name": "Not Complete",
"value": "Not Complete"
}
],
"readOnly": false,
"removed": true
},
{
"id": "URL",
"displayName": "URL",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1120,
224
],
"id": "78e5f780-b13a-4023-9852-96a19226ff52",
"name": "Update record1",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "message",
"guildId": {
"__rl": true,
"value": "1452870752402669754",
"mode": "list",
"cachedResultName": "System",
"cachedResultUrl": "https://discord.com/channels/1452870752402669754"
},
"channelId": {
"__rl": true,
"value": "1467053939907100693",
"mode": "list",
"cachedResultName": "reminders",
"cachedResultUrl": "https://discord.com/channels/1452870752402669754/1467053939907100693"
},
"content": "=\u2744\ufe0fYour streak is dying dawg\n\ud83d\udd25Keep your streak up\n\n{{ $('Get a message').item.json.content }}\n",
"options": {}
},
"type": "n8n-nodes-base.discord",
"typeVersion": 2,
"position": [
1120,
416
],
"id": "ed37a2ad-ef28-4b81-8d54-3b85988824d3",
"name": "Send a message1",
"credentials": {
"discordBotApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
1344,
584
],
"id": "2a42838c-bb97-4ec1-9068-a9088df691fb",
"name": "Wait"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
448,
560
],
"id": "8c1c1847-bdfa-47cd-8c5c-83d25b98c257",
"name": "Loop Over Items"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "6607820b-dc5f-445e-a8bf-0d82e8f7071c",
"leftValue": "={{ $json.reactions.some(r => r.emoji.name === \"\u2705\") }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
896,
320
],
"id": "9fcc518b-2e0b-44ff-8e2e-8b5793592be3",
"name": "Check Emoji"
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "appa9I5tjbGpfRj3S",
"mode": "list",
"cachedResultName": "Leetcode",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S"
},
"table": {
"__rl": true,
"value": "tblTy1XLQtUc1lFI7",
"mode": "list",
"cachedResultName": "Table 1",
"cachedResultUrl": "https://airtable.com/appa9I5tjbGpfRj3S/tblTy1XLQtUc1lFI7"
},
"filterByFormula": "AND( {Status} = \"Pending\", NOT({Discord Message ID} = BLANK()) )",
"returnAll": false,
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
224,
560
],
"id": "c7effd28-1a7f-4622-9fc9-40f7513604fa",
"name": "Search records2",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
1344,
392
],
"id": "620bb3bf-be3d-4f43-ba6f-2f6fc22d9434",
"name": "Wait1"
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Search records",
"type": "main",
"index": 0
}
]
]
},
"Search records": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Send a message": {
"main": [
[
{
"node": "Update record",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger1": {
"main": [
[
{
"node": "Search records2",
"type": "main",
"index": 0
}
]
]
},
"Get a message": {
"main": [
[
{
"node": "Check Emoji",
"type": "main",
"index": 0
}
]
]
},
"Send a message1": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Get a message",
"type": "main",
"index": 0
}
]
]
},
"Check Emoji": {
"main": [
[
{
"node": "Update record1",
"type": "main",
"index": 0
}
],
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
]
]
},
"Search records2": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Update record1": {
"main": [
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"Wait1": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"binaryMode": "separate",
"availableInMCP": false,
"timeSavedMode": "fixed",
"timezone": "Asia/Kolkata",
"callerPolicy": "workflowsFromSameOwner",
"executionTimeout": -1
},
"versionId": "f3f8b841-8ad2-4bd9-9312-184c769a4586",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "2Kf64KLiP19H1tRK",
"tags": [
{
"updatedAt": "2026-02-26T18:33:32.581Z",
"createdAt": "2026-02-26T18:33:32.581Z",
"id": "0RsFEOPrOUeK5kgL",
"name": "working"
}
]
}
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.
airtableTokenApidiscordBotApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
DSA. Uses airtable, discord. Scheduled trigger; 13 nodes.
Source: https://github.com/lopster568/artifacts/blob/d4acdb3ca09a2cb92ea24d7eae7aabb19f7e99a6/n8n/templates/DSA.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.
Nathan's workflow. Uses airtable, httpRequest, discord. Scheduled trigger; 7 nodes.
Wait Schedule. Uses spotify, supabase, compareDatasets, noOp. Scheduled trigger; 54 nodes.
This n8n template demonstrates how to automatically monitor and track username and nickname changes across your Discord server members. Perfect for community moderation, security monitoring, and maint
🌸 Affirmation Sender + Weekly Gratitude Digest v2