crmCRM

22 MCP tools.

Machine-readable: /reference/api/tools/crm.json

Tools

assignment_simulate read-only

Dry-run lead routing: evaluate the org's assignment rules against a lead and return who it WOULD be assigned to, without writing anything to the lead. Read-only; scoped to the caller's organization.

category
crm (CRM)
permissions
crm.view_assignment_audit

Parameters

lead_id : string
UUID of the lead to simulate routing for.

cadence_branch_create

Add one conditional branch edge to a cadence: route from_step -> to_step when a condition (always/field/engagement/score/random) is met. The cadence and both steps must belong to the caller's organization. Writes only to the caller's own organization.

category
crm (CRM)
permissions
crm.cadence.manage

Parameters

cadence_id : string
UUID of the cadence to add the branch to.
from_step_id : string
UUID of the step whose completion triggers this branch.
to_step_id : string
UUID of the step to route to when the condition matches.
condition_type : string (optional)
One of: always, field, engagement, score, random. Default 'always' (unconditional/default edge). — default: "always"
priority : integer (optional)
Evaluation order on from_step (ascending; first match wins). — default: 0
field_name : string (optional)
(no description)
operator : string (optional)
(no description)
value : string (optional)
(no description)
engagement_type : string (optional)
(no description)
engagement_step_id : string (optional)
(no description)
engagement_timeframe_hours : integer (optional)
(no description)
score_threshold : integer (optional)
(no description)
split_percentage : integer (optional)
(no description)
label : string (optional)
(no description)

cadence_branch_list read-only

List the conditional branch edges of a cadence (the directed graph of step->step routes guarded by engagement/field/score/random conditions), in evaluation order. Read-only; scoped to the caller's organization.

category
crm (CRM)
permissions
crm.cadence.view

Parameters

cadence_id : string
UUID of the cadence whose branches to list.

cadence_graph_get read-only

Return a cadence's full graph: its ordered steps plus the conditional branch edges (step->step routes guarded by engagement/field/score/random conditions). Read-only; scoped to the caller's organization.

category
crm (CRM)
permissions
crm.cadence.view

Parameters

cadence_id : string
UUID of the cadence whose graph to return.

call_initiate

Place one outbound call to a phone number for the current organization. Dispatches through the org's configured telephony provider; defaults to a SANDBOX no-op (records intent to the call log, does not actually dial) unless a live provider is configured. Org-isolated.

category
crm (CRM)
permissions
crm.call.initiate

Parameters

to : string
Recipient phone number (E.164 preferred, e.g. +15551234567).
from_number : string (optional)
Calling number; defaults to the org's configured from-number.
subject : string (optional)
Optional subject/label for the call activity.

call_log_get read-only

Fetch a single call log by id for the current organization, including the transcript and AI-summary draft/approval state. Org-isolated: a call log from another organization is treated as not found.

category
crm (CRM)
permissions
crm.call.view

Parameters

call_log_id : string
UUID of the call log to fetch.

call_log_list read-only

List call logs for the current organization (most recent first). Filter by direction (inbound/outbound) and disposition. Returns call identifiers, phone number, duration, disposition, and AI-summary status (draft present / approved) — NOT the raw transcript. Org-isolated.

category
crm (CRM)
permissions
crm.call.view

Parameters

direction : string (optional)
Filter by direction: inbound or outbound. — enum: inbound, outbound
disposition : string (optional)
Filter by call disposition (e.g. connected, no_answer, voicemail).
limit : integer (optional)
Maximum number of call logs to return (1-100). — default: 50

call_summary_approve

Human-approve an AI-generated call-summary DRAFT, creating a CRM Activity from it. An AI call summary is always a DRAFT requiring explicit human approval — this tool is that gate (it records the approving user). Optionally pass an edited_summary to correct the draft before approving. Org-isolated; requires an authenticated user.

category
crm (CRM)
permissions
crm.call.summarize

Parameters

call_log_id : string
UUID of the call log whose AI summary draft to approve.
edited_summary : string (optional)
Corrected summary text to approve instead of the raw draft.

lead_assign

Assign a lead by running the org's routing rules: sets the lead owner and writes an assignment audit row. The lead and the resolved assignee must both belong to the caller's organization (cross-org assignment is refused with zero writes). Writes only to the caller's own organization.

category
crm (CRM)
permissions
crm.run_assignment

Parameters

lead_id : string
UUID of the lead to assign.

lead_reassign

Manually reassign a lead to a specific owner (no rule evaluation) and write an assignment audit row. The lead and the target owner must both belong to the caller's organization (cross-org reassignment is refused with zero writes). Writes only to the caller's own organization.

category
crm (CRM)
permissions
crm.run_assignment

Parameters

lead_id : string
UUID of the lead to reassign.
owner_id : string
UUID of the user to reassign the lead to (must be in the caller's organization).
reason : string (optional)
Optional human-readable reassignment reason.

opportunity_field_history_list read-only

List the append-only audit of tracked Opportunity field changes (stage, amount, probability, expected_close_date) across the viewer's organization subtree. Optionally filter by a single opportunity, a single field, or a since-date. Newest first. Read-only.

category
crm (CRM)
permissions
opportunity.field_history.view

Parameters

opportunity_id : string (optional)
Restrict to a single opportunity (UUID).
field_name : string (optional)
Restrict to one field: stage | amount | probability | expected_close_date.
since : string (optional)
Only changes on/after this date (YYYY-MM-DD).
limit : integer (optional)
Max rows to return (1-1000, default 200). — default: 200

pipeline_inspect read-only

Inspect how the sales pipeline is moving over a trailing window: stage velocity (avg days between stage moves), number of deals that slipped (stage regression or pushed close date), amount-change count + net delta, stage-transition counts, plus a daily snapshot trend (open deals, total + weighted amount). Read-only; computed live over the viewer's organization subtree.

category
crm (CRM)
permissions
pipeline.inspection.view

Parameters

window_days : integer (optional)
Trailing window in days (default 30). — default: 30

pipeline_snapshot_run

Capture a point-in-time snapshot of every open opportunity in the caller's organization for today (or a given date). Idempotent — re-running for the same day upserts rather than duplicating. Returns created/updated counts. Writes only to the caller's own organization.

category
crm (CRM)
permissions
pipeline.snapshot.run

Parameters

snapshot_date : string (optional)
Date to snapshot as (YYYY-MM-DD). Default: today (UTC).
include_closed : boolean (optional)
Also snapshot closed-won/lost deals. Default False. — default: false

routing_rule_create

Create a lead-routing (assignment) rule in the caller's organization. criteria is the segment filter DSL over CRM_LEAD fields; strategy is one of round_robin/load_balance/specific_owner/territory. Any target owner/team/territory must belong to the caller's organization. Writes only to the caller's own organization.

category
crm (CRM)
permissions
crm.manage_assignment_rules

Parameters

name : string
Human-readable rule name (unique per org).
strategy : string (optional)
round_robin | load_balance | specific_owner | territory. — default: "round_robin"
criteria : object (optional)
Segment-DSL filter over CRM_LEAD fields. {} = catch-all.
priority : integer (optional)
Lower runs first; first matching rule wins. Default 0. — default: 0
description : string (optional)
(no description)
target_owner_id : string (optional)
User id for specific_owner strategy.
target_team_id : string (optional)
Org id pool for round_robin/load_balance.
target_territory_id : string (optional)
Territory id for territory strategy.
is_active : boolean (optional)
(no description) — default: true

routing_rule_list read-only

List the lead-routing (assignment) rules of the caller's organization in evaluation order (priority ascending; first match wins). Read-only; scoped to the caller's organization.

category
crm (CRM)
permissions
crm.view_assignment_audit

Parameters

include_inactive : boolean (optional)
Include inactive rules too. Default false. — default: false

tag_apply destructive

Attach a managed tag to a CRM record (lead, contact, account, or opportunity). Idempotent — re-applying an existing tag is a no-op. Resolve the tag by 'tag' (UUID) or 'tag_name'; with tag_name and no existing tag, the tag is created only if you have tag.manage.

category
crm (CRM)
permissions
tag.apply

Parameters

content_type : string
Target entity type: lead, contact, account, or opportunity. — enum: lead, contact, account, opportunity
object_id : string
UUID of the target record.
tag : string (optional)
UUID of an existing tag to apply.
tag_name : string (optional)
Tag name to apply (get-or-create if you have tag.manage).

tag_create destructive

Create a managed CRM tag in the current organization. The slug is computed from the name (so 'VIP' and 'vip' collapse to one tag); a name that resolves to an existing slug returns a slug_exists error with the existing tag.

category
crm (CRM)
permissions
tag.manage

Parameters

name : string
Display name of the tag (max 80 chars).
color : string (optional)
Hex chip color, e.g. #6B7280.
category : string (optional)
Optional grouping, e.g. 'lifecycle'.
description : string (optional)
Optional short description.

tag_list read-only

List the organization's managed CRM tags (the tag taxonomy), ordered by usage. Optionally filter by category or a name substring (q), and choose whether to include archived tags.

category
crm (CRM)
permissions
tag.view

Parameters

category : string (optional)
Filter to tags in this category (exact match).
q : string (optional)
Case-insensitive substring match on the tag name.
include_archived : boolean (optional)
Include archived tags. Default False. — default: false
limit : integer (optional)
Max tags to return (1-200). — default: 100

tag_remove destructive

Detach a tag from a CRM record (lead, contact, account, or opportunity). Idempotent — removing an absent tag is a no-op. Resolve the tag by 'tag' (UUID) or 'tag_name'. Never creates a tag.

category
crm (CRM)
permissions
tag.apply

Parameters

content_type : string
Target entity type: lead, contact, account, or opportunity. — enum: lead, contact, account, opportunity
object_id : string
UUID of the target record.
tag : string (optional)
UUID of the tag to detach.
tag_name : string (optional)
Name of the tag to detach.

work_item_complete

Complete a work-queue item. For an activity, marks it completed (pass disposition/duration_minutes/note to log it as a call); for a cadence_step, advances the enrollment to its next step.

category
crm (CRM)
permissions
crm.work_queue.view_own

Parameters

kind : string
Item kind: activity | cadence_step.
ref : string
Source PK (Activity id or Enrollment id).
disposition : string (optional)
Call disposition; when set, completes as a logged call.
duration_minutes : integer (optional)
Call duration in minutes (logged-call path).
note : string (optional)
Optional note appended to the activity.

work_item_snooze

Snooze a work-queue item (any kind) until snoozed_until (ISO-8601). The item is hidden from the rep's 'Today' queue until that time.

category
crm (CRM)
permissions
crm.work_queue.view_own

Parameters

kind : string
Item kind: activity | cadence_step | hot_lead | at_risk_opp.
ref : string
Source PK of the item.
snoozed_until : string
ISO-8601 datetime to re-surface the item.
note : string (optional)
Optional note attached to the snooze.

work_queue_today read-only

Return the rep's prioritized 'Today' work queue (overdue / due_today / upcoming buckets with ranked items), blending planned activities, due cadence steps, hot leads and at-risk deals. Read-only; computed live.

category
crm (CRM)
permissions
crm.work_queue.view_own

Parameters

buckets : array (optional)
Subset of overdue,due_today,upcoming to return.
types : array (optional)
Filter item subtypes (call,email,meeting,task,linkedin,manual_task).
include_signals : boolean (optional)
Include hot-lead / at-risk-opportunity items. Default True. — default: true
upcoming_days : integer (optional)
Upcoming window in days (default 7). — default: 7
limit : integer (optional)
Max items to return (1-500, default 200). — default: 200