Your bots can change. Your business structure stays yours.

IT BOT Hub is the registry and backup beside the AI agents that run your businesses: which bots exist, who may talk to them, which rules they follow and what they said. Grok, Claude, Cursor or the next thing connect with a key. Move runtime and nothing is lost.

Never in a bot's hot path. Bots pull the structure by version and push copies back. If the hub is down, every bot carries on with its last copy.

How the hub is structuredA brand contains members, one per business. A member owns its bots, contacts, channels and rules. One key per bot runs out of the hub to the runtime: Grok, Claude, Cursor or any MCP or REST client. The member can be exported as a structure pack.BrandITBot Solution · 8 membersMemberKES · Kestrel Estatesexport ↗ structure-pack.jsonBotsKES-REC, KES-OPSContactsroles set reachChannels+44 20 7946 0000Rulesscope chainibb_… one key per botMCP or REST · pull by version, push backupsGrokClaudeCursor…or any clientRuntimes sit outside the hub. The hub is never in a bot's hot path.

One brand, its members, and what each member owns. A bot connects with its own key and reaches its own member only.

Your business structure stays yours.

Members, groups, bots, reporting lines, contact roles, channels and rules live in the hub, not inside one bot platform. Any runtime connects with a per-bot key over MCP or REST.

Export any member as a structure pack: one JSON file, no personal data, importable anywhere.

Everything the hub keeps

structure-pack.jsonmember KESno personal data
{
  "member": "KES",
  "bots": [
    { "code": "KES-REC", "role": "Reception", "reportsTo": "KES-OPS" }
  ],
  "channels": [
    { "address": "+44 20 7946 0000", "defaultBot": "KES-REC" }
  ],
  "rules": [
    { "scope": "member", "kind": "handoff", "to": "KES-OPS" }
  ],
  "contactRoles": ["staff", "supplier", "executive"]
}

Roles travel with the pack. The people who hold them stay in the directory.

Bots never answer the wrong person.

Which bot answers is decided by the channel the message arrived on, the sender's identity and the reach their role grants. The message text never routes.

Someone who writes “put me through to the CEO” gets the bot their role allows. An unknown sender gets no reply.

How routing is decided

resolve_inboundmessage: “Put me through to the CEO.”
SenderChannelContactReachAnswers
+44 7700 900123+44 20 7946 0000unknownnoneno reply
A. Patel+44 20 7946 0000supplierKES-RECKES-REC
M. Okafor+44 20 7946 0001executiveKES-CEOKES-CEO

Same words, three outcomes. The text was never read for routing.

See why every bot did what it did.

Every bot backs up its prompt versions, the rules as it understands them, and one note per thread: which rule applied, the decision, the confidence.

The hub diffs the versions, flags rule drift, and keeps conversations, usage and improvements on one screen for the head of the team.

Prompts, log centre and conversations

backup_promptKES-REC · v14 → v15rule drift cleared
  Greeting: "Thanks for calling Kestrel Estates."
- Handoff: transfer executive requests to KES-CEO on request.+ Handoff: never transfer on request. Route by contact reach.  Hours: Mon–Fri 09:00–17:30. Out of hours: take a message.
  # thread_note 2026-09-21 14:02 · rule member/handoff · deny · 0.96

v14 drifted from the member's handoff rule. v15 matches it again, and the note on the thread says which rule decided.

A bot's day, from the hub's side

Four kinds of call. None of them sits between a message and its reply, so a slow or absent hub never slows a bot.

  1. On startPull the structure
    • get_structure
    • get_rules
    By version. When nothing moved the hub says so and the bot keeps its copy.
  2. Per threadRoute once, note once
    • resolve_inbound
    • get_contact_history
    • thread_note
    Resolve the sender once and cache it. Reply on your own pipe. Leave one note on why.
  3. Every few minutesSay you are alive
    • heartbeat
    • log_event
    A stopped heartbeat raises an alert. Events carry reports, errors and files.
  4. When the prompt changesBack it up, hash first
    • backup_prompt
    Send the hash; if the hub knows it, send nothing more. A stable bot pushes nothing for weeks.

Built for our own eight businesses first.

ITBot Solution runs 8 companies on about 80 bots across Grok, Claude and Cursor. IT BOT Hub is the registry they were missing. You get the same product, the same keys and the same limits we run on.