AutomationFlowsWeb Scraping › Zero Risk — Daily Ops Digest (9am)

Zero Risk — Daily Ops Digest (9am)

Zero Risk — Daily Ops Digest (9am). Uses httpRequest. Scheduled trigger; 6 nodes.

Cron / scheduled trigger★★★★☆ complexity6 nodesHTTP Request
Web Scraping Trigger: Cron / scheduled Nodes: 6 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "name": "Zero Risk \u2014 Daily Ops Digest (9am)",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * *"
            }
          ]
        }
      },
      "id": "cron-trigger",
      "name": "Daily 9am",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "={{ $env.ZERO_RISK_API_URL || 'https://zero-risk-platform.vercel.app' }}/api/analytics/performance?days=1",
        "options": {
          "timeout": 30000
        }
      },
      "id": "fetch-perf",
      "name": "Fetch Yesterday Performance",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        480,
        220
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "={{ $env.ZERO_RISK_API_URL || 'https://zero-risk-platform.vercel.app' }}/api/hitl/pending",
        "options": {
          "timeout": 30000
        }
      },
      "id": "fetch-hitl",
      "name": "Fetch HITL Queue",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        480,
        380
      ]
    },
    {
      "parameters": {
        "mode": "combine",
        "combineBy": "combineAll",
        "options": {}
      },
      "id": "merge",
      "name": "Merge Data",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        720,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// Compose digest from both sources\nconst perf = $input.all()[0]?.json || {};\nconst hitl = $input.all()[1]?.json || {};\nconst pipelines = perf.pipelines_completed ?? perf.total_pipelines ?? 0;\nconst pipelinesFailed = perf.pipelines_failed ?? 0;\nconst costUsd = (perf.total_cost_usd ?? 0).toFixed(2);\nconst avgSteps = perf.avg_steps_per_pipeline ?? 0;\nconst hitlPending = (hitl.items || hitl.pipeline_qa || []).length;\nconst topAgent = perf.top_agent || 'n/a';\n\nconst lines = [\n  `\ud83c\udf05 *Zero Risk \u2014 Daily Digest*`,\n  ``,\n  `\ud83d\udcca *Yesterday*`,\n  `\u2022 Pipelines completed: ${pipelines}`,\n  `\u2022 Pipelines failed: ${pipelinesFailed}`,\n  `\u2022 Coste total: $${costUsd} USD`,\n  `\u2022 Avg steps/pipeline: ${avgSteps}`,\n  `\u2022 Top agent: ${topAgent}`,\n  ``,\n  `\ud83d\udc65 *HITL Queue*`,\n  `\u2022 Approvals pendientes: ${hitlPending}`,\n  ``,\n  `\ud83d\udd17 Inbox: ${process.env.ZERO_RISK_API_URL || 'https://zero-risk-platform.vercel.app'}/dashboard/inbox`,\n  `\ud83d\udd17 Mission Control: https://zero-risk-platform.vercel.app`,\n];\n\nreturn [{ json: { text: lines.join('\\n') } }];"
      },
      "id": "compose",
      "name": "Compose Digest",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        960,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $env.SLACK_WEBHOOK_URL }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={ \"text\": \"{{ $json.text }}\" }",
        "options": {}
      },
      "id": "post-slack",
      "name": "Post to Slack",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1200,
        300
      ]
    }
  ],
  "connections": {
    "Daily 9am": {
      "main": [
        [
          {
            "node": "Fetch Yesterday Performance",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch HITL Queue",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Yesterday Performance": {
      "main": [
        [
          {
            "node": "Merge Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch HITL Queue": {
      "main": [
        [
          {
            "node": "Merge Data",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge Data": {
      "main": [
        [
          {
            "node": "Compose Digest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compose Digest": {
      "main": [
        [
          {
            "node": "Post to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true
  },
  "tags": [
    {
      "name": "zero-risk",
      "id": "1"
    },
    {
      "name": "observability",
      "id": "7"
    },
    {
      "name": "cron",
      "id": "3"
    }
  ],
  "triggerCount": 1,
  "versionId": "1"
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Zero Risk — Daily Ops Digest (9am). Uses httpRequest. Scheduled trigger; 6 nodes.

Source: https://github.com/emilacho/zero-risk-platform/blob/b91d7e73029d184db13fbe29c410317e2a267070/n8n-workflows/daily-ops-digest.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

Birthday Automation - Production (Fixed). Uses stopAndError, httpRequest, emailSend, bannerbear. Scheduled trigger; 86 nodes.

Stop And Error, HTTP Request, Email Send +1
Web Scraping

This template runs two scheduled workflows to govern Microsoft Entra ID (Azure AD) guest accounts by detecting stale users via Microsoft Graph, staging deletions in SharePoint with a 72-hour window, n

Microsoft SharePoint, Microsoft Teams, Microsoft Entra +1
Web Scraping

Jira-Allure-Auto-Qa. Uses httpRequest, jira. Scheduled trigger; 68 nodes.

HTTP Request, Jira
Web Scraping

Spotify-Sync-Surrealdb-V1. Uses httpRequest, n8n-nodes-surrealdb, spotify. Scheduled trigger; 62 nodes.

HTTP Request, N8N Nodes Surrealdb, Spotify
Web Scraping

As n8n instances scale, teams often lose track of sub-workflows—who uses them, where they are referenced, and whether they can be safely updated. This leads to inefficiencies like unnecessary copies o

HTTP Request, n8n, N8N Trigger +1