Daily Segment delivery check with Slack and Linear alerts
Every morning, find out whether your Segment destinations are actually receiving data, and only hear about it when delivery starts failing.
Every morning at 8am, check whether my Segment event pipeline is actually delivering data to its destinations, and only tell me about it when something is wrong.
Setup step, before the first run. Ask me to paste the list of Segment destination IDs I want watched and store it in the workflow config. This matters: the Segment integration has no operation that lists all destinations in a workspace, so this explicit list is the only source of truth and the workflow must never try to enumerate them. For each destination let me also record a friendly name and the downstream tool it feeds, for example 'Amplitude, product analytics' or 'BigQuery, warehouse and exec dashboards'. Also let me configure the warning threshold (default 2 percent), the severe threshold (default 10 percent), the Slack channel for my data engineering team, the Linear team that owns pipeline issues, and which weekday the all clear line lands on (default Monday).
On each run, for every destination ID in my config, call Segment's List Delivery Metrics Summary from Destination operation for the last 24 hours ending at the run time. Read the successes, failures and retries. Work out a failure rate as failures divided by successes plus failures, expressed as a percentage. Treat retries as a supporting signal rather than a pass or fail: a destination whose retries have climbed sharply is worth mentioning even when its failure rate is still under the threshold, because it usually means the destination is degrading rather than healthy.
For every destination that crosses the warning threshold, fetch that destination's full configuration with Segment's Get Destination operation. Use it for context in the alert: the destination name and type, whether it is enabled, and any setting that plausibly explains the failures. Do not fetch configuration for healthy destinations, there is no reason to spend the call.
If at least one destination is degraded, post a single Slack message to my data engineering channel with Slack's Send a Message operation. One message per run covering every degraded destination, never one message per destination. Lead with a one line summary such as '3 of 9 Segment destinations degraded in the last 24h'. Then list each degraded destination worst first with its friendly name and type, the failure rate, the failure count against total attempted, the retry count, and one plain-language line naming which downstream tool is therefore missing data, for example 'product analytics is undercounting signups since about 02:00'. Close with a short read on blast radius: whether this looks like one flaky vendor destination or a pattern across several destinations, which usually points at the source or the pipeline itself rather than any one vendor. Keep it scannable, this is a message someone reads on their phone before standup.
For any destination sustaining a severe failure rate above the severe threshold, also escalate into Linear. First use Linear's Search Issues operation to look for an existing open issue naming that destination. If one is already open, use Add Comment to Issue to append the latest 24 hour numbers and the current date instead of filing a duplicate, and note in the Slack message that this is an ongoing breakage rather than a new one. If there is no open issue, use Create Issue in my configured team. Title it with the destination name and the problem, for example 'Segment delivery failing to Amplitude (14 percent over 24h)'. In the description include the destination friendly name and id, its type, the successes, failures and retries, the calculated failure rate, the exact time window checked, the downstream tool affected, and any configuration detail from Get Destination that gives the person triaging a head start.
When every destination is under the warning threshold, post nothing at all. No daily 'all good' message, no empty digest. Silence is the healthy state.
The one exception: once a week on my configured day, if that morning's check is clean, post a single short line to the same channel so I know the check is still alive, for example 'Segment delivery check ran, all 9 destinations healthy over the last 24h, worst failure rate 0.3 percent.' One line, no formatting, no breakdown. If that day's check does find a degraded destination, the normal alert replaces the all clear rather than posting both.
Handle failures honestly. If the metrics call fails for one destination, carry on with the others and note the one that could not be checked rather than silently dropping it. If Segment returns a 403, that usually means the workspace is not on a Team or Business plan, since the Public API is gated to those tiers. Say that in plain language rather than reporting zero failures, because a check that cannot run must never look like a check that passed.
Framing note for whoever builds this: Segment does ship native Connections Alerting on delivery rate for individual destinations, so the point of this workflow is not per-destination alerting. The value is the cross system triage: correlating every destination I depend on into one digest, judging how far the damage spreads into the tools my team actually uses, and escalating only sustained breakage into Linear so the genuinely broken things get triaged instead of scrolling past in Slack. Keep that correlated, judgement-led shape rather than degrading into one alert per destination.
What does this prompt do?
- Checks the Segment destinations you list every morning and works out how much data each one failed to receive over the last 24 hours.
- Posts one Slack message to your data team naming the destinations that are degraded, the failure counts, and which downstream tools are missing data as a result.
- Opens a Linear issue for any destination that is badly broken, so a real outage gets triaged instead of scrolling past in chat.
- Stays completely silent when everything is healthy, apart from one short all clear line each week so you know the check is still running.
What do I need to use this?
- A Segment workspace on a paid Team or Business plan. Programmatic access is not available on free workspaces, so the check will report that it is blocked rather than quietly reporting everything as healthy.
- The list of Segment destinations you want watched. Segment cannot hand over a full list of your destinations automatically, so you paste in the ones that matter as a one time setup step.
- A friendly name for each destination and the downstream tool it feeds, so alerts read as plain language instead of a string of ids.
- A Slack workspace and the channel your data team actually reads.
- A Linear account and the team that should own pipeline breakages.
How can I customize it?
- Change the thresholds. By default anything failing more than 2 percent of deliveries gets named in Slack, and anything above 10 percent also opens a Linear issue.
- Change the timing, the Slack channel, or the day of the week the short all clear line lands.
- Add or remove destinations as your pipeline changes, and keep the note about which downstream tool each one feeds so the blast radius stays accurate.
FAQs
Will this work on a free Segment plan?
Does this just replace Segment's built in alerting?
Will it fill my channel with noise every morning?
How does it decide a destination is degraded?
Why do I have to paste in the destinations myself?
What happens if the same destination breaks for several days?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
On the first Monday of every month, find the alarms nobody watches and the monitoring you quietly pay for, then get a costed cleanup list in Slack and Linear.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Know your data pipeline broke before your dashboards start lying.
Run one delivery check across every Segment destination you depend on each morning, and only hear about it when something is actually wrong.