Actions

Call the upsertIcp MCP tool

Changed on

Create or enrich ONE ICP by name on the active brand profile (max 5 ICPs). Matched case-insensitively on name: list columns append after dedup (titles, industries, triggers, pains, fit rules), scalar columns replace. A new ICP lands with draft fit rules; the user confirms them in the Reachium app before any grader uses them. Only propose what the user told you or what you verified; do not invent titles or triggers. To change an ICP's name or delete one, send the user to the brand profile page.

Called through the Actions bridge: the response is that tool's own result, wrapped as { data: <tool result> } under HTTP 200. Billing, daily-cap, and confirm-step outcomes are embedded INSIDE data, never remapped to an HTTP status (see the templated /api/v1/actions/{toolName} operation above for the full protocol, and x-mcp-actions for this tool's machine-readable scope/cap/confirm_behavior fields). Authentication, request-shape, and optional idempotency-protocol failures still use their documented non-200 statuses.

post/api/v1/actions/upsertIcp

Request

  • Base URL: https://app.reachium.io
  • URL: https://app.reachium.io/api/v1/actions/upsertIcp
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Optional caller-generated key (8-200 characters: letters, digits, dot, underscore, colon, or hyphen). A final tool result is replayed for the same key and body. An ambiguous result remains 409 under that key; reconcile external state before using a new key. Reuse with a different body returns 422.

Request body

namestring required
priorityinteger
status'active' | 'paused'
titles_includestring[]
titles_excludestring[]
senioritystring[]
functionsstring[]
headcount_bandsstring[]
industriesstring[]
geographiesstring[]
stagestring[]
keywordsstring[]
triggersstring[]
pain_pointsstring[]
verbatim_phrasesstring[]
desired_outcomestring nullable
status_quostring nullable
sophisticationstring nullable
must_havestring[]
should_havestring[]
disqualifiersstring[]
example_fitstring nullable
example_no_fitstring nullable
where_to_findstring[]
angle_idsstring[]
proof_idsstring[]
promise_overridestring nullable

Response

The result of calling this tool.

dataunknown required
errorunknown required

Changes