22 MCP tools.
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.
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)
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.
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.
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.
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.
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
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.
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.
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.
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
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
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
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
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
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).
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.
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
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.
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.
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.
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