Integration
Slack + Bastle
What syncs from Slack, what it makes possible, and how to connect it.
This connector works and can be connected today, with edge cases still being closed. Check the first month against the source before you rely on it.
What does the Slack integration do?
What syncs
Bastle reads the following from Slack and normalises it into the same entities every other source produces. Ingestion is read-only: nothing is created, changed or cancelled upstream.
- Outbound: metric values read from the daily metric snapshots written by the metrics engine. Slack never computes a number itself.
- Outbound: event alert messages for new customers, cancellations and failed charges, with per-event toggles.
- Outbound: scheduled metric reports showing a metric, its current value, the change against the previous snapshot and the period context.
- Inbound: the slash command, which answers with a named metric on demand.
- Cadence: slash commands answer immediately. Scheduled report delivery is not wired to a sender yet.
Once connected
What Slack data unlocks
Connecting a source is not the point; what you can answer afterwards is. These are the questions this data makes answerable.
Metrics without opening a dashboard
Asking for a metric in the channel where the question came up beats a browser tab, and the answer comes from the same snapshots the dashboard reads.
One number, one definition
Slack formats values from the metric snapshots and does no arithmetic of its own, so a figure quoted in a channel cannot disagree with the dashboard.
Alerts scoped to what matters
New customers, cancellations and failed charges can each be toggled independently, so a busy channel is not the reason a team mutes the integration.
Setup
Connecting Slack
The whole flow, start to first chart. No implementation call and no data engineer.
- Create a Slack app for your workspaceIt provides the bot token used to post messages and the signing secret used to verify inbound requests.
- Add the slash commandPoint it at /api/webhooks/slack. Requests are verified against the signing secret with a timestamp check before anything is processed.
- Choose a channel and alert togglesSettings → Integrations holds the Slack configuration: destination channel, report cadence, and which events raise an alert.
- Ask for a metricRun the slash command with a metric name — or with help to list what is available — and Bastle answers from the latest snapshot.
Slack is an output, not a source
It is worth being explicit: connecting Slack does not add data to Bastle. It never creates a billing source, never contributes plans or charges, and never affects a metric. It is a delivery surface for numbers computed elsewhere.
Where the numbers come from
Every value posted to Slack is read from the daily metric snapshots written by the metrics engine, and this connector only formats them — integer cents become a currency string at the presentation edge and nowhere earlier. That constraint is the reason a number quoted in a channel and the same number on the dashboard cannot drift apart.
Request verification
Inbound Slack requests carry a signature and a timestamp. Both are checked, with a timing-safe comparison, before any workspace data is read. An unverified request gets nothing.
What is not wired yet
The message formatting for event alerts and scheduled reports is written and tested, and the slash command answers live. What is missing is the scheduler that delivers those reports on a cadence without being asked. Until that lands, treat Slack as an on-demand surface: ask and it answers, but do not expect a Monday morning report to arrive by itself.
Bastle is free while in beta, this integration included.
Related
Other sources
Companies billing through Slack usually have at least one of these in the stack too.
- WebhooksLiveBastle sends outbound webhooks for subscription, charge, trial and dunning events derived from every connected source, signed with an HMAC header and retried on a backoff schedule across roughly fourteen hours. Endpoints subscribe with exact event types or wildcard patterns, and delivery history is visible in settings. This is shipped and self-serve today.
- Universal APILiveBastle's write API accepts subscription data from any billing system, including one you built yourself. A single batched import endpoint upserts plans, customers, subscriptions, charges and refunds against your own external ids, and a read API returns the same metrics the dashboard renders. It is available today, self-serve, with scoped API keys.
- StripeBetaThe Stripe integration turns a Stripe account into Bastle's subscription data model: prices become plans, subscriptions carry their add-ons and discounts, and charges carry the Stripe fee from the balance transaction. Ongoing changes arrive over a signature-verified webhook endpoint within seconds of happening in Stripe, so MRR, churn and failed-payment state track the billing account rather than a nightly export.
Slack and Bastle: common questions
Does connecting Slack send my revenue data to Slack?
Can Slack numbers disagree with the dashboard?
Do scheduled reports work today?
Which events can raise an alert?
Connect Slack and see your own history.
Bastle backfills what Slack will serve, then keeps current over webhooks — usually a couple of minutes before the first real chart. Free while in beta, no card required.