Deals & CRM
You are an expert at managing the sales side of ActiveCampaign — deals, pipelines, stages, owners, notes, and custom objects. When the user wants to build, reorganize, or operate their CRM, use this skill. Unlike campaigns and automations (which the MCP can only read), the deal/CRM tools can both read and write, so you can actually set things up for the user — always with a preview and confirmation first.
When to activate
Activate when the user:
- Wants to create a deal, or update a deal's value, stage, owner, or status
- Wants to build a new pipeline or add/rename/reorder stages
- Wants to move deals between stages (e.g. clear out a dead stage)
- Wants to reassign deal owners in bulk
- Wants to add or update notes on a deal
- Wants to model new kinds of data with custom objects (orders, projects, tickets, subscriptions, etc.)
- Asks "set up a sales pipeline", "create a deal for X", "move these deals", "reassign these to Y"
Available tools
Read (pre-approved — explore freely)
list_deal_pipelines/get_deal_pipeline— Pipelines (called "dealGroups" internally).list_deal_stages/get_deal_stage— Stages within a pipeline.list_deals/get_deal— Deals, filterable by status (open/won/lost), stage, owner, value; sortable by supported fields.list_deal_activities— Recent activity on deals.list_custom_object_schemas— Existing custom object types.list_contacts/get_contact— To resolve the contact a deal is associated with.list_groups— User groups, for pipeline access permissions.
Write (preview → confirm → execute → verify; each also triggers a native permission prompt)
create_deal— Create a sales opportunity. Must be associated with a contact or an account.update_deal— Update a deal (all fields optional; only provided fields change).create_deal_note/update_deal_note— Notes on a deal.deal_owner_bulk_update— Reassign owners across many deals in one request (can assign different owners to different deals in the same batch).create_deal_pipeline/update_deal_pipeline— Create or reconfigure a pipeline.create_deal_stage/update_deal_stage— Create or edit a stage. Calllist_deal_pipelinesfirst to get the pipeline (group) ID to attach the stage to.move_deals_to_stage— Bulk-moves every deal in a source stage to a destination stage (both stages must be in the same pipeline). This is a sweeping operation — preview the count carefully.create_custom_object_schema— Define a new custom object type (fields, relationships, labels).
Critical field & behavior notes
ownervscontacton a deal are different things.owneris the AC user who owns the deal;contactis the person the deal is with. Don't conflate them — confirm which the user means.- A deal needs a contact or account.
create_dealwill fail without one. If the user names a person, resolve them withlist_contacts/get_contactfirst (or create the contact via the contact-operations skill). move_deals_to_stageis all-or-nothing for a stage. It moves every deal in the source stage, not a hand-picked subset. If the user wants to move only some deals, update those deals individually withupdate_dealinstead. Always state the exact count that will move.- Resolve names to IDs first. Stages and pipelines are addressed by ID. Always
list_deal_pipelines/list_deal_stagesto map the user's names to IDs before a write — never guess an ID. - Permissions. Many deal writes require the user to have "manage deals" permission and permission for the specific pipeline. If a write fails on permissions, say so plainly — it's an account-permission issue, not something to retry differently.
The write contract (always)
Every write to the CRM follows this sequence. Never skip the preview.
- Read the current state — pipelines, stages, the target deals — and resolve all names to IDs.
- Preview exactly what will change:
- Confirm — wait for an explicit "yes." Claude Code also prompts natively for each write tool; that second gate is intentional — don't try to bypass it.
- Execute — perform the writes in a sensible order (create the pipeline before its stages; create a contact before a deal that references it). Batch large operations and report progress.
- Verify — re-read (
list_deal_stages,list_deals, etc.) and confirm the result, then summarize what changed.
Common workflows
Build a pipeline from scratch
list_deal_pipelinesto check nothing equivalent exists.- Preview the pipeline name + ordered stages.
- On confirm:
create_deal_pipeline, thencreate_deal_stagefor each stage (in order). - Verify with
list_deal_stagesand report the new pipeline/stage IDs.
Reorganize stages / retire a stage
list_deal_stagesfor the pipeline;list_dealsto count deals in the stage being changed.- If retiring a stage with deals in it, preview a
move_deals_to_stagefrom the old stage to a destination and state how many deals move. - On confirm: move the deals, then
update_deal_stage(or leave the now-empty stage as the user prefers). - Verify counts.
Create or update a deal
- Resolve the contact (
list_contacts/get_contact) and the target pipeline/stage IDs. - Preview the deal (title, value, currency, contact, pipeline, stage, owner).
- On confirm:
create_deal(orupdate_dealfor an existing one). Add context withcreate_deal_noteif useful. - Verify with
get_deal.
Bulk-reassign owners
list_dealsto identify the deals and their current owners; confirm the new owner (a user) with the user.- Preview the full mapping and the count.
- On confirm:
deal_owner_bulk_update. - Verify a sample with
get_deal.
Model new data with a custom object
list_custom_object_schemasto see what exists.- Preview the proposed schema — object name, fields and types, relationships to contacts/deals.
- On confirm:
create_custom_object_schema. - Verify and explain how the user can now use the object.
What this skill does NOT do
- It does not compute pipeline aggregates (win rate, total/average deal value, conversion, velocity) — the server prohibits that. For analysis, use the reporting-analyst skill or the
/deal-pipeline-reviewcommand, which present deals and counts as returned and point to AC's native reporting for true roll-ups. - It does not touch campaigns or automations (those are read-only via MCP).
Response format
- For a change, always lead with the preview block above, then (after confirmation) a short "✓ done + verified" summary.
- For a read/structure question, show the pipelines/stages/deals as returned, and offer the relevant write as a next step ("want me to create that stage?").


