Use case
Weekly standup prompts, daily digests, fail alerts. All on cron.
Slack Workflow Builder is great inside one channel for one cadence. For team-wide digests, multi-timezone standup prompts, and fan-out to multiple channels, an external cron driving Slack incoming webhooks is the cleaner pattern. Crontap is the clock.
Free plan · no credit card required
The problem
Why this is painful without the right tool
- Slack Workflow Builder schedules are per-channel and bound to the Workflow editor; cross-channel and cross-team reuse is awkward.
- Workflow Builder cadence is limited to coarse intervals; cron-style precision (weekdays at 09:30 in each member's timezone) is not expressible.
- Slack reminders fire as one-off DMs from /remind; they do not produce a structured channel post with blocks and attachments.
- Multi-channel digests (the same content posted to engineering plus marketing plus a customer channel) need a fan-out somewhere; Workflow Builder makes this hard.
The fix
How Crontap solves it
For each digest, create a Slack incoming webhook URL on the target channel. Paste into Crontap and pick a cron. The payload is a Slack-shaped JSON block (text, blocks, or both). Crontap fires on time, retries on 5xx, and alerts on failure via email / webhook (a different webhook so the failure does not silently miss the same channel that just stopped working).
30 9 * * 1-5For dynamic content (yesterday's deploys, today's on-call, this week's open PRs), the cleanest pattern is to point Crontap at a small backend endpoint that builds the Slack-shaped JSON and posts it to the webhook. That keeps the data layer in your code and the schedule layer in Crontap.
For static content (a weekly standup prompt, a Friday retrospective reminder), the JSON payload can live directly in Crontap. Either pattern works; the dynamic pattern scales better as the digest gets richer.
For multi-channel fan-out, one Crontap schedule per channel is the simplest pattern. The dashboard groups them; the failure alerting routes per channel.
FAQ
Common questions
- What's the shortest interval Crontap supports?
- Every 1 minute on paid plans. Free tier available for slower cadences. Most Slack digests run at every hour, daily, or weekdays-only; minute cadence shows up for fail-alert pings rather than digest content.
- Can I post rich blocks and attachments?
- Yes. Slack incoming webhooks accept the standard Block Kit JSON. Paste it into the schedule's payload field; Crontap sends it as-is. For variables that change per run, point Crontap at a small backend that renders the JSON and posts to Slack.
- How do I avoid losing alerts when the same Slack channel breaks?
- Wire the failure integration to a different channel or to email. If the digest channel breaks (channel deleted, webhook revoked), the failure alert still lands somewhere you actually see it.
Related guides
Adjacent use cases
Ready to fix it?
Point Crontap at any URL. Pick any cron. Done.
WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.
Free forever tier ・ No credit card required
/wp-cron.php?doing_wp_cron=1
Schedule
"every 5 minutes"
Next
in 23s