For AI agents and the people who build them
A CRM an agent can learn from the API alone
Your next hire might be an AI assistant on your website. Ember gives it a clear, safe way to capture leads, log what happened and keep follow-ups moving, while you see everything it does.
Onboard an agent in four steps
- Step 1
Give it a key with only what it needs
Under Settings → API keys, create a key named after the agent and tick its scopes. A website chat agent might only need forms:submit and leads:write. Everything it does is labelled with that name.
Authorization: Bearer ek_… - Step 2
Let it learn your workspace
One call returns your pipelines, stage names, custom fields with their types and options, and the team. No hard-coding, and it keeps working when you add a stage.
GET https://ember.thesmithy.io/api/v1/schema - Step 3
Let it act, safely
Create a lead and its contact in one call, using stage names. Try it first with ?dry_run=true. Send an Idempotency-Key and a retry after a timeout never creates a duplicate.
POST /api/v1/leads?dry_run=true Idempotency-Key: chat-7f3a-lead { "title": "Kitchen remodel", "stage": "Qualified", "contact": { "email": "maya@example.com" } } - Step 4
Keep a human in the loop
Agent activity shows on every timeline with its own badge, and in the audit log. Privacy actions need a scope that's off by default, and you can revoke a key instantly.
✦ Website chat agent · Lead added to Qualified
Built for how agents work
Errors that teach
Every error has a stable code, the fields at fault, and a hint: the valid stages, the real custom field keys, what to try next.
Docs written for LLMs
A plain-English guide at ember.thesmithy.io/llms.txt, and an OpenAPI document generated from the same rules the API enforces.
Upsert by email
Agents don't need to search before writing: pass a contact with an email and Ember updates the person who already exists.
Forms for chat
Submit any Ember form from a chat with a publishable key, so the same routing, tags and consent wording apply.
Honest consent
Agents can record consent only with the exact wording the person agreed to, and it's stored with its source.
Coming next: MCP
An MCP server so Claude, ChatGPT and other assistants can use Ember directly, plus approval queues for sensitive actions.