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": "bizOS CI Failure Notify",
"active": false,
"nodes": [
{
"parameters": {
"content": "## bizOS CI / deploy failure webhook\n\nPath: `POST /webhook/bizos/ci-failure`\n\nSet `BIZOS_WEBHOOK_SECRET` in n8n env to match GitHub secret `N8N_WEBHOOK_SECRET`.\n\nGitHub Actions posts here when `N8N_CI_WEBHOOK_URL` is configured. For localhost-only n8n, prefer **bizOS GitHub Actions Poll** (no inbound webhook required).\n\nReplace **Log Route** with Slack/email before activation.",
"height": 220,
"width": 460
},
"id": "sticky-note-bizos-ci",
"name": "Setup Notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
80,
-140
]
},
{
"parameters": {
"httpMethod": "POST",
"path": "bizos/ci-failure",
"responseMode": "onReceived",
"options": {}
},
"id": "webhook-bizos-ci-failure",
"name": "CI Failure Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
260,
0
]
},
{
"parameters": {
"jsCode": "const crypto = require('crypto');\n\nconst secret = $env.BIZOS_WEBHOOK_SECRET;\nif (!secret) {\n throw new Error('BIZOS_WEBHOOK_SECRET is not configured in n8n');\n}\n\nconst headers = $input.first().json.headers ?? {};\nconst signature = headers['x-signature'] ?? headers['X-Signature'];\nif (!signature) {\n throw new Error('Missing X-Signature header');\n}\n\nconst idempotencyKey = headers['x-idempotency-key'] ?? headers['X-Idempotency-Key'];\nconst body = $input.first().json.body;\nconst rawBody = typeof body === 'string' ? body : JSON.stringify(body);\n\nconst expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');\nif (expected.length !== signature.length || !crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature))) {\n throw new Error('Invalid webhook signature');\n}\n\nconst payload = typeof body === 'string' ? JSON.parse(body) : body;\nif (idempotencyKey && payload.idempotencyKey && idempotencyKey !== payload.idempotencyKey) {\n throw new Error('Idempotency key mismatch');\n}\n\nreturn [{ json: { ...payload, verified: true } }];"
},
"id": "code-verify-ci-signature",
"name": "Verify Signature",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
520,
0
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "workflow",
"value": "bizos-ci-failure-notify"
},
{
"name": "channel",
"value": "ops-ci"
},
{
"name": "title",
"value": "=[bizOS] CI failure: {{ $json.workflow ?? $json.event }}"
},
{
"name": "message",
"value": "=Repo {{ $json.repo }} \u00b7 branch {{ $json.branch }} \u00b7 SHA {{ $json.sha }} \u00b7 {{ $json.runUrl ?? 'no run URL' }}"
},
{
"name": "severity",
"value": "={{ $json.event === 'deploy.failure' ? 'critical' : 'high' }}"
},
{
"name": "routedAt",
"value": "={{ $now.toISO() }}"
}
]
},
"options": {}
},
"id": "set-ci-notification",
"name": "Build Notification",
"type": "n8n-nodes-base.set",
"typeVersion": 3,
"position": [
780,
0
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "status",
"value": "routed"
}
]
},
"options": {}
},
"id": "set-ci-log",
"name": "Log Route",
"type": "n8n-nodes-base.set",
"typeVersion": 3,
"position": [
1040,
0
]
}
],
"connections": {
"CI Failure Webhook": {
"main": [
[
{
"node": "Verify Signature",
"type": "main",
"index": 0
}
]
]
},
"Verify Signature": {
"main": [
[
{
"node": "Build Notification",
"type": "main",
"index": 0
}
]
]
},
"Build Notification": {
"main": [
[
{
"node": "Log Route",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true,
"callerPolicy": "workflowsFromSameOwner"
},
"meta": {
"templateCredsSetupCompleted": false,
"description": "Sanitized template for CI/deploy failure notifications. active: false until ops review."
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
bizOS CI Failure Notify. Webhook trigger; 5 nodes.
Source: https://github.com/pmwasim/bizOS/blob/main/docs/operations/n8n-workflows/ci-failure-notify.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.
A production-ready authentication workflow implementing secure user registration, login, token verification, and refresh token mechanisms. Perfect for adding authentication to any application without
Portfolio Orchestrator. Uses httpRequest. Webhook trigger; 59 nodes.
This n8n template demonstrates how a simple Multi-Layer Perceptron (MLP) neural network can predict housing prices. The prediction is based on four key features, processed through a three-layer model.
github code Try yourself
This workflow receives new consult bookings via webhook (Calendly v2 or a generic scheduling tool), generates timed confirmation and reminder messages, runs each SMS through a separate compliance work