integrations_write
Add, change or remove an integration on an agent, exactly like the dashboard. assign_to_agent also updates an existing setup (call it again with new settings); remove_from_agent removes it. settings by type — google_calendar / outlook_calendar: { connectionId, calendarId, calendarName?, timezone? ("Europe/London" or "GMT+1"), label?, description?, methods? (create-event, check-availability, lookup-events, update-event, delete-event), bookingMode? ("route" = caller picks one calendar, "union" = any free calendar), defaultCallerTimezone? ("" = same as calendar, "ask", or a zone), disableMeetLink? (google, in-person) } — up to 5 calendars per agent; remove one with { calendarId } or all with {}. google_sheets: { connectionId, sheetId, sheetTabName, method: "read" | "lookup" | "write", sheetName?, sheetDescription?, headerRowIndex?, headerDescriptions? {column: meaning}, identifierColumn?, identityFields? { phone, email, name, custom, customLabel } } — up to 5 sheets; remove one with { sheetId }. airtable: { connectionId, baseId, tableId?, method?, fieldDescriptions?, identifierField? }. shopify: { connectionId }. calendly: { connectionId }. zoho_crm: { config } (draft it with zoho_auto_configure; config.logTranscript keeps a note with the real messages, including human replies from WhatsApp/dashboard). gmail / outlook_mail / zoho_mail (the agent answers that inbox): { connectionId, whenToReply? (always | keywords | sentiment | manual), replyDelayMinutes?, replyRule?, humanNotifyRule?, replyLength? (short | medium | long | auto), replyTone?, keywords?, ignoreKeywords?, humanTakeoverEnabled?, humanTakeoverTimeoutMinutes?, notifyWorkspaceOwners? } — also starts inbound notifications. Get ids from integrations_read (all_connections, resources). After assigning, verify with integrations_read agent_integrations and integrations_test. Actions: assign_to_agent — add or update an integration on an agent Needs: agentId, type, settings. | remove_from_agent — remove an integration (or one calendar / sheet / inbox) from an agent Needs: agentId, type. | calendly_save_event_types — choose which Calendly event types agents may offer Needs: connectionId, selectedEventTypes. | calendly_assign_agents — give agents the Calendly booking ability Needs: connectionId, agentIds. | calendly_remove_agent — remove Calendly from an agent Needs: agentId. | google_calendar_disconnect — disconnect a Google Calendar account (confirm first; refused while agents use it unless force) Needs: connectionId. | outlook_disconnect — disconnect an Outlook account (confirm first) Needs: connectionId. | zoho_disconnect — disconnect a Zoho account (confirm first) Needs: connectionId. | zoho_auto_configure — let AI draft a Zoho sync config from the CRM fields (does not save) Needs: connectionId. | zoho_test_lookup — try a config against the CRM with a phone / email, without saving Needs: config. | zoho_save_agent_config — save the Zoho sync config on an agent Needs: agentId, config. | zoho_remove_agent — remove Zoho CRM from an agent Needs: agentId.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "integrations_write"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | compact (default) = light mode: long text is cut and bulky blobs are replaced by a size marker. full = complete API response. | |
| type | No | For assign_to_agent / remove_from_agent. | |
| No | For zoho_test_lookup: an email to look the person up by. | ||
| force | No | For google_calendar_disconnect: disconnect even if agents still use the connection. | |
| orgId | No | Optional organization scope. | |
| phone | No | For zoho_test_lookup: a phone number to look the person up by. | |
| action | Yes | ||
| config | No | Zoho agent sync config (as returned by zoho_agent_config / zoho_auto_configure). To turn the message log on or off, read the current config, flip logTranscript, and save the whole config back. | |
| custom | No | For zoho_test_lookup: extra lookup values. | |
| agentId | No | For assign_to_agent / remove_from_agent / calendly_remove_agent / zoho_save_agent_config / zoho_remove_agent: the agent. | |
| agentIds | No | For calendly_assign_agents. | |
| settings | No | For assign_to_agent / remove_from_agent: the shape for the chosen type (assign) — each option is titled with its type. | |
| connectionId | No | Integration connection id (from integrations_read all_connections). | |
| instructions | No | For zoho_auto_configure: what the sync should do, in plain words. | |
| moduleApiNames | No | For zoho_auto_configure: up to 5 modules. | |
| selectedEventTypes | No | For calendly_save_event_types: event type objects from integrations_read. |