SECOPS

Confirmed Phishing Containment Actions

When an analyst confirms a phishing report is malicious, this workflow blocks the sender, pages on-call if the campaign is widespread.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerwebhook
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerAnalyst confirms malicious via Slack actionHTTP webhook
  • LogicBranch on recipient blast radius
  • ActionBlock sender domain and URLsCloudflareCloudflare
  • ActionPage on-call for widespread campaignPagerDutyPagerDuty
  • OutputAppend containment actions to audit casePostgreSQLPostgres

What it does

Drives the response side once a verdict is in. On a confirmed-malicious decision it executes containment: submits the sender domain and URLs to the blocklist, notifies affected recipients, escalates to on-call when the blast radius is large, and logs every action taken.

When to use it

Use this after triage and enrichment, when you want consistent, fast containment instead of ad-hoc manual steps. Ideal for teams that need an auditable record of exactly what was blocked and when.

How it works

  1. 1A Slack approval interaction (analyst marks a case 'confirmed malicious') fires the trigger via webhook.
  2. 2A branch checks recipient count: campaigns above the threshold escalate, smaller ones proceed to standard containment.
  3. 3Containment actions submit the malicious domain and URLs to Cloudflare for blocking.
  4. 4For widespread campaigns an incident is opened in PagerDuty to page the on-call responder.
  5. 5The full set of actions and timestamps is appended to the audit case record in Postgres.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect HTTP webhookTrigger any URL on agent actions.
  2. 2
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  3. 3
    Connect PagerDutyIncidents, on-call, escalations.
  4. 4
    Connect PostgresAny Postgres URL — query, write, migrate.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.