Knowledge Hub

The HQ Knowledge Hub

Plain-English guides to HQ, from your first install to rolling it out across your whole team.

On this page

Daily Use

HQ Bots in Slack

5 min read Updated Oct 2026

Anyone who wants HQ answering questions inside Slack. The everyday section is for everyone; connecting a workspace is Champion and workspace-admin territory.

HQ can live inside Slack through the Slack Bot Factory: connect your workspace once, and from then on anyone in it can stand up a named HQ bot with a single slash command. Each bot is its own real Slack app, minted on demand and owned by your company.

Two kinds of HQ in Slack. This article covers minted HQ bots: quick, lightweight bots you create with /hq-new-bot. Their richer sibling is the cloud bot (called a Fleet Agent in the HQ Console): a persistent AI teammate with its own company identity and a managed cloud runtime that stays online on its own, reachable in Slack, by email, and on Telegram. If your team has one of those, or you want an AI teammate rather than a bot, read Fleet Agents: AI Teammates That Stay Online.

Using a bot#

Once your workspace is connected (see below), any member of the workspace can mint a bot right from Slack:

shell
/hq-new-bot <name> <company>

You can leave <company> off in most cases; it is derived from the workspace. (An explicit company slug that doesn't match the workspace's owning company is rejected, and your Slack email must resolve to a member of that company.) The factory mints a per-bot Slack app, installs it to the workspace, and stores its token in the company vault.

Day to day, the bot behaves like this:

  • It answers when @-mentioned in any channel it belongs to. Each mention starts a worker that owns that one thread end to end: it reads the thread, answers in-thread, and keeps replying to follow-ups until the conversation goes idle.
  • Channel mentions are open; DMs are gated. In a channel, anyone can mention it. In a direct message, it only responds to its creator.
  • New channels just work. Add the bot to a channel and it starts listening automatically on the next refresh tick; no restart needed.
  • No duplicate responders. Re-mentioning the bot in a live thread doesn't spawn a second worker; the one already handling the thread picks it up.

Behind the scenes, a minted bot is powered by an HQ runtime its creator arms (the hq-pack-slack-bot watcher). That's the practical difference from a cloud bot, which runs on its own managed cloud runtime and doesn't depend on anyone's setup.

Connecting a workspace (Champions)#

Connecting Slack to HQ is a one-time, admin-or-owner-only setup per workspace, and the role check runs before anything is written to the vault.

It is currently white-glove: there is no self-serve connect command in the current HQ release (a self-serve flow is on the roadmap). To connect a workspace, reach out to the Indigo team at hello@getindigo.ai or through your shared Slack channel, and they'll run the connect with you. After that one-time setup, minting with /hq-new-bot works exactly as described above.

For the curious, the connect has four steps: create a small "bridge app" in Slack from a manifest HQ emits (it owns the /hq-new-bot command), collect four credential values from the Slack app console, submit them through one-time links, and register the workspace with the factory. The factory is multi-tenant by design: every workspace verifies against its own signing secret and mints apps with its own tokens, so one company's bots never touch another's.

How the tokens are handled (Champions)#

The four Slack values behind a connected workspace (the signing secret, the bot token, and the two app-configuration tokens) are treated as capabilities, not settings, and three rules are enforced end to end:

  • Vault-side, never bot-side. Each value is submitted through a one-time link straight into the company vault. The bot never sees a value, never captures it from command output, and never reads it back to "verify" it. Success is confirmed with key names only. (This is the same single-use link pattern as /hq-share.)
  • Names, never bytes. The workspace registry stores only key names and identifiers; the secret bytes live exclusively in the vault.
  • Company-scoped. The values are written into the owning company's vault scope and governed by per-secret ACLs, which is why the admin/owner gate runs first.

For the general story on how HQ handles credentials, see the Secrets Guide.

Troubleshooting#

The workspace stopped minting bots, or its config tokens expired. Slack app-configuration tokens expire, and signing secrets are sometimes rotated. The fix is to safely re-run the connect with the Indigo team for the same workspace. It is idempotent: the registry updates in place (no duplicate row), the four vault values overwrite the same key names (no orphaned secrets), and a workspace previously flagged for a broken token chain is set back to active. There is exactly one registry row and one key set per workspace, before and after.

Common questions#

Should we use a minted bot or a cloud bot?

A minted bot is fast to stand up and great for "let anyone in this workspace ask HQ things in a thread." A cloud bot is a real AI teammate: its own company membership and identity, a cloud runtime that stays online, delegated ownership, email and Telegram, and scheduled work. If you're choosing for the long term, read the Fleet Agents article first.

Can anyone in our Slack use the bot?

In channels, yes: anyone can @-mention it in a channel it belongs to. In DMs, it only answers its creator. And minting new bots, while open to any workspace member, still requires the caller's Slack email to resolve to a member of the owning company.

Where do the Slack tokens actually live?

In your company vault, under per-secret ACLs. They arrive there through one-time submission links, so no bot (and no chat transcript) ever contains a value.

If you get stuck#

If a bot stops answering or minting fails, start with The "I'm Stuck" Guide. For a workspace-level problem (connect, tokens, rotation), contact the Indigo team at hello@getindigo.ai; for anything else, file /hq-bug or see Getting More Help.