Skip to content
Ember

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

  1. 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_…
  2. 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
  3. 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" } }
  4. 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.