marketingCampaign Management

15 MCP tools.

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

Tools

form_create

Create a marketing web-to-lead Form from a spec. The form ALWAYS lands in DRAFT status (a human must publish it). fields_schema is a list of {key,type,label,required,map_to} where type is one of text|email|phone|textarea|select|checkbox|radio|hidden|consent and map_to (optional) is one of first_name|last_name|email|phone|company_name|title|source|notes.

category
marketing (Campaign Management)
permissions
marketing.form.manage

Parameters

name : string
Form name (unique slug derived per org).
fields_schema : array (optional)
List of field defs (see description for grammar).
lead_target : string (optional)
crm | marketing (default crm). — default: "crm"
default_source : string (optional)
(no description) — default: "web_form"
slug : string (optional)
Override the auto-derived slug.

form_get read-only

Get one marketing Form by id, including its field schema, anti-spam config, automation wiring, and submission counts (total + by status).

category
marketing (Campaign Management)
permissions
marketing.form.view

Parameters

form_id : string
UUID of the Form.

form_list read-only

List marketing Forms (web-to-lead capture forms) for the current organization. Optionally filter by status (DRAFT|PUBLISHED|ARCHIVED).

category
marketing (Campaign Management)
permissions
marketing.form.view

Parameters

status : string (optional)
Filter by status: DRAFT | PUBLISHED | ARCHIVED.
limit : integer (optional)
(no description) — default: 50

form_submissions_list read-only

List recent submissions for a marketing Form (filter by status), plus an aggregate count by status. Returns the validated raw payload, resolved Lead id, spam score, and consent flag per submission.

category
marketing (Campaign Management)
permissions
marketing.form_submission.view

Parameters

form_id : string
UUID of the Form.
status : string (optional)
Filter by ACCEPTED | REJECTED | DUPLICATE.
limit : integer (optional)
(no description) — default: 50

landing_page_publish

Publish a marketing Landing Page: render its block list through the server-side allow-list HTML sanitizer (no script/style/on* survive), store the sanitized rendered_html snapshot, and set status PUBLISHED. The public page only ever serves this pre-sanitized snapshot.

category
marketing (Campaign Management)
permissions
marketing.landing_page.publish

Parameters

landing_page_id : string
UUID of the Landing Page to publish.

lead_grade_get read-only

Get a marketing lead's current behaviour score, demographic grade score and overall letter grade (A/B/C/D), plus the org's active scoring rubric. Read-only and org-isolated: leads from other organizations are never returned.

category
marketing (Campaign Management)
permissions
marketing.manage_scoring

Parameters

lead_id : string
UUID of the marketing lead to grade.

segment_create

Create a marketing Segment (audience/list). segment_type is STATIC, DYNAMIC, or HYBRID; DYNAMIC/HYBRID require a criteria DSL which is validated against the per-entity field catalog before creation.

category
marketing (Campaign Management)
permissions
marketing.segment.create

Parameters

name : string
Segment name (unique per org among active segments).
segment_type : string (optional)
STATIC | DYNAMIC | HYBRID — default: "STATIC"
entity_type : string (optional)
MARKETING_LEAD | CRM_LEAD | CRM_CONTACT — default: "MARKETING_LEAD"
criteria : object (optional)
Criteria DSL (required for DYNAMIC/HYBRID).
description : string (optional)
(no description)
exclude_suppressed : boolean (optional)
(no description) — default: true
auto_refresh : boolean (optional)
(no description) — default: true
refresh_interval_min : integer (optional)
(no description) — default: 60

segment_evaluate

Trigger (re)materialization of a DYNAMIC/HYBRID marketing Segment: recompute its membership from the criteria DSL and update the snapshot (member_count, eval_status, last_evaluated_at). Returns the resulting snapshot.

category
marketing (Campaign Management)
permissions
marketing.segment.evaluate

Parameters

segment_id : string
UUID of the Segment to evaluate.

segment_get read-only

Get one marketing Segment by id, including its materialization snapshot stats (member_count, eval_status, last_evaluated_at) and a live count of active memberships.

category
marketing (Campaign Management)
permissions
marketing.segment.view

Parameters

segment_id : string
UUID of the Segment.

segment_list read-only

List and filter marketing Segments (audiences/lists) for the current organization. Filter by segment_type, entity_type, eval_status, or archived state.

category
marketing (Campaign Management)
permissions
marketing.segment.view

Parameters

segment_type : string (optional)
STATIC | DYNAMIC | HYBRID
entity_type : string (optional)
MARKETING_LEAD | CRM_LEAD | CRM_CONTACT
eval_status : string (optional)
NEVER | PENDING | RUNNING | READY | FAILED
is_archived : boolean (optional)
Filter by archived state.
limit : integer (optional)
(no description) — default: 50

segment_members read-only

List the members of a marketing Segment (paginated, hydrated). Returns lightweight entity summaries (id, name, email) for each active membership, resolved from the segment's entity_type.

category
marketing (Campaign Management)
permissions
marketing.segment.view

Parameters

segment_id : string
UUID of the Segment.
source : string (optional)
Filter by membership source: STATIC | DYNAMIC.
limit : integer (optional)
(no description) — default: 50
offset : integer (optional)
(no description) — default: 0

sms_send

Send one SMS to a recipient for the current organization. Checks the do-not-contact (suppression) list FIRST and refuses if suppressed. Dispatches through the org's configured provider; defaults to a SANDBOX no-op (records intent, does not actually send) unless a live provider is configured. Org-isolated.

category
marketing (Campaign Management)
permissions
marketing.send_sms

Parameters

to : string
Recipient phone number (E.164 preferred, e.g. +15551234567).
body : string
Message text to send.
from_number : string (optional)
Sending number; defaults to the org's configured from-number.

suppression_add

Add (suppress) a recipient on the current organization's do-not-contact list for a channel. Idempotent: re-adding an existing identifier reactivates it. Org-isolated.

category
marketing (Campaign Management)
permissions
marketing.manage_consent

Parameters

identifier : string
Email address or phone number to suppress.
channel : string (optional)
email | sms — default: "email"
reason : string (optional)
unsubscribe | bounce | complaint | manual | gdpr_erase — default: "manual"
note : string (optional)
(no description)

suppression_list read-only

List the current organization's email/SMS suppression (do-not-contact) entries. Filter by channel or reason. Read-only and org-isolated.

category
marketing (Campaign Management)
permissions
marketing.manage_consent

Parameters

channel : string (optional)
email | sms
reason : string (optional)
unsubscribe | bounce | complaint | manual | gdpr_erase
search : string (optional)
Substring match on the suppressed identifier.
limit : integer (optional)
(no description) — default: 50