2026-08-23 16:53:41 +00:00
{
"name" : "n8n Monitoring Dashboard - Poller" ,
"nodes" : [
{
"parameters" : {
2026-08-23 17:11:29 +00:00
"content" : "## Setup\n1. Create an \"HTTP Header Auth\" credential named \"n8n API Key\" (header X-N8N-API-KEY = your n8n API key).\n2. Create an \"HTTP Header Auth\" credential named \"PocketBase Admin\" (header Authorization = \"Bearer <your PocketBase admin token>\").\n3. PocketBase base URL is pre-set to http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io \u2014 no change needed.\n4. Collections already created in PocketBase.\n5. Activate this workflow when ready." ,
2026-08-23 16:53:41 +00:00
"height" : 200 ,
"width" : 300 ,
"color" : 4
} ,
"id" : "ec8c99c4-8f93-4a84-af5b-8e64d74d553e" ,
"name" : "Sticky Note 67b8b148" ,
"type" : "n8n-nodes-base.stickyNote" ,
"typeVersion" : 1 ,
"position" : [
-256 ,
256
]
} ,
{
"parameters" : {
"rule" : {
"interval" : [
{
"field" : "minutes"
}
]
}
} ,
"id" : "0b884dbe-36c1-420b-be75-671c93187ba5" ,
"name" : "Every 5 Minutes" ,
"type" : "n8n-nodes-base.scheduleTrigger" ,
"typeVersion" : 1.3 ,
"position" : [
-192 ,
304
]
} ,
{
"parameters" : {
"url" : "https://wfdash.n8n.apphub.co.za/api/v1/workflows" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"options" : { }
} ,
"id" : "aa3f8fb7-e934-422b-ae7b-0684f40fcbc1" ,
"name" : "Fetch n8n Workflows" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
112 ,
160
]
} ,
{
"parameters" : {
"fieldToSplitOut" : "data" ,
"options" : { }
} ,
"id" : "eea0d135-d067-46b3-9314-1e24787c603f" ,
"name" : "Split Workflows Array" ,
"type" : "n8n-nodes-base.splitOut" ,
"typeVersion" : 1 ,
"position" : [
400 ,
160
]
} ,
{
"parameters" : { } ,
"id" : "53071f8d-f8be-4c41-aa85-4d6b87928c5a" ,
"name" : "Workflows Sync Done" ,
"type" : "n8n-nodes-base.noOp" ,
"typeVersion" : 1 ,
"position" : [
1904 ,
160
]
} ,
{
"parameters" : {
"url" : "http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io/api/collections/workflows/records" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendQuery" : true ,
"queryParameters" : {
"parameters" : [
{
"name" : "filter" ,
"value" : "=(n8n_id=\"{{ $json.id }}\")"
}
]
} ,
"options" : { }
} ,
"id" : "262ec577-9f0f-4914-80ec-23bde9ec37e5" ,
"name" : "Check Workflow Record Exists" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
1008 ,
160
]
} ,
{
"parameters" : {
"conditions" : {
"options" : {
"caseSensitive" : true ,
"leftValue" : "" ,
"typeValidation" : "loose" ,
"version" : 1
} ,
"conditions" : [
{
"leftValue" : "={{ $json.totalItems }}" ,
"operator" : {
"type" : "number" ,
"operation" : "gt"
} ,
"rightValue" : 0
}
] ,
"combinator" : "and"
} ,
"options" : { }
} ,
"id" : "8a5df769-640f-4f57-889a-9d92ab304b69" ,
"name" : "Workflow Record Exists?" ,
"type" : "n8n-nodes-base.if" ,
"typeVersion" : 2.2 ,
"position" : [
1312 ,
160
]
} ,
{
"parameters" : {
"method" : "PATCH" ,
"url" : "={{ \"http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io/api/collections/workflows/records/\" + $json.items[0].id }}" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendBody" : true ,
"specifyBody" : "json" ,
"jsonBody" : "={{ { \"name\": $(\"Split Workflows Array\").item.json.name, \"active\": $(\"Split Workflows Array\").item.json.active, \"n8n_updated_at\": $(\"Split Workflows Array\").item.json.updatedAt } }}" ,
"options" : { }
} ,
"id" : "49ab8e98-0e47-48a4-8e78-1d7fb959f286" ,
"name" : "Update Workflow Record" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
1600 ,
64
]
} ,
{
"parameters" : {
"options" : { }
} ,
"id" : "a5290a91-9b2d-45e8-8851-2d702b406b5d" ,
"name" : "Workflows: One At A Time" ,
"type" : "n8n-nodes-base.splitInBatches" ,
"typeVersion" : 3 ,
"position" : [
704 ,
160
]
} ,
{
"parameters" : {
"method" : "POST" ,
"url" : "http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io/api/collections/workflows/records" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendBody" : true ,
"specifyBody" : "json" ,
"jsonBody" : "={{ { \"n8n_id\": $(\"Split Workflows Array\").item.json.id, \"name\": $(\"Split Workflows Array\").item.json.name, \"active\": $(\"Split Workflows Array\").item.json.active, \"n8n_updated_at\": $(\"Split Workflows Array\").item.json.updatedAt } }}" ,
"options" : { }
} ,
"id" : "ac8f44a6-03e4-48c1-9536-5adfa6295427" ,
"name" : "Create Workflow Record" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
1600 ,
256
]
} ,
{
"parameters" : {
"url" : "https://wfdash.n8n.apphub.co.za/api/v1/executions" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendQuery" : true ,
"queryParameters" : {
"parameters" : [
{
"name" : "limit" ,
"value" : "50"
} ,
{
"name" : "includeData" ,
2026-08-23 17:11:29 +00:00
"value" : "true"
2026-08-23 16:53:41 +00:00
}
]
} ,
"options" : { }
} ,
"id" : "18ae2824-df7d-46f6-8606-8487306e8616" ,
"name" : "Fetch n8n Executions" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
112 ,
560
]
} ,
{
"parameters" : {
"fieldToSplitOut" : "data" ,
"options" : { }
} ,
"id" : "7c79adc6-7b7b-43e2-9b2c-b6d914bcbeab" ,
"name" : "Split Executions Array" ,
"type" : "n8n-nodes-base.splitOut" ,
"typeVersion" : 1 ,
"position" : [
400 ,
560
]
} ,
{
"parameters" : { } ,
"id" : "c3af8ab7-2976-47b8-87b4-9abc5e54a379" ,
"name" : "Executions Sync Done" ,
"type" : "n8n-nodes-base.noOp" ,
"typeVersion" : 1 ,
"position" : [
1904 ,
560
]
} ,
{
"parameters" : {
"url" : "http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io/api/collections/executions/records" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendQuery" : true ,
"queryParameters" : {
"parameters" : [
{
"name" : "filter" ,
"value" : "=(n8n_execution_id=\"{{ $json.id }}\")"
}
]
} ,
"options" : { }
} ,
"id" : "bd057afd-4ac4-4834-8bde-f1e1824d42a4" ,
"name" : "Check Execution Record Exists" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
1008 ,
560
]
} ,
{
"parameters" : {
"conditions" : {
"options" : {
"caseSensitive" : true ,
"leftValue" : "" ,
"typeValidation" : "loose" ,
"version" : 1
} ,
"conditions" : [
{
"leftValue" : "={{ $json.totalItems }}" ,
"operator" : {
"type" : "number" ,
"operation" : "gt"
} ,
"rightValue" : 0
}
] ,
"combinator" : "and"
} ,
"options" : { }
} ,
"id" : "79569deb-1551-4823-9488-de30c81392fe" ,
"name" : "Execution Record Exists?" ,
"type" : "n8n-nodes-base.if" ,
"typeVersion" : 2.2 ,
"position" : [
1312 ,
560
]
} ,
{
"parameters" : {
"method" : "PATCH" ,
"url" : "={{ \"http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io/api/collections/executions/records/\" + $json.items[0].id }}" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendBody" : true ,
"specifyBody" : "json" ,
2026-08-23 17:11:29 +00:00
"jsonBody" : "={{ { \"status\": $(\"Split Executions Array\").item.json.status, \"started_at\": $(\"Split Executions Array\").item.json.startedAt, \"stopped_at\": $(\"Split Executions Array\").item.json.stoppedAt, \"workflow_n8n_id\": $(\"Split Executions Array\").item.json.workflowId, \"error_message\": ((() => { try { return JSON.parse($('Split Executions Array').item.json.data || '{}')?.resultData?.error?.message || ''; } catch { return ''; } })()) } }}" ,
2026-08-23 16:53:41 +00:00
"options" : { }
} ,
"id" : "15dc5e8c-9d0f-4583-a0ce-dc43ea1b609c" ,
"name" : "Update Execution Record" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
1600 ,
464
]
} ,
{
"parameters" : {
"options" : { }
} ,
"id" : "71fa9479-a294-42bc-93f6-80c6d6885105" ,
"name" : "Executions: One At A Time" ,
"type" : "n8n-nodes-base.splitInBatches" ,
"typeVersion" : 3 ,
"position" : [
704 ,
560
]
} ,
{
"parameters" : {
"method" : "POST" ,
"url" : "http://pocketbase-fftm1vu8twxfixup17v82xwe.169.239.180.130.sslip.io/api/collections/executions/records" ,
"authentication" : "genericCredentialType" ,
"genericAuthType" : "httpHeaderAuth" ,
"sendBody" : true ,
"specifyBody" : "json" ,
2026-08-23 17:11:29 +00:00
"jsonBody" : "={{ { \"n8n_execution_id\": $(\"Split Executions Array\").item.json.id, \"workflow_n8n_id\": $(\"Split Executions Array\").item.json.workflowId, \"status\": $(\"Split Executions Array\").item.json.status, \"started_at\": $(\"Split Executions Array\").item.json.startedAt, \"stopped_at\": $(\"Split Executions Array\").item.json.stoppedAt, \"error_message\": ((() => { try { return JSON.parse($('Split Executions Array').item.json.data || '{}')?.resultData?.error?.message || ''; } catch { return ''; } })()) } }}" ,
2026-08-23 16:53:41 +00:00
"options" : { }
} ,
"id" : "acd3d95a-1e95-4312-88f2-16ba8978c7e2" ,
"name" : "Create Execution Record" ,
"type" : "n8n-nodes-base.httpRequest" ,
"typeVersion" : 4.3 ,
"position" : [
1600 ,
656
]
}
] ,
"pinData" : { } ,
"connections" : {
"Every 5 Minutes" : {
"main" : [
[
{
"node" : "Fetch n8n Workflows" ,
"type" : "main" ,
"index" : 0
} ,
{
"node" : "Fetch n8n Executions" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Fetch n8n Workflows" : {
"main" : [
[
{
"node" : "Split Workflows Array" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Split Workflows Array" : {
"main" : [
[
{
"node" : "Workflows: One At A Time" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Check Workflow Record Exists" : {
"main" : [
[
{
"node" : "Workflow Record Exists?" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Workflow Record Exists?" : {
"main" : [
[
{
"node" : "Update Workflow Record" ,
"type" : "main" ,
"index" : 0
}
] ,
[
{
"node" : "Create Workflow Record" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Update Workflow Record" : {
"main" : [
[
{
"node" : "Workflows: One At A Time" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Workflows: One At A Time" : {
"main" : [
[
{
"node" : "Workflows Sync Done" ,
"type" : "main" ,
"index" : 0
}
] ,
[
{
"node" : "Check Workflow Record Exists" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Create Workflow Record" : {
"main" : [
[
{
"node" : "Workflows: One At A Time" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Fetch n8n Executions" : {
"main" : [
[
{
"node" : "Split Executions Array" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Split Executions Array" : {
"main" : [
[
{
"node" : "Executions: One At A Time" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Check Execution Record Exists" : {
"main" : [
[
{
"node" : "Execution Record Exists?" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Execution Record Exists?" : {
"main" : [
[
{
"node" : "Update Execution Record" ,
"type" : "main" ,
"index" : 0
}
] ,
[
{
"node" : "Create Execution Record" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Update Execution Record" : {
"main" : [
[
{
"node" : "Executions: One At A Time" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Executions: One At A Time" : {
"main" : [
[
{
"node" : "Executions Sync Done" ,
"type" : "main" ,
"index" : 0
}
] ,
[
{
"node" : "Check Execution Record Exists" ,
"type" : "main" ,
"index" : 0
}
]
]
} ,
"Create Execution Record" : {
"main" : [
[
{
"node" : "Executions: One At A Time" ,
"type" : "main" ,
"index" : 0
}
]
]
}
} ,
"active" : false ,
"settings" : {
"executionOrder" : "v1" ,
"binaryMode" : "separate" ,
"availableInMCP" : true
} ,
"versionId" : "6c005d1b-a2e9-4f00-94f9-a1dadedb1532" ,
"meta" : {
"aiBuilderAssisted" : true ,
"builderVariant" : "mcp" ,
"instanceId" : "05bcfa3b50919141d3600718ff4b7b2b52a3883525b05573a27ba5ef437ac7fb"
} ,
"nodeGroups" : [ ] ,
"id" : "cM8YciHiEwpslh1y" ,
"tags" : [ ]
}