Platform

Chat integrations

InRoots is native on Matrix and speaks Slack and Teams through their own APIs. People post where they already talk; the bot answers in the same place.

Your Matrix server and K9 Chat

  • The bot is a normal account on your homeserver using the client-server API; K9 Chat and any other Matrix client work unchanged.
  • Direct messages are end-to-end encrypted with Megolm; new DM rooms are created encrypted and a startup audit upgrades old ones.
  • Rooms are typed: standup, PTO, urgent, admin, plus a manager room per team and a fallback room for escalations.
  • Presence, avatars and display names are read live from the homeserver; a drift between the chat display name and the local record is flagged.
  • Additional bot identities each run their own client with their own key store and listen only to their assigned rooms.
  • Reactions on standups are read for kudos. Voice messages can be transcribed when voice is enabled.

Slack

  • Workspaces are installed through OAuth; multiple workspaces are supported and each bot token is encrypted at rest.
  • Inbound messages are dispatched through the same handler as Matrix, so a check-in typed in Slack is parsed identically.
  • A /standup slash command opens a modal for the check-in; leave requests get approve and deny buttons.
  • Slack, and the channel mirror, are available on the Pro plan and above.

Microsoft Teams

  • One Teams adapter serves every tenant. Each customer registers their own Azure bot and pastes the credentials, which are encrypted at rest; a manifest package is generated for upload.
  • Inbound activities are authenticated against the Bot Framework metadata, the sender is resolved to a person (by directory ID, then email, then display name, else a placeholder user), and check-ins and sign-offs are written like any other.
  • Conversation references are saved per person so the bot can message people proactively.
  • Teams is available on the Enterprise and self-hosted plans.

WhatsApp

Outbound only, through the WhatsApp Business Cloud API: on-call escalations and support-ticket pages use a template message to the person’s number from their profile. Credentials are stored encrypted; a test send verifies them; an inbound webhook endpoint maps a sender phone back to a profile.

Same commands everywhere

The self-scorecard command works on every channel, and the check-in and sign-off formats are the same.

/pulse me
sign off
pto 2026-08-11 to 2026-08-13