Skip to content
Get AI Business OS

Email, Calendar and Meeting Sync

PRIMA CRM

The sync tool, crm_sync, is the part of PRIMA CRM meant to turn email, calendar events and video meetings into interactions. In version 1.6.1 it reads which services your workspace has connected and reports on them. It does not fetch anything from any service, so no email, event or meeting reaches the CRM automatically.

Action What it does in 1.6.1
status Reads your connector settings and reports the state of email, calendar and meetings. Makes no network calls and writes nothing
review Lists items waiting for your approval. Nothing in 1.6.1 adds items to this list, so it reports that nothing is staged
accept Approves an item from the review list
discard Rejects an item from the review list

Because the review list stays empty, accept and discard have nothing to act on in a new 1.6.1 install. The Tools Reference describes their parameters.

AI Business OS keeps a connector registry at .claude/config/integrations.json in your workspace. It records which provider your workspace uses for email, calendar and meetings. The CRM reads three keys in each of those three sections.

Key What the CRM reads from it
provider The service, such as proton, google-calendar or zoom
mcp The name of the MCP server that reads that service
enabled Whether you want the CRM to use it. Only true counts

AI Business OS ships this file with each field holding a list of options, such as gmail | outlook | apple-mail | proton | none. The CRM reads any value that still holds a |, that starts with [ or <, or that says none or null, as a question nobody has answered. An untouched file therefore reports all three as not connected.

Ask Claude for the sync status.

What's the CRM sync status?

Claude calls crm_sync with the status action. Each of email, calendar and meetings lands in one of four states.

State When What it means for you
Not built yet A provider is set, enabled and has an MCP server named, but no fetch code exists for it Nothing syncs, and there is nothing for you to fix
Needs repair A provider is enabled but no MCP server is named Name the MCP server in integrations.json if you want it ready for a later release
Not connected No provider is set, enabled is not true, or the registry is missing Nothing is set up for this service
Active A provider has working fetch code No provider reaches this state in 1.6.1

Here is the start of the report you see for a workspace with Proton Mail connected and nothing else. Below the summary line, the report lists each service again with what you can do about it.

## CRM Sync Sources
Registry: /Users/you/Example Consulting/.claude/config/integrations.json
| Surface | Provider | MCP | State | Detail |
|----------|----------|--------|---------------|-----------------------------------------------------------|
| email | proton | proton | Not built yet | proton is connected via proton, but its fetch adapter ... |
| calendar | - | - | Not connected | No provider set in integrations.json. |
| meetings | - | - | Not connected | No provider set in integrations.json. |
**Nothing syncs yet.** email (proton) is connected, but its fetch adapter is not built in this release.

The fetch code planned first covers proton for email, google-calendar for calendar and zoom for meetings. A provider outside that list, such as outlook, also reports Not built yet, and the detail names the planned providers.

A missing or broken integrations.json is a normal state. The status report shows every service as not connected, and the rest of the CRM keeps working.

Until a release fetches from your services, the CRM knows about contact only when you tell Claude. A short sentence after each call, meeting or important email keeps the record current.

Had a video call with Aoife Brennan this morning about the May dates.
Emailed Northfield Print yesterday to confirm the print run.

Give the date the contact happened when it was not today, so the stale reading stays accurate.

The CRM dashboard has a Sync tab with two tables, items waiting for approval and recent sync runs. In version 1.6.1 both tables stay empty.