multiple grok bots team
Running Multiple Grok Bots Across a Team
How to run several Grok Bots on one team: one bot per job, separate or shared identities, scoped channels, and no bots talking over each other.
By Sara Du
18 min read · Last updated October 30, 2026
To run several Grok Bots across a team without chaos, give each bot one job, a deliberate identity (its own, or one shared on purpose), a short list of channels, and a written rule for when it speaks. Then decide, per bot, whether it's personal (works for one person) or shared (works for the team), because that choice changes whose accounts it uses, where it can post and who pays for its usage. Most multi-bot problems trace back to skipping one of those steps: two bots with overlapping jobs, a bot that posts as a person, or a bot that answers every message in a busy channel.
We build Ando, a team messenger where agents are workspace members, and Grok Bot is one of the agents people bring into it. This guide works whether your bots live in Slack, Microsoft Teams or Ando. Where the platforms differ, we say so and link to the source.
Everything about Grok Bot, Slack and Teams below comes from each vendor's own documentation, checked on Oct 22, 2026. Grok Bot's Team Bots feature is new and moving fast, so recheck before you roll out.
What Grok Bot already gives you for multiple bots
Grok Bot is built around the idea of several named bots, so you're not fighting the product. Per its docs:
- Each Bot is meant to have one job. Grok Bot describes a Bot as "a durable AI teammate with a name, a job, its own conversation, and working context," and recommends a separate Bot when the work has a distinct goal, toolset, working style, approval boundary or schedule (Create and manage Bots).
- You can duplicate a Bot for a new scope, such as one account-health Bot per region. The copy keeps the profile, skills and routines but not the conversation history or learned memory (same page).
- Bots can hand work to each other through direct messages, group chats and shared files. Grok Bot suggests putting Bots in a group chat "when the handoff itself needs to be visible" (same page).
- Team Bots are shared. An owner sets one Bot up and publishes it to the team. Each teammate gets a private chat with it, plugins that need sign-in use the account of whoever is asking, and it keeps team memory plus private notes per person (Team Bots).
- Routines run in the cloud on a schedule or on events such as a Slack message, an email or a webhook, while your laptop is closed (Routines).
Two caveats from the same docs matter a lot once you have more than one bot:
- All Bots on one account share one cloud computer. Browser sessions, files and command-line credentials are shared, and Grok Bot says plainly: "Do not use separate Bots as a security boundary." If a workload needs its own computer and credentials, give it its own user (Use the computer and apps; Security FAQ).
- Some identities are per person, not per bot. A connected app belongs to the account, so it's available to every Bot on that account. The Bot email address belongs to the user, and all of that user's Bots can use it (Connect apps; Give your Bot an email address).
So Grok Bot gives each bot its own role. Whether each bot also gets its own identity in your team chat depends on where the team chat is. That's the rest of this guide.
Pattern 1: One bot per function
Start with the smallest roster that covers real, recurring work. Grok Bot's own advice is to give one Bot ownership of an end-to-end outcome and add another "only when the work has a stable specialist role" (docs). Ando's docs say the same thing from the messaging side: start with one general agent, and add specialized agents when "tool permissions, channel access, responsibilities, or expected behavior should differ" (Ando: Agents).
A typical small-team roster looks like this:
| Bot | Owns | Sources it needs | Where it posts | Wakes on | Never does without approval |
|---|---|---|---|---|---|
| SEO Bot | Search performance, content briefs, indexing checks | Search Console, site, docs | #marketing, its owner's DM | Weekly schedule; @mention | Publishes or edits live pages |
| Metrics Bot | Weekly KPI digest, ad-hoc metric questions | Warehouse (read-only key), dashboards | #metrics | Monday schedule; @mention | Changes queries other people depend on |
| Support Triage Bot | Labels and routes incoming requests | Help desk, docs | #support-intake | Every message in that one channel | Replies to customers |
| Waitlist / Ops Bot | Waitlist review, onboarding follow-ups | Waitlist form, CRM | #growth | Daily schedule; new form submission | Emails applicants |
| Chief of Staff Bot | One person's calendar, inbox triage, prep notes | That person's own accounts | That person's DM only | DM | Sends anything external |
Two rules keep this table honest:
- No overlapping "owns" column. If two bots both "help with metrics," people will ask both and get two answers.
- Write the boundary into the bot's description, not the chat. Grok Bot recommends putting durable rules in the Bot description ("Never send external messages without approval") and task-specific instructions in the conversation (docs).
Pattern 2: Choose each bot's identity on purpose
When a message shows up in a channel, everyone should be able to tell that an agent wrote it (not a person), who configured it and on whose behalf it acted. Whether that's one identity per bot or one shared identity is up to you. How much control you get depends on the platform.
| Personal Grok Bot + Slack app | Grok Team Bot in Slack | Grok Bot + Microsoft Teams plugin | Grok Bot in Ando | |
|---|---|---|---|---|
| Who the post appears from | The Slack user you connected ("posts as the Slack user you connected, not as a separate bot") | The bot's own Slack app, named after the Bot with its avatar ("posts as itself, not as the owner") | Your connected Microsoft account. The plugin uses delegated permissions and works from outside Teams | An agent member of the workspace with its own name, avatar, role label and description |
| One identity per bot? | No. Every Bot on the account shares your Slack identity | Yes. Each Team Bot is its own Slack app | No. The Teams connection is account-wide, so every Bot on the account posts as you | Your choice. Each bot can be its own agent member, or several bots can share one agent identity |
| Who can talk to it | n/a (it acts as you) | Teammates who have linked Slack to the Bot's Cursor team | n/a (it acts as you) | Anyone in the conversations it's in; you can restrict who can interact with an agent |
| Source | Connect apps | Team Bots | Grok Bot Teams plugin | Ando: Agents; Invite your agents |
What this means in practice:
- In Slack, Team Bots are the clean path. A personal Bot posting through the Slack app looks like you typed it, which gets confusing fast when you run three of them. A published Team Bot gets its own app and posts as itself. The trade-offs are that each Team Bot is a separate Slack app to install (and possibly get approved by a Slack admin), it answers only teammates who've linked their Slack account to Cursor, and someone who's linked but not on the Bot's Cursor team gets a private notice and no answer (Team Bots).
- In Microsoft Teams, it's a plugin, not a member. The official Teams plugin connects Grok Bot to your own Teams account and can "search, read, and send Microsoft Teams chats and channel messages" (x.ai). It works from outside Teams with delegated permissions, so everything it posts comes from you, and every Bot on your account shares the same connection. Team Bots publish to Slack only, so there's no way to give each bot its own Teams identity or let teammates @mention it. Several bots in Teams all act through your account, not as separate participants. Ando vs Microsoft Teams covers how Microsoft's own agents work there.
- In Ando, each bot joins as an agent member. You invite an agent from the same places you invite people, and the approval screen asks whether to pair an existing agent or create a new identity, with the warning that "continuing as yourself attributes actions to your human account" (Invite your agents). Each agent has a display name that must be unique among agents in the workspace, an optional role label shown beside its name, a description and an avatar (Ando MCP tools).
In Ando: separate identities or one merged identity
When you run several Grok Bots, Ando lets you decide how they show up. Each bot can get its own Ando agent identity, or several bots can share one merged identity. You choose per bot when you connect it, and you can mix the two approaches in one workspace.
| Separate identity per bot | One merged identity | |
|---|---|---|
| How it looks to the team | "SEO Bot," "Metrics Bot" and "Support Triage Bot" each appear as their own member | One agent teammate, such as "Ops," handles several jobs behind the scenes |
| Choose it when | Bots have distinct roles; channel access or data should differ per bot; you want clear attribution of who said what; you want each bot's Notify setting tuned separately | You'd rather keep it simple; the team should see one teammate face; you're a small team where one channel list and one Notify setting fit every job |
| What you control | Each identity's name, role label, description, avatar, channels, Notify setting, and who can interact with it | The same settings, once, for the shared identity |
| Watch out for | More members to manage | Everyone sees one name, so put the job split in the agent's description; run one receiver for the shared identity so two bots don't answer the same message |
A few rules apply either way, straight from Ando's docs (Invite your agents):
- Make the choice explicit on the approval screen. Choose Pair an existing agent to connect a bot to an identity you already have. Create a new agent when you want another identity. Continuing as yourself attributes actions to your human account, which is rarely what you want for a bot.
- Don't create a second agent to recover access. To reconnect an existing agent, use its connection settings so it keeps its identity.
- One receiver per identity. If an identity already has a receiver, Ando's docs say to stop it before starting another "so both runtimes don't reply to the same message." With a merged identity, pick which bot's Ando replies routine does the receiving.
Whichever you pick, make it a decision, not an accident. The thing to avoid is a bot posting in team chat as you.
Pattern 3: Scope channels like you'd scope a new hire
A bot should be in the channels where its job happens and nowhere else.
- Invite deliberately. Slack Team Bots only work in channels they've been invited to (
/invite @BotName) (Team Bots). In Ando, agents follow the same participation model as people: an agent can access a channel, group DM or private conversation "only when it is a participant," and the participant list shows every person and agent in it (Ando: Agents). When you invite an agent from Ando's invite dialog you can pick its starting channels. Inviting from Settings → Members → Agents has no channel picker, so you add it to each conversation yourself (Invite your agents). - Match access to the audience. Grok Team Bots run Slack channel conversations on one shared computer for that Bot, so the docs warn not to share anything in a channel thread "that shouldn't be visible to everyone in that channel" (Team Bots). The same instinct applies anywhere: a Metrics Bot with warehouse access belongs in a channel whose members are allowed to see those numbers.
- Give sensitive data its own bot. Ando recommends separate agents "when application seats or sensitive datasets differ," for example sales vs. customer-success CRM access (Ando: Agents). On Grok Bot, remember that separate Bots on one account still share a computer. Use a separate user when the credentials themselves must be separate (Security FAQ).
Pattern 4: Stop bots from talking over each other
Three bots in one thread can produce three answers, or a loop of bots thanking each other. Prevent it at three levels.
1. Default to mention-only, and widen one channel at a time.
- Grok Team Bots in Slack channels answer when @mentioned, then follow that thread, and ignore other top-level messages unless you add a channel-listener routine (Team Bots).
- In Ando, each external agent has a Notify setting. The default wakes it for direct messages and @mentions. You can narrow it to mentions only, widen it to all messages in its conversations, or turn it off (Running agents). Ando-hosted agents also have per-channel proactivity (Mentions, Low, Medium, High) (Ando: Agents).
- Only one bot per channel should be on "every message." In the roster above, that's the Support Triage Bot in
#support-intakeand nowhere else.
2. Make agent-to-agent handoffs explicit.
- In Ando, agents can wake each other "within limits that prevent loops": an agent can @mention another agent in a shared conversation, and the target's Notify setting still applies. Ordinary external agents don't receive unmentioned thread replies just because they posted in the thread, and Ando suppresses an external agent's own messages so it doesn't wake itself (Ando: Agents).
- Write the handoff rule into each bot's description: "If a request is about metrics, mention @Metrics Bot and stop." Ando's docs tell agents to "treat agent-authored messages as context, avoid duplicate work, and avoid replying just to keep a chain alive."
3. Make replies idempotent.
- Webhooks and retries can deliver the same event twice. Ando's Grok Bot receiving prompt uses one reply key per original message (
reply:<message_id>:result) for webhooks, inbox sweeps and retries, so a retry reads the existing reply instead of posting a second one (Invite your agents). Keep that key when you adapt the prompt for each bot.
Pattern 5: Protect human attention
More bots shouldn't mean more pings. Some habits that hold up:
- Digest by default, ping by exception. Scheduled bots (SEO, Metrics) should post one summary on a fixed cadence and stay quiet otherwise. Save @mentions of people for decisions only a human can make.
- Draft, don't send, for anything external. Grok Bot asks for approval before every email it sends (agent email). In Ando, an agent can save a suggested reply as a draft for a person to review instead of sending it (
save_message_draft) (Ando MCP tools). - Use reactions as cheap approvals. Ando can deliver reactions on an agent's own messages, so a ✅ on a proposed plan can mean "go" without another message (Running agents).
- Watch usage, not just noise. Grok Bot warns that "a Slack trigger on a busy channel can use a week of usage in a day." It recommends pausing unneeded routines and narrowing triggers (Routines). With Team Bots, usage counts against the teammate who's talking to the Bot, and Slack posts that don't come from a linked teammate count against the owner (Team Bots).
- Give each bot a human owner. Someone answers for it when it's wrong. For Grok Team Bots, that's the owner plus any managers. In Ando, whoever can edit the agent in Settings → Members.
For more on the receiving side, see Agent Inbox 101. For why visible participants beat invisible bots, see Agents as teammates, not bots.
Slack apps vs. Ando agent identities, side by side
Both models can work. They suit different teams.
| Question | Grok Team Bots in Slack | Grok Bots as Ando agents |
|---|---|---|
| How a bot joins | Owner publishes the Team Bot, then installs its own Slack app | Invite as an agent, then approve on Ando's screen |
| Identity | One Slack app per Team Bot; personal Bots post as you | Your choice: one agent member per bot, or several bots behind one shared identity, each with a name, role label and avatar |
| Who it answers | Teammates who've linked Slack to the Bot's Cursor team | Participants in the conversations it's in, subject to Notify and interaction restrictions |
| Its "inbox" | Slack DMs and mentions, handled inside Grok Bot | Its own agent inbox of mentions, DMs and thread updates (get_agent_inbox) |
| Wake rules | Mention, then follows the thread; channel listener routine for every message | Notify setting per agent (mentions + DMs by default) |
| Agent-to-agent | Group chats inside Grok Bot; in Slack, other apps' posts count against the owner | @mention between agents in shared conversations, with loop limits |
| Admin overhead | One Slack app install (and possible approval) per Team Bot | Members settings in Ando; no per-bot app install |
| Best fit | Teams staying on Slack that want one or two shared bots | Teams running several agents (Grok Bot and others) that need to see and hand off to each other |
If your team is staying on Slack, Team Bots are a good answer, and our /vs/slack page is fair about where Slack wins. If you're running several bots from more than one vendor, Grok Bot vs Claude Code vs Codex in a shared workspace covers the mixed setup. For the platform-by-platform view, see Grok Bot for Teams: Slack vs Microsoft Teams vs Ando.
Setting up several Grok Bots in Ando
Per Invite your agents, checked on Oct 22, 2026. Repeat for each bot, one at a time:
- Start in Ando. Choose Grok Bot when you invite an agent, and open the official Ando plugin.
- Connect in Grok Bot. Open Connect apps, find Ando, add it, and select Authorize.
- Choose the identity. On Ando's approval screen, decide whether this bot gets its own identity or shares one. For a separate identity, create a new agent and name it after its job ("SEO Bot," not "Grok 2"). For a merged identity, choose Pair an existing agent, select the shared identity, and give it a name and description that cover every job behind it. Then, back in Grok Bot, confirm Ando shows under Installed.
- Verify. Ask the bot to call
get_current_identityandget_workspace_infoand confirm the agent and workspace before it writes anything. - Set up receiving. Paste Ando's receiving prompt so the bot creates one Ando replies webhook routine. For a merged identity, do this once, for the bot that does the receiving. Save its webhook URL and key in the secure card Ando sends, or under Replies on the agent's page. Then confirm it answers an idle DM without another approval prompt.
- Scope it. Add the bot only to its channels, set its Notify level, and write its handoff rule into its description.
Already on Slack? You don't have to move everyone at once. Slack sync brings over the channels you pick, public ones and private ones you're in, including Slack Connect channels, with up to 180 days of history, and keeps new messages flowing. DM sync is separate and available only where enabled (docs).
A one-page checklist
- Each bot has one job, written as an outcome, with no overlap.
- Each bot has a deliberate identity, either its own or a shared one, never your personal account.
- Each identity has exactly one receiver.
- Each bot is in only the channels its job needs.
- At most one bot per channel is set to respond to every message.
- Handoff rules ("mention @X and stop") are in each bot's description.
- Replies use one idempotency key per original message.
- External actions are drafts until a person approves.
- Sensitive credentials live with a separate user, not just a separate bot.
- Every bot has a named human owner.
- You've reviewed routine frequency against usage.
FAQ
Can I run more than one Grok Bot for my team?
Yes. Grok Bot is designed for several named Bots, each with its own job and conversation, and you can duplicate a Bot for a new scope. For a bot the whole team shares, publish it as a Team Bot. Keep in mind that all Bots on one account share a cloud computer, so separate Bots aren't a security boundary.
How do I stop multiple AI bots from replying to the same message?
Give each bot a distinct job and channel list. Default every bot to mention-only, and allow at most one bot per channel to respond to every message. Have bots hand off by @mentioning each other instead of answering, and use one idempotency key per original message so retries don't create duplicate replies.
Does each Grok Bot get its own identity in Slack?
A published Team Bot gets its own Slack app, named after the Bot, and posts as itself. A personal Bot using the Slack app posts as the Slack user who connected it. In Slack, a Team Bot answers only teammates who have linked their Slack account to the Bot's Cursor team.
Can Grok Bot join Microsoft Teams as its own member?
No. The official Teams plugin connects Grok Bot to your own Teams account, so it can search, read and send Teams chats and channel messages as you, from outside Teams. Team Bots publish to Slack only, so there's no Grok Bot member in Teams that teammates can @mention, and every Bot on your account shares the same Teams connection.
How does Ando handle several Grok Bots?
You choose. Each bot can join as its own agent member, with its own name, role label, inbox, Notify setting and channels, or several bots can share one merged agent identity. Separate identities suit distinct roles and clear attribution, and a merged identity suits small teams that want one teammate face. Either way, an agent sees only the conversations it's a participant in.
Next step
Running more than two bots and tired of being the router between them? Join the Ando waitlist.
Sources (checked on Oct 22, 2026)
- Grok Bot docs, "Create and manage Bots": https://docs.x.ai/grok-bot/bots
- Grok Bot docs, "Team Bots": https://docs.x.ai/grok-bot/team-bots
- Grok Bot docs, "Use the computer and apps": https://docs.x.ai/grok-bot/computer-and-apps
- Grok Bot docs, "Grok Bot security FAQ": https://docs.x.ai/grok-bot/security-faq
- Grok Bot help, "Connect apps": https://prod.cursor.com/help/grok-bot/connect-plugins
- Grok Bot help, "Routines": https://prod.cursor.com/help/grok-bot/routines
- Grok Bot help, "Give your Bot an email address": https://cursor.com/help/grok-bot/agent-email
- Grok Bot Teams plugin page (announced Sep 11, 2026): https://x.ai/bot/plugin/63354504
- Ando for Grok Bot plugin page: https://x.ai/bot/plugin/59967207
- Ando docs: https://docs.ando.so/docs/agents, https://docs.ando.so/docs/external-agents, https://docs.ando.so/developers/running-agents, https://docs.ando.so/docs/ando-mcp/tools, https://docs.ando.so/docs/importing-from-slack