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 →
{
"id": "6d1fV8surkco100H",
"name": "P1-telegram-task-waiting-v1",
"nodes": [
{
"parameters": {},
"id": "sub-wf-trigger",
"name": "Sub-Workflow Trigger",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1,
"position": [
240,
300
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": ""
},
"conditions": [
{
"id": "validate-parse-ok",
"leftValue": "={{ $json.parse_ok }}",
"rightValue": true,
"operator": {
"type": "boolean",
"operation": "true"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "validate-title",
"name": "Validate",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
480,
300
]
},
{
"parameters": {
"resource": "task",
"operation": "create",
"task": "={{ $json.resolved_task_list || ($json.params.test_run ? \"Uk1USUZvSldsYWJTamRtTA\" : \"WAITING\") }}",
"title": "={{ \"WAITING: \" + $json.title }}",
"dueDate": "={{ $json.params.due || \"\" }}",
"notes": "={{ \"Follow-up fuer: \" + ($json.params.to || \"-\") + \"\\nEvent: \" + $json.event_id + ($json.params.test_run ? \"\\nTestRun: \" + $json.params.test_run : \"\") }}"
},
"id": "create-task-waiting",
"name": "Google Tasks: WAITING",
"type": "n8n-nodes-base.googleTasks",
"typeVersion": 1,
"position": [
720,
200
],
"credentials": {
"googleTasksOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const current = items[0].json || {};\nconst upstream = $('Sub-Workflow Trigger').first().json || {};\nconst event = { ...upstream, ...current };\nconst source = event.source || event.source_system || 'telegram';\nreturn [{ json: {\n chat_id: Number.isFinite(Number(event.chat_id)) ? Number(event.chat_id) : 0,\n reply_text: 'Follow-up erstellt: ' + (event.title || ''),\n reply_parse_mode: '',\n source: source,\n source_system: event.source_system || source,\n source_id: event.source_id || '',\n is_test: Boolean(event.is_test),\n run_id: event.run_id || null,\n seq: event.seq || null,\n expected_route: event.expected_route || '',\n expected_chain: Array.isArray(event.expected_chain) ? event.expected_chain : [],\n parse_error: event.parse_error || '',\n write_safety_error: event.write_safety_error || '',\n reply_transport: event.reply_transport || (source === 'telegram' ? 'telegram' : 'webhook'),\n should_telegram_reply: event.should_telegram_reply === true || source === 'telegram',\n test_run: event.test_run_id || (event.params && event.params.test_run) || '',\n task_title: 'WAITING: ' + (event.title || ''),\n task_list: event.resolved_task_list || 'WAITING',\n} }];"
},
"id": "build-success-reply",
"name": "Build Success Reply",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
960,
200
]
},
{
"parameters": {
"jsCode": "const current = items[0].json || {};\nconst upstream = $('Sub-Workflow Trigger').first().json || {};\nconst event = { ...upstream, ...current };\nconst source = event.source || event.source_system || 'telegram';\nreturn [{ json: {\n chat_id: Number.isFinite(Number(event.chat_id)) ? Number(event.chat_id) : 0,\n reply_text: 'Kein Titel angegeben. Beispiel: f: Antwort von Max',\n reply_parse_mode: '',\n source: source,\n source_system: event.source_system || source,\n source_id: event.source_id || '',\n is_test: Boolean(event.is_test),\n run_id: event.run_id || null,\n seq: event.seq || null,\n expected_route: event.expected_route || '',\n expected_chain: Array.isArray(event.expected_chain) ? event.expected_chain : [],\n parse_error: event.parse_error || '',\n write_safety_error: event.write_safety_error || '',\n reply_transport: event.reply_transport || (source === 'telegram' ? 'telegram' : 'webhook'),\n should_telegram_reply: event.should_telegram_reply === true || source === 'telegram',\n test_run: event.test_run_id || (event.params && event.params.test_run) || '',\n} }];"
},
"id": "build-error-reply",
"name": "Build Error Reply",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
720,
440
]
}
],
"connections": {
"Sub-Workflow Trigger": {
"main": [
[
{
"node": "Validate",
"type": "main",
"index": 0
}
]
]
},
"Validate": {
"main": [
[
{
"node": "Google Tasks: WAITING",
"type": "main",
"index": 0
}
],
[
{
"node": "Build Error Reply",
"type": "main",
"index": 0
}
]
]
},
"Google Tasks: WAITING": {
"main": [
[
{
"node": "Build Success Reply",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": [
{
"name": "diti-ai"
},
{
"name": "phase-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.
googleTasksOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
P1-telegram-task-waiting-v1. Uses executeWorkflowTrigger, googleTasks. Event-driven trigger; 5 nodes.
Source: https://github.com/endritmurati99/diti-ai/blob/174a45c253873a0632dac7d8c9afe1a720ee90c5/n8n/workflows/P1-telegram-task-waiting-v1.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.
P1-telegram-task-next-v1. Uses executeWorkflowTrigger, googleTasks. Event-driven trigger; 5 nodes.
Unlock low-cost, high-control generative media workflows directly from n8n by integrating with ComfyUI. Ideal for indie creators, AI developers, or small teams seeking scalable media automation—from i
This workflow provides a complete solution for handling Telegram Stars payments, invoicing and refunds using n8n. It automates the process of sending invoices, managing pre-checkout approvals, recordi
This workflow will backup all of your existed workflows to a single Github repository.
Wait Slack. Uses httpRequest, xml, splitInBatches, stickyNote. Event-driven trigger; 28 nodes.