AutomationFlowsWeb Scraping › Weekly Brief

Weekly Brief

weekly-brief. Uses httpRequest. Scheduled trigger; 4 nodes.

Cron / scheduled trigger★★☆☆☆ complexity4 nodesHTTP Request
Web Scraping Trigger: Cron / scheduled Nodes: 4 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": "weekly-brief",
  "active": true,
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 13 * * 0"
            }
          ]
        }
      },
      "name": "Sunday 13:00 UTC (09:00 ET)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        240,
        300
      ],
      "id": "trigger-sunday"
    },
    {
      "parameters": {
        "url": "={{ $env.SUPABASE_URL }}/rest/v1/runs",
        "method": "POST",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $env.SUPABASE_SERVICE_ROLE_KEY }}"
            },
            {
              "name": "Authorization",
              "value": "=Bearer {{ $env.SUPABASE_SERVICE_ROLE_KEY }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Prefer",
              "value": "return=minimal"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"kind\": \"weekly_brief_trigger\",\n  \"agent_id\": \"weekly-brief\",\n  \"exit_status\": \"queued\",\n  \"start_time\": \"{{ $now.toISO() }}\",\n  \"end_time\": \"{{ $now.toISO() }}\",\n  \"token_cost\": 0\n}",
        "options": {}
      },
      "name": "Log brief trigger",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        460,
        300
      ],
      "id": "log-trigger"
    },
    {
      "parameters": {
        "url": "=https://api.telegram.org/bot{{ $env.TELEGRAM_BOT_TOKEN }}/sendMessage",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"chat_id\": \"{{ $env.TELEGRAM_CHAT_ID }}\",\n  \"text\": \"\ud83d\udcd1 Weekly Brief queued for {{ $now.toFormat('yyyy-MM-dd') }}. A worker will render the PDF, upload to R2, stage a Gmail digest draft, and reply with the link. No automatic email \u2014 Shako reviews before sending.\"\n}",
        "options": {}
      },
      "name": "Telegram notify",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        680,
        300
      ],
      "id": "telegram-notify"
    },
    {
      "parameters": {
        "url": "={{ $env.PHASE4_DIGEST_WORKER_URL || 'https://placeholder.invalid' }}/render-weekly-brief",
        "method": "POST",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "X-Auth-Token",
              "value": "={{ $env.PERCEPTION_WORKER_AUTH_TOKEN || $env.PHASE5_WORKER_AUTH_TOKEN || $env.PHASE4_WORKER_AUTH_TOKEN || '' }}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={ \"trigger\": \"weekly_brief\", \"fired_at\": \"{{ $now.toISO() }}\", \"stage_gmail_digest\": true }",
        "options": {
          "timeout": 300000
        }
      },
      "name": "Fire brief render + Gmail digest",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        300
      ],
      "id": "fire-render",
      "onError": "continueRegularOutput",
      "notes": "Requires PHASE4_DIGEST_WORKER_URL env var (Python worker on Railway). Until deployed, this node fails gracefully; Telegram notify still fires so Shako knows the brief slot has arrived."
    }
  ],
  "connections": {
    "Sunday 13:00 UTC (09:00 ET)": {
      "main": [
        [
          {
            "node": "Log brief trigger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log brief trigger": {
      "main": [
        [
          {
            "node": "Telegram notify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram notify": {
      "main": [
        [
          {
            "node": "Fire brief render + Gmail digest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "description": "Phase 3 CGM-05 + Phase 4 ACD-03 \u2014 Sunday 09:00 ET (13:00 UTC) weekly brief trigger. Logs a 'weekly_brief_trigger' runs row, pings Telegram so Shako knows the brief is incoming, then calls the project worker which (1) renders the PDF via scripts.communicator.weekly_brief, (2) uploads to R2 via scripts.ledger.upload_artifact, (3) stages a Gmail digest draft via scripts.communicator.gmail_digest.stage_weekly_digest. Manual-send mode: every Gmail digest stays in Drafts; Shako reviews and sends.",
    "phase": "3+4",
    "requirement": "CGM-05 + ACD-03",
    "owner_locked": "2026-05-16 Sunday 09:00 local (ET while in Boston/Durham)"
  }
}
Pro

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

About this workflow

weekly-brief. Uses httpRequest. Scheduled trigger; 4 nodes.

Source: https://github.com/navyforses/ALEKSANDRA_BRAIN_v4/blob/db38e133700f3d3e2d2a964b1b6760a77d62d85f/workflows/weekly_brief.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

Absen Otomatis. Uses ssh, httpRequest. Scheduled trigger; 11 nodes.

Ssh, HTTP Request
Web Scraping

ELYVN Deploy Verifier. Uses httpRequest. Scheduled trigger; 6 nodes.

HTTP Request
Web Scraping

03 · Auditoria Diária — Carlos. Uses httpRequest. Scheduled trigger; 6 nodes.

HTTP Request
Web Scraping

Fechamento Mensal - Automação. Uses httpRequest, emailSend. Scheduled trigger; 6 nodes.

HTTP Request, Email Send
Web Scraping

Scheduled-Api-Call. Uses httpRequest. Scheduled trigger; 5 nodes.

HTTP Request