Skip to main content
Glama

callingly

Update a CRM integration

update_integration

Change a connected integration's settings, field mapping, routing rules or CRM user mapping, make it (or stop it being) the primary CRM, or import Follow Up Boss users/groups. Read the integration with get_integrations first and send back values in the same shapes; values that come from the CRM (field keys, tags, stages, events, CRM user ids, Facebook forms, inboxes) are listed by get_crm_options.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNosettings: the integration's name (max 255).
syncNosettings: sync toggles to change, e.g. {"is_sync_completed": true}. Keys: is_sync_lead_owner, is_sync_completed, is_sync_sms, is_sync_ai_scheduled_calls, is_sync_missed. Others keep their value.
rulesNorouting: the complete ordered rule list, first match wins; replaces all rules. Omit to keep the rules; [] removes them all.
actionYessettings: name, team_id, sync, settings. fields: field_mapping, is_ai_extract, object_type. routing: team_id (default team), rules, settings (trigger/tag). users: user_mapping. set_primary / unset_primary: the account's primary CRM. import_users: fub_ids, team_id, send_welcome. import_groups: group_ids.
fub_idsNoimport_users: Follow Up Boss user ids from get_integrations include_importable=users.
team_idNosettings/routing: the default team leads go to when no rule matches (null for none). import_users: the team to add imported users to.
settingsNosettings: keys to change in the integration's settings object as get_integrations shows it; nested objects merge, lists and scalars replace. Tags applied after a call (events.success/missed; Keap success/missed), the Facebook form_id and Inbox App number_id_<id> inboxes come from get_crm_options. routing: {"events": {"trigger": "…"}} (ActiveCampaign tag, Pipedrive stage, Wise Agent category — list them with get_crm_options) or {"tag": "…"} (Zoho).
group_idsNoimport_groups: Follow Up Boss group ids from get_integrations include_importable=groups.
object_typeNofields, Salesforce only: Lead, Contact, Opportunity or a custom object API name.
send_welcomeNoimport_users: email new users their login (default true).
user_mappingNousers: Callingly user id → CRM user id (null to unlink), e.g. {"12": "345"}; CRM user ids come from get_crm_options kind users. Only the users you pass change.
field_mappingNofields: Callingly field slug → value (see field_mapping.value_type_help), e.g. {"fname": "first_name", "phone": "phone"}. CRM field keys come from get_crm_options kind fields. Merged into the current mapping; null unmaps a field.
is_ai_extractNofields: automatically extract lead data (Facebook, Webhook, Unbounce, Realtor, Email).
integration_idYesThe integration, from get_integrations.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / rules / items / properties / conditions / items / properties / field / description
      Previous value: -"A Callingly field slug (from field_mapping.callingly_fields), or \"tags\" where routing.tags_field_available."New value: +"A Callingly field slug (from field_mapping.callingly_fields), or \"tags\" where routing.tags_field_available, or \"fub_pond\" (the Follow Up Boss pond: a name or id from get_crm_options kind ponds) where routing.pond_field_available."
    • changedInput schema / properties / rules / items / properties / field / description
      Previous value: -"A Callingly field slug (from field_mapping.callingly_fields), or \"tags\" where routing.tags_field_available."New value: +"A Callingly field slug (from field_mapping.callingly_fields), or \"tags\" where routing.tags_field_available, or \"fub_pond\" (the Follow Up Boss pond: a name or id from get_crm_options kind ponds) where routing.pond_field_available."
  2. Changed1 schema field changed
    • changedInput schema / properties / settings / description
      Previous value: -"settings: keys to change in the integration's settings object as get_integrations shows it; nested objects merge, lists and scalars replace. Tags applied after a call (events.success/missed; Keap success/missed), the Facebook form_id and Inbox App number_id_<id> inboxes come from get_crm_options. routing: {\"events\": {\"trigger\": \"…\"}} (ActiveCampaign tag, Drip event, Pipedrive stage, Wise Agent category — list them with get_crm_options) or {\"tag\": \"…\"} (Zoho)."New value: +"settings: keys to change in the integration's settings object as get_integrations shows it; nested objects merge, lists and scalars replace. Tags applied after a call (events.success/missed; Keap success/missed), the Facebook form_id and Inbox App number_id_<id> inboxes come from get_crm_options. routing: {\"events\": {\"trigger\": \"…\"}} (ActiveCampaign tag, Pipedrive stage, Wise Agent category — list them with get_crm_options) or {\"tag\": \"…\"} (Zoho)."
  3. Added

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=false, so the description carries the rest and does so well: it discloses that 'rules' replaces the entire ordered list (omit to keep, [] to clear), that 'settings' merges nested objects but replaces lists/scalars, and that null unmaps values. It stops short of stating permissions or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the operations it supports, then the required read-first workflow. Dense but every clause earns its place; it does not wander or repeat the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, nested-object mutation tool with no output schema and full schema coverage, the description supplies the missing operational context: capability scope, read-before-write workflow, and the sibling sources for valid CRM values. Only auth/permission behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds genuine cross-parameter value: the instruction to read via get_integrations and send values back 'in the same shapes', plus the pointer to get_crm_options for CRM-derived keys/ids, which the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names the verb ('Change') and the exact resource (a connected integration) and enumerates the distinct editable surfaces: settings, field mapping, routing rules, CRM user mapping, primary-CRM toggling, and Follow Up Boss imports. That scope makes it clearly distinguishable from siblings like disconnect_integration or get_integrations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit prerequisite workflow: read the integration with get_integrations first, and pull CRM-sourced values from get_crm_options. It does not state when to avoid this tool or contrast it with update_settings/update_team, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources