BillSnap

Create a Slack webhook

BillSnap posts anomaly alerts to Slack via an Incoming Webhook URL — a simple per-channel POST endpoint. Takes ~2 minutes to create.

Permission needed: Slack workspace member with the ability to install apps. In most workspaces this is everyone; in locked-down orgs it may require Workspace Owner approval. If your org restricts app installs, the request flows to a Workspace Admin and you'll get a notification when approved.

1 Open api.slack.com/apps

Go to api.slack.com/apps and sign in if prompted. You'll land on the "Your Apps" page:

Slack API Your Apps page with a green Create New App button on the right and a Marketplace Agreement panel below.
api.slack.com/apps — the central management page for any Slack app you've created or installed.

If this is your first Slack app, you'll see the Slack Marketplace Agreement at the bottom. You can click I Agree if you're planning to list your app publicly later, but for an internal BillSnap webhook it's optional — the Create New App flow doesn't require it.

2 Click "Create New App"

The green Create New App button (top right) opens a modal asking how you want to configure the app:

Create an app modal with two options: From a manifest and From scratch.
The "Create an app" modal. Two paths: configure via YAML manifest, or click through Slack's UI. We'll use "From scratch".

Click From scratch. The manifest option is useful if you're scripting many apps; for one webhook it's overkill.

3 Name the app and choose your workspace

The next dialog asks for two things:

Name app dialog with App Name 'BillSnap Alerts' and a 'Select a workspace' dropdown, plus Create App button (currently disabled).
Name the app something memorable (e.g., "BillSnap Alerts") and pick the workspace where alerts will post.
  1. App Name: type BillSnap Alerts (or anything you'll recognize in your Slack app list later). You can rename later from the app's Basic Information page.
  2. Pick a workspace to develop your app in: open the dropdown and pick the workspace where you want alerts to land. If you don't see the workspace you want, click "Sign into a different workspace" below the dropdown.

Click Create App. (The button stays disabled until both fields are filled.)

Heads-up: Slack notes that you cannot change the workspace later. If you pick the wrong workspace by mistake, delete the app from Basic Information and start over from step 2 — it's ~30 seconds of redo.

4 Activate Incoming Webhooks

You're now on the app's settings page. In the left sidebar, under Features, click Incoming Webhooks:

Incoming Webhooks settings page with an Activate Incoming Webhooks toggle switched On in the top right.
Incoming Webhooks settings. Toggle the switch in the top-right corner to On.

Toggle Activate Incoming Webhooks to On. The page expands to show a "Webhook URLs for Your Workspace" section near the bottom. Scroll down and click Add New Webhook to Workspace.

Slack opens an OAuth authorization page asking which channel the webhook should post to:

  • Pick a channel (we recommend creating a dedicated #cost-alerts channel beforehand so alerts don't clutter an existing channel).
  • Click Allow.

You're returned to the Incoming Webhooks settings page, and the new webhook URL appears in the table at the bottom:

https://hooks.slack.com/services/T0XXXX/B0YYYY/abc123def456ghi789

5 Copy the URL into BillSnap

Click the Copy button next to the URL in the webhook table.

Treat this URL like a password. Anyone with it can post to your channel as the BillSnap app. Don't paste it into public repos, docs, or screenshots. Slack lets you revoke + regenerate from the same page if it ever leaks.

Go back to BillSnap's /connect page (or your existing project's settings on /dashboard). Paste the URL into the Slack webhook URL field and save.

Every morning at 09:00 UTC, when BillSnap detects an anomaly, you'll get a message in your chosen channel that looks like this:

B
BillSnap Alerts App   today at 9:01 AM
🚨 3 SKUs anomalous on my-company-prod · 2026-05-24
Total ≈ $254.88 above 14-day baseline.
ServiceSKUTodayMeanz
BigQueryAnalysis$187.42$12.1851.39
Compute EngineN2 Custom Instance Core$94.83$28.5513.47
Cloud StorageStandard Storage US$22.10$8.7412.72
Open in BillSnap →

Continue to /connect → See full walkthrough

Troubleshooting

"This app is restricted" or admin approval required

Your workspace requires admin approval for new apps. After clicking Create App, an approval request goes to a Workspace Admin. Reach out to them on Slack; once they approve, the app appears under Your Apps at api.slack.com/apps and you can finish.

I want alerts in multiple channels

Repeat Add New Webhook to Workspace (step 4) and pick a different channel. Each webhook URL points at one channel. BillSnap stores one Slack URL per project, so for multiple channels you'd configure multiple projects, or pick one primary channel.

How do I rotate or revoke the URL?

On the Incoming Webhooks settings page, find the webhook row and click Remove. The URL stops working immediately. Click Add New Webhook to Workspace again to mint a fresh URL; remember to update it in BillSnap's project settings.

Can I test the URL before saving it in BillSnap?

Yes. Run this in a terminal:

curl -X POST -H 'Content-type: application/json' \
  --data '{"text":"BillSnap connectivity test"}' \
  https://hooks.slack.com/services/T0XXXX/B0YYYY/abc123...

If you see "BillSnap connectivity test" in the chosen channel, the URL is good.