This workflow follows the Error Trigger → Google Sheets recipe pattern — see all workflows that pair these two integrations.
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": "99_global_error_handler",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.errorTrigger",
"typeVersion": 1,
"position": [
0,
0
],
"id": "fa234246-5447-4470-a7c1-436952af3210",
"name": "Catch Workflow Error"
},
{
"parameters": {
"chatId": "admin_id",
"text": "=<b>\ud83d\udea8 CRITICAL ERROR REPORT</b>\n\n<b>Source Workflow:</b> {{ $json.workflow.name }}\n<b>Error Message:</b> {{ $json.execution.error.message }}\n<b>Failed Node:</b> {{ $json.execution.lastNodeExecuted }}\n<b>Time:</b> {{ $now.format('YYYY-MM-DD HH:mm:ss') }}\n\n<a href=\"{{ $json.execution.url }}\">\ud83d\udc49 Open Execution Log</a>",
"additionalFields": {
"appendAttribution": false,
"parse_mode": "HTML"
}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
240,
0
],
"id": "02a6d7dc-d246-44ab-81a7-e0577857f493",
"name": "Alert Admin (Telegram)",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "1IH1j7tDItMlfPUjawuXSywX83fMQ_6m9ToIN6exWiMk",
"mode": "list",
"cachedResultName": "n8n_execution_logs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1IH1j7tDItMlfPUjawuXSywX83fMQ_6m9ToIN6exWiMk/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": 2122039850,
"mode": "list",
"cachedResultName": "errors",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1IH1j7tDItMlfPUjawuXSywX83fMQ_6m9ToIN6exWiMk/edit#gid=2122039850"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"timestamp": "={{ $now }}",
"workflow_name": "={{ $('Catch Workflow Error').item.json.workflow.name }}",
"error_message": "={{ $('Catch Workflow Error').item.json.execution.error.message }}",
"execution_url": "={{ $('Catch Workflow Error').item.json.execution.url }}",
"failed_node": "={{ $('Catch Workflow Error').item.json.execution.lastNodeExecuted }}"
},
"matchingColumns": [],
"schema": [
{
"id": "timestamp",
"displayName": "timestamp",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "workflow_name",
"displayName": "workflow_name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "error_message",
"displayName": "error_message",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "execution_url",
"displayName": "execution_url",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "failed_node",
"displayName": "failed_node",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
480,
0
],
"id": "dcee4972-c582-44df-a1c8-4c009093124e",
"name": "Log Failure to GSheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "**Global Error Handler**\nTriggered automatically when any other workflow fails.\n1. **Alert:** Sends immediate notification to Telegram with execution URL.\n2. **Log:** Records error details to Google Sheets for auditing.",
"height": 128,
"width": 512
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
-208
],
"typeVersion": 1,
"id": "e90f1a14-4fb2-42a9-9d72-9ecd99a6b54e",
"name": "Sticky Note"
}
],
"connections": {
"Catch Workflow Error": {
"main": [
[
{
"node": "Alert Admin (Telegram)",
"type": "main",
"index": 0
}
]
]
},
"Alert Admin (Telegram)": {
"main": [
[
{
"node": "Log Failure to GSheets",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1",
"availableInMCP": false
},
"versionId": "4a96a896-1307-4637-8460-254716c8612d",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "hqRcKQkYO4KNl7CpVzjbg",
"tags": []
}
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.
googleSheetsOAuth2ApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
99_global_error_handler. Uses errorTrigger, telegram, googleSheets, stickyNote. Event-driven trigger; 4 nodes.
Source: https://github.com/gulnaz-bakinova/n8n-automation-integrations-showcase/blob/main/99_global_error_handler.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.
clients kept booking meetings during my prayer times. i'd either miss a prayer or scramble to reschedule. the problem wasn't the clients — it was that my calendar had no blocked windows for salah. i n
Stickynote Workflow. Uses stickyNote, noOp, telegramTrigger, googleSheets. Event-driven trigger; 11 nodes.
BillBot. Uses telegram, telegramTrigger, httpRequest, googleSheets. Event-driven trigger; 7 nodes.
This template is for teams using n8n in production who want immediate visibility into workflow failures. It’s ideal for DevOps teams, automation engineers, and operations teams who need reliable error
Report N8N Workflow Errors To Telegram. Uses errorTrigger, stickyNote, telegram. Event-driven trigger; 5 nodes.