voidly
Integrations

Voidly / Slack

In the loop.
In your channel.

Incident alerts where your team works.
Choose a country. Set a threshold.

Connect Slack
your-channel Incoming webhook
VoidlyIncident alert

Country Type Evidence

Your countryYour thresholdYour channel
Message structure only · not a live alert

01 / Start in Slack

Choose the channel.

Create an incoming webhook in your own Slack app. Slack asks you to authorize its destination channel.

Open Slack app settings ↗
  1. Visit api.slack.com/apps and click Create New App. Pick From scratch, name it “Voidly Alerts”, and choose your workspace.

  2. In your new app’s sidebar, open Incoming Webhooks and toggle Activate Incoming Webhooks on.

  3. Click Add New Webhook to Workspace, pick the channel where you want incidents posted, and approve.

  4. Copy the Webhook URL (it starts with https://hooks.slack.com/services/) and paste it below.

  5. Click Send test message to verify, then Connect Slack to start receiving real alerts.

02 / Connect your channel

Set the signal.

Incoming webhook · no Voidly account.
Each action below contacts the real service.

Keep this URL private. It lets its holder post to the channel and manage these subscriptions. Get a webhook URL →

Significant censorship incidents

Test sends a message without saving a subscription. Connect sends a message, then saves the selected filters. Neither action runs until you click.

Subscriptions for this webhook

Lookup sends the webhook URL to Voidly’s existing management endpoint. Nothing is looked up when you paste or leave the field.

Enter your webhook, then load its subscriptions.

What an alert looks like

Published illustrative example. These values are not a current incident or a performance measurement.

Example message

Iran — CRITICAL

DNS blocking of twitter.com detected across 3 ISPs

Country
Iran (IR)
Type
blocking
Severity
CRITICAL
Confidence
95% (example)
View incidentCountry page
Incident IR-2026-0142 · Detected 2026-04-25T12:00:00Z

In a delivered message, View incident opens its report and Country page opens the country page. This sample has no incident destination. A confidence score is not proof of intentional censorship.

Explore the actual incident archive →
Privacy, permissions & delivery
  • The Slack webhook URL is the credential. Its holder can post to that channel. Voidly stores the URL to deliver alerts; a hash-derived subscriber identifier does not replace the stored credential.
  • Subscriptions use a SHA-256-derived identifier from the webhook URL. This form does not request a Voidly account, your name or your email address.
  • Voidly’s current flow uses incoming webhooks, with no hosted OAuth install or bot user. Slack’s own app setup still asks you to authorize the destination channel. Private-channel setup requires membership in that channel.
  • Ordinary Slack hooks.slack.com URLs are supported. This backend does not accept the separate GovSlack domain.
  • Incident delivery uses X-Voidly-Signature only when a valid signing secret is configured; otherwise it declares X-Voidly-Signature-Status: unsigned-no-secret. Slack ignores these custom headers. Do not rely on them to verify a forwarded Slack message: the delivery code signs the original incident envelope before the Slack formatting step. The initial connection/test message does not include that signature.
  • Disconnect removes the subscription. You can also revoke the webhook in Slack. A queued message is marked failed after five failed delivery attempts, with backoff between attempts; this does not automatically disable the subscription. Disconnect does not remove messages already posted in Slack.
Slack’s incoming-webhook documentation ↗Published Voidly setup →
Planned Slack app features

The published v2 roadmap describes a full Slack app. These features are not available in the incoming-webhook flow:

  • /voidly slash command for ad-hoc country status and domain checks
  • OAuth install flow with a bot user, replacing manual webhook setup
  • Daily digest and weekly summary messages
  • Interactive buttons for incident triage and acknowledgement

More ways in

Connect your workflow.