SECOPS

Discord Webhook Token Exposure Check

Searches your GitHub org for any Discord webhook URLs committed into source code, and pages on-call via PagerDuty when a live token is found exposed in a repository.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerschedule
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily schedule fires
  • ActionSearch GitHub org for webhook URL patternGitHubGitHub
  • ActionVerify each webhook is live via DiscordDiscordDiscord
  • LogicKeep only confirmed-active exposures
  • OutputPage on-call via PagerDuty per live tokenPagerDutyPagerDuty

What it does

Discord webhook URLs embed a secret token; once one lands in a public or shared repo, anyone can post to your channel. This flow scans your GitHub organization for the `discord.com/api/webhooks/` pattern, confirms the webhook is still live, and escalates the active exposures.

When to use it

Run it when developers wire Discord notifications into apps and occasionally hardcode the webhook URL instead of using a secret. A daily scan turns a slow-burn leak into an immediate page before an attacker abuses the endpoint.

How it works

  1. 1A daily schedule starts the scan.
  2. 2A GitHub code search runs across all org repos for the Discord webhook URL pattern.
  3. 3For each match, the flow calls the webhook's metadata endpoint on Discord to check whether the token is still valid and which channel it targets.
  4. 4A logic step keeps only live, confirmed-active webhooks and discards dead or already-rotated ones.
  5. 5A PagerDuty incident is raised per live exposure with the repo path, file, and target channel so on-call can rotate it.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Connect DiscordCommunity channels + voice + bots.
  3. 3
    Connect PagerDutyIncidents, on-call, escalations.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    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.