Direct answer. For a small team on a paid Slack plan, a scheduled Workflow Builder form is enough. Once you need reminders, per-person time zones and participation tracking, a ready-made standup bot such as Geekbot adds them. Build a custom bot only if you want updates pre-filled from Jira or GitHub and blockers routed to whoever can clear them.
This is for engineering and ops leads running teams of 3 to 100 on Slack, often across time zones. Most standup articles are vendor roundups that rank their own bot first. We build Slack bots, so here's the builder's view, including when you don't need one.
Why standups move into Slack
A live standup needs everyone in one call at one time. Across time zones, someone joins at the wrong hour. A written standup in Slack lets people answer when their day starts, saves a meeting, and leaves a record you can search. For the wider picture of what Slack can automate, see Slack workflow automation.
The catch: a written update is easy to post and easy to ignore. Keep that in mind for every option below.
Option 1: a scheduled Workflow Builder form
Workflow Builder is Slack's no-code automation tool. It's a paid feature, included in the Pro, Business+ and Enterprise plans, not the Free plan (Slack). By default anyone on a paid plan can build workflows, unless admins have restricted it (Slack Help).
Slack's own help suggests the Send a scheduled message template for daily standups (Slack Help). To turn it into a standup:
- Open Agents & tools, then Workflows, then Templates, and pick Send a scheduled message.
- Set the start date and time, and a frequency such as every weekday.
- Post the message to #standup with a button that continues the workflow.
- Add a Collect info in a form step with three questions: what you did yesterday, what you'll do today, and "Anything blocking you?" as a Yes/No dropdown.
- Add a Send a message to a channel step that posts the person's name and all form responses to #standup.
- Name it, add a second workflow manager, and publish.
Slack's developer workshop walks through the same standup form, including the weekday schedule (Slack Developers).
Where it stops. There's one schedule for the whole channel. Out of the box it doesn't chase people who skip, and there's no view of who answered. You can build some of that with extra steps, but then you're maintaining a small app in a no-code editor.
Optional AI recap. Slack's pricing page lists AI steps in Workflow Builder, such as channel summaries for daily recaps (Slack pricing). Check which plans include it. Our take on Slack's AI by plan is in is Slack AI worth it.
Option 2: a ready-made standup bot
A standup bot is a Slack app that DMs each person, collects answers and posts them to a channel. Geekbot is the established example. Others exist, such as Standuply, Range and asyncmate. We haven't tested them side by side, so we won't rank them.
What Geekbot documents on its own site (Geekbot, Geekbot pricing):
- Local time. You can set the standup to each person's local time zone, or wait until they appear online.
- Reminders. Each person can set follow-up reminders if they haven't answered. They're off by default.
- Participation. An engagement summary shows who answered, who missed it, and who was out of office.
- History. Answers go to a channel you choose and stay in a web dashboard, with CSV export.
- Integrations. Webhooks and an API. Jira, Google Calendar and Asana are listed under the Enterprise plan's integrations.
Two things to check before you commit. First, plans: there's a free tier for small teams, and features like engagement summaries, API access and Geekbot AI are listed on paid plans. Pricing is per participant; see the vendor's pricing page. Second, data: answers live in the vendor's system. Geekbot offers a dedicated database instance on Enterprise. If you have a security review, ask where the data sits first.
For most teams past a handful of people, this is the right stop.
Option 3: a custom standup bot, and when it's worth it
A custom bot is your own Slack app. It costs more effort than options 1 and 2, so it needs a reason. We see four.
1. People retype what Jira and GitHub already know
Yesterday's closed tickets, merged pull requests and reviews are already recorded. A custom bot drafts each person's update from that activity. They edit it and send. The update takes less time to write, because nobody has to remember what they did.
2. Blockers need an owner, not a digest
When someone answers "blocked", the bot opens or links a ticket and pings the person or team who can unblock it, right away. The blocker doesn't wait in the daily summary.
3. The standup must follow your own rules
On-call rotations, client channels in Slack Connect, a holiday calendar, different questions per team. When the rules are yours, the logic is easier to keep in code than in a stack of workflow branches.
4. Standup data must stay with you
Some client contracts and security reviews require data to stay in your workspace and your storage. A custom bot keeps it there.
Here's the flow we build:
The build basics are a Slack app on Slack's Bolt framework, a scheduled job, read access to the Jira and GitHub APIs, and a mapping between each person's Slack, Jira and GitHub accounts. That mapping is the part teams underestimate. For an example of routing logic living in code, see our Slack bot for Jira routing. If you're wondering about budget, read what a custom Slack bot costs.
Most teams should stop at option 1 or 2. That's fine.
Whatever you pick: the blocker rule
The common failure isn't collecting updates. It's that nobody reads the summary.
One hands-on test ran Geekbot with a nine-person team for about eight months. After a few weeks people stopped opening the summary channel, and a blocker posted on Tuesday sometimes wasn't picked up until Thursday. What helped was a separate alert for the "blocked" field, so blockers pinged a channel directly (Remote Work Central). That's one team's experience, and a pattern worth checking for in yours.
So, two rules:
- Send blockers somewhere separate, to a person or a channel that acts on them, not only into the summary.
- After a month, check whether anyone reads the summary channel. Answers coming in isn't the same as anyone reading them.
Comparison
| Workflow Builder form | Ready-made bot (e.g. Geekbot) | Custom bot | |
|---|---|---|---|
| Setup | A template plus a form step | Install the app, pick questions and a schedule | A build: Slack app, scheduler, API access, account mapping |
| Works on Slack Free | No, paid plans only | Depends on the bot | Yes, within Free's app limit |
| Per-person time zones | No, one schedule | Yes (Geekbot: user's local time) | Yes |
| Reminders for people who skip | Not built in | Yes (Geekbot: personal reminders) | Yes |
| Participation tracking | Not built in | Yes (Geekbot: engagement summary, paid plan) | Yes |
| Pre-filled from Jira or GitHub | No | Depends on the bot and plan | Yes, the main reason to build |
| Blocker routing | Build it yourself | Depends on the bot | Yes, to the owner or a ticket |
| Where data lives | Slack | The vendor's system | Your workspace and storage |
| Who maintains it | Workflow managers on your team | The vendor | You; you own the code |
Checklist: pick in 2 minutes
- Are you on Slack Free? Yes: option 2 or 3, since Workflow Builder needs a paid plan.
- Is it a small team in one time zone that already reads the channel? Yes: option 1. Stop here.
- Do you need reminders, local times or a participation view? Yes: option 2.
- Do people retype what Jira or GitHub already shows, or do blockers wait for days? Yes: consider option 3.
- Must standup data stay in your own storage? Yes: option 3, or a vendor plan that meets your security review.
FAQ
Can Slack run standups without a bot?
Yes, on paid plans. Workflow Builder can post a scheduled form and collect answers in a channel. Out of the box it doesn't chase people who skip or track participation, so it works best for small teams. Workflow Builder isn't available on Slack's Free plan.
Is Workflow Builder free?
It's included in Slack's paid plans (Pro, Business+ and Enterprise), not the Free plan. If you already pay for Slack, you don't buy Workflow Builder separately.
What's the best Slack standup bot?
We haven't tested every bot, so we won't rank them. Geekbot is the established example: DMs at each person's local time, reminders, history. Whatever you look at, compare free-tier limits and which features need a paid plan. Pick custom only if you need Jira or GitHub pre-fill or your own data storage.
Can a standup bot pull updates from Jira or GitHub?
Yes. A bot can read each person's closed tickets, merged pull requests and reviews, and draft the update for them to edit. Some ready-made bots offer integrations on higher plans; Geekbot lists Jira under Enterprise. A custom bot can match your exact fields and rules.
Async or live standups?
Async works better across time zones and saves meeting time. The risk is blockers buried in a summary nobody reads. Route blockers to a separate alert, and keep a short live call for the cases that need a conversation.
Does a custom standup bot replace Jira reports?
No. It turns activity you already track into a short daily update. Sprint and SLA reporting stay in Jira; see our guide to Jira dashboard setup.
Sources
- Slack: Workflow automation (Workflow Builder is a paid feature)
- Slack Help: Schedule recurring messages in a channel
- Slack Help: Build a workflow
- Slack Developers: Automate a team standup with Workflow Builder
- Slack pricing (feature table)
- Geekbot: Slack standup bot (vendor's own comparison)
- Geekbot pricing and plans
- Remote Work Central: async standup tools compared (hands-on test)