Help / Notifications

Notification channels

Email, Slack, Microsoft Teams and signed HTTPS webhooks — how each one works, when to use it, and how to set them up.

Why channels matter

A saved-search alert that lands in your personal inbox at 6am Sunday is a saved-search alert nobody acts on. The channels you configure determine whether alerts reach the right person at the right time. Manage them at Account → Notification channels; each saved search picks which channels to dispatch through.

What sets an alert off

Most alerts come from a saved search — a new notice matches the filters you saved, and it is dispatched to the channels that search picks. Two do not, and it is worth knowing which, because there is no saved search behind them to check:

  • Tracked suppliers — a company you track is named on a new award notice. Driven by your tracked list, not a search.
  • Framework lots — the lots on live framework agreements that match what your workspace profile says you do. You get one summary when we first match you, then a note when a new matching lot is published or an agreement opens to new suppliers. Off by default like every other alert here — switch them on from the matches panel on Frameworks. Driven by your profile, so you need one written before there is anything to send.

Channel comparison

Four delivery channels, each with its own strengths. Pick the ones that match how your team actually works.

Email

Setup: none — uses your account address. Best for high-signal, low-volume alerts and an audit trail. Watch out for slow reaction time on weekends.

#

Slack

Setup: ~5 min — install webhook app, paste URL. Best for real-time team triage. Watch out for noise if volume creeps up.

M

Microsoft Teams

Setup: ~5 min — Power Automate Workflows in Teams. Best for teams already on Microsoft 365. Watch out for the Workflows UI that changes occasionally.

</>

Webhook

Setup: requires you to host an HTTPS receiver. Best for CRM sync and custom automation. Watch out for operational overhead — you maintain the receiver.

Setting each one up

Email

Default channel; one address per row, up to five rows per account. The first one is seeded from your account email at signup. Add team-distribution addresses (e.g. bids@yourorg.co.uk) so a search dispatches to the whole desk rather than one inbox.

Best for: high-signal, low-volume alerts. Audit-friendly — every alert is a searchable record.

Slack

Per-user incoming webhook URL. To set one up:

  1. 1

    In Slack, go to your workspace's Apps directory and search for "Incoming Webhooks".

  2. 2

    Install it; pick the channel that should receive the alerts (a dedicated #bid-alerts beats #general).

  3. 3

    Slack gives you a webhook URL like https://hooks.slack.com/services/TXXX/BXXX/.... Paste it into your notification settings.

We validate the URL against the Slack hostname allowlist — no other URL shape is accepted, so the platform can't be repurposed as an SSRF proxy.

Microsoft Teams

A per-channel webhook, via Power Automate Workflows — Microsoft retired the old Teams "Incoming Webhook" connector, so this is the current, supported way.

  1. 1

    In Teams, click the next to the channel → Workflows (or open Power Automate and create a flow).

  2. 2

    Choose the template "Send webhook alerts to a channel", pick the team and channel, then save.

  3. 3

    Workflows gives you a webhook URL on *.logic.azure.com (or *.powerplatform.com). Paste it into your notification settings — we post a ready-made Adaptive Card, so there's nothing else to configure in the flow.

Signed HTTPS webhooks

Generic webhook delivery to an HTTPS endpoint you control — useful for piping alerts into a CRM (HubSpot / Salesforce custom inbound), a Jira / Linear automation, or a homegrown alert router.

Secret revealed once. At creation we generate an HMAC-SHA-256 signing secret and surface it once on the success screen. Save it in your password manager — if you lose it, revoke + recreate.

Payloads are JSON with a stable shape per event type. Your receiver verifies the X-DataScene-Signature header to confirm authenticity. We retry on 5xx with exponential backoff; 4xx is treated as fatal.

Per-search routing patterns

Each saved search picks its own channel set. Common patterns we see:

High-value alerts

Slack + email

Fast triage in chat, durable record in email.

Batched digest

Email only

One email per search per run, listing every new match together — quieter than a Slack ping per notice.

CRM ingestion

Webhook only

No human reads it; the CRM is the surface.

Critical accounts

All four channels

A bid you can't afford to miss should be redundant.

Testing

Every saved search has a Send test button on the list page. It dispatches a synthetic message to every configured channel and shows the per-channel result. Use it after adding a Slack webhook to confirm the URL points where you expect.

Webhook security

Webhook URLs are encrypted at rest (AES-256-GCM). The plaintext is decrypted in-memory at dispatch time and never logged. Team members within your workspace don't see each other's webhook URLs — only a short display hint like hooks.slack.com/T123….