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:
describe_object('crm_account')→ seeshealth_score(number).query_records('crm_account', orderBy: [{ field: 'health_score', order: 'desc' }], limit: 5).- Returns a ranked list with record IDs.
Total time: under 30 seconds. No retraining. No restart. Nothing to deploy.
Why this works
| Layer | What it does |
|---|---|
| Metadata service | Single source of truth for objects + fields. Hot-reloads on every write. |
describe_object | Built-in AI tool. Re-reads metadata on every call. Never caches. |
live_data skill | Bundles describe_object + query_records + nudges the agent to inspect first. |
ask agent | The 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.shWhat 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.