Empiraa Signal is a CRM for sales and marketing teams: Accounts, Contacts, prospect contacts, Deals and pipelines, Actions, Bookings, Campaigns, Sequences and Forms, with analytics on top. There are two ways to build on it.
| REST API and webhooks | MCP connector | |
|---|---|---|
| For | Your own code: integrations, syncs, scripts, internal tools | AI assistants: Claude, ChatGPT, Claude Code, Cursor, VS Code |
| Sign-in | A workspace API key with scopes | Each person signs in with OAuth 2.1 and approves the connection |
| Acts as | The workspace, within the key's scopes | The person who connected, within their role |
| Changes | Direct create, update and delete calls | Previewed as a card, confirmed by the person, logged, and undoable for 7 days |
| Events | Webhooks push changes to your endpoint | The assistant reads on demand |
Start here#
- Building an integration? Start with the API quickstart, then Authentication and Conventions.
- Need to react to changes in Signal? See Webhooks.
- Connecting an AI assistant? See Connecting your assistant. It takes about a minute.
- Building an MCP client? See How it works.
Signal's words#
Signal uses its own names for some things, and the docs use them too:
| Signal says | Meaning | In the REST API |
|---|---|---|
| prospect contact | A person you're prospecting who isn't yet a Contact at an Account | /prospects |
| Prospect Company | A company you're prospecting | /prospect-companies |
| Account | A customer or target company | /accounts |
| Contact | A person at an Account | /contacts |
| Deal | An opportunity in a pipeline | /deals |
| Activity | Something someone did or plans to do about a record: an Action, a call, a meeting, an email or a note | /activities |
| Action | A to-do with a due date, Assigned To someone | /activities with type_id rat_action |
| Assigned To | The teammate responsible for a record | owner_id (and an activity's assigned_user_id) |
/tasks is a separate list of to-do items that shows on a prospect contact's page, not in Signal's Actions list. To create an Action, use POST /activities.

