Live Schema (Wow

HotCRM's AI sees schema changes the moment they happen — no retraining, no restart, no waiting.

Live Schema — the CRM that rewrites itself

Most "AI CRMs" bolt a chatbot on top of a static schema. The moment an admin adds a custom field, the bot is wrong: it answers from the schema it was trained against last week, not the one you ship today.

HotCRM is different. The schema is the system prompt.

Every time the assistant answers a data question it calls describe_object against @objectstack/runtime's metadata service — which re-reads the live registry. Add a field at 10:00:00, and the next user question at 10:00:05 sees it.

The assistant is the platform's ask agent. HotCRM authors no agents of its own — apps ship skills, which attach to a platform agent by surface affinity (ADR-0063 §1/§2). The behaviour below comes from HotCRM's live_data skill riding on ask.

The 30-second demo

# 1. Admin adds a field — no migration, no deploy.
curl -X POST $HOTCRM/api/v1/ai/tools/add_field/invoke \
  -d '{
    "objectName": "crm_account",
    "name": "health_score",
    "label": "Health Score",
    "type": "number"
  }'

# 2. Sales rep asks the assistant — five seconds later.
curl -X POST $HOTCRM/api/v1/ai/chat \
  -d '{
    "agent": "ask",
    "messages": [{ "role": "user",
      "content": "Top 5 accounts by health_score — cite IDs." }]
  }'

The agent's tool trace:

  1. describe_object('crm_account') → sees health_score (number).
  2. query_records('crm_account', orderBy: [{ field: 'health_score', order: 'desc' }], limit: 5).
  3. Returns a ranked list with record IDs.

Total time: under 30 seconds. No retraining. No restart. Nothing to deploy.

Why this works

LayerWhat it does
Metadata serviceSingle source of truth for objects + fields. Hot-reloads on every write.
describe_objectBuilt-in AI tool. Re-reads metadata on every call. Never caches.
live_data skillBundles describe_object + query_records + nudges the agent to inspect first.
ask agentThe platform data agent. Loads the skill, so it inspects schema before answering and surfaces unknown fields automatically.

Run the full demo with:

./scripts/wow1-live-schema.sh

What this enables

  • Custom fields by ops, not engineering.
  • Per-tenant schema extensions that the AI surfaces automatically.
  • Field deprecations that the AI stops referencing the moment they're removed.
  • Iteration speed measured in seconds, not sprints.

On this page