AI tools — Marketing
22 tools. The latest schema is always in marketing_tool_catalog once connected.
Activate a workflow
Write proposalScope:marketing:writemarketing_activate_workflowActivate a marketing automation workflow so it starts running and messaging customers; same checks as the Activate button. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
workflowName | string | no | Workflow name (empty if the workflow is open on screen) |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_activate_workflow",
"arguments": {
"args": {
"workflowName": "Chăm sóc khách mới"
}
}
}Automation building blocks
ReadScope:marketing:readmarketing_automation_catalogBuilding blocks for marketing automation workflows: trigger types, action types (ZNS, email, tagging…) with config fields, and wait/branch steps.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_automation_catalog/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_automation_catalog",
"arguments": {
"args": {}
}
}Validate a workflow graph
ReadScope:marketing:readmarketing_check_graphValidate an unsaved marketing workflow graph with the same checks as the Activate button: orphan steps, loops, missing config, unready channels. Writes nothing.
| Parameter | Type | Required | Description |
|---|---|---|---|
graph | object | no | Compact workflow graph |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_check_graph/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"graph":{"trigger":"contact_created","steps":[{"ref":"S1","kind":"action","actionType":"send_email"},{"ref":"S2","kind":"wait","wait":{"wait_type":"duration_hours","duration_hours":24}},{"ref":"S3","kind":"action","actionType":"send_zns"}]}}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_check_graph",
"arguments": {
"args": {
"graph": {
"trigger": "contact_created",
"steps": [
{
"ref": "S1",
"kind": "action",
"actionType": "send_email"
},
{
"ref": "S2",
"kind": "wait",
"wait": {
"wait_type": "duration_hours",
"duration_hours": 24
}
},
{
"ref": "S3",
"kind": "action",
"actionType": "send_zns"
}
]
}
}
}
}Create a web form
Write proposalScope:marketing:writemarketing_create_web_formCreate a lead-capture web form (embeddable on a website) from a description: name, type, fields, theme, post-submit action. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Form name |
formType | string | no | LeadCapture (default), Survey, Registration… |
fields | object[] | yes | Fields in display order |
theme | object | no | Theme |
submitAction | object | no | Post-submit action |
publish | boolean | no | true = publish immediately |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_create_web_form",
"arguments": {
"args": {
"name": "Đăng ký học thử yoga",
"fields": [
{
"label": "Họ tên",
"fieldType": "Text",
"isRequired": true
},
{
"label": "Số điện thoại",
"fieldType": "Phone",
"isRequired": true
}
],
"publish": false
}
}
}Create a workflow
Write proposalScope:marketing:writemarketing_create_workflow_from_graphCreate a new marketing automation workflow (ZNS/email, waits, branches…) from a compact graph. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Workflow name |
goalType | string | no | Workflow goal, default Lead |
graph | object | no | Compact workflow graph |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_create_workflow_from_graph",
"arguments": {
"args": {
"name": "Chào mừng khách mới",
"goalType": "Lead",
"graph": {
"trigger": "contact_created",
"steps": [
{
"ref": "S1",
"kind": "action",
"actionType": "send_email"
},
{
"ref": "S2",
"kind": "wait",
"wait": {
"wait_type": "duration_hours",
"duration_hours": 24
}
},
{
"ref": "S3",
"kind": "action",
"actionType": "send_zns"
}
]
}
}
}
}Delete a landing page
Write proposalScope:marketing:writemarketing_delete_landingDelete a landing page. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
pageId | string | yes | Id of the page to delete |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_delete_landing",
"arguments": {
"args": {
"pageId": "00000000-0000-0000-0000-000000000000"
}
}
}Email campaign details
ReadScope:marketing:readmarketing_email_campaigns_getDetails of one email campaign.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | Campaign id (from marketing_email_campaigns_search) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_email_campaigns_get/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"id":"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_email_campaigns_get",
"arguments": {
"args": {
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
}
}
}Email campaigns
ReadScope:marketing:readmarketing_email_campaigns_searchList email campaigns: subject, status, sent, opened, clicked; filter by status, keyword and recent days; paginated.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | no | Campaign status |
q | string | no | Keyword |
days | integer | no | Recent days |
page | integer | no | Page, starting at 1 |
size | integer | no | Rows per page, max 50 |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_email_campaigns_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"days":30}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_email_campaigns_search",
"arguments": {
"args": {
"days": 30
}
}
}Email templates
ReadScope:marketing:readmarketing_email_templates_searchList email templates filtered by category and keyword; paginated.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | no | Template category |
q | string | no | Keyword |
page | integer | no | Page, starting at 1 |
size | integer | no | Rows per page, max 50 |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_email_templates_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"q":"khuyến mãi"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_email_templates_search",
"arguments": {
"args": {
"q": "khuyến mãi"
}
}
}Workflow metrics
ReadScope:marketing:readmarketing_get_workflow_statsRun metrics of one workflow over the last N days versus the previous N days: entries, in-flow, messages sent, skipped, failed, conversions, revenue.
| Parameter | Type | Required | Description |
|---|---|---|---|
workflowName | string | no | Workflow name (empty if open on screen) |
days | integer | no | Recent days, default 30 |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_get_workflow_stats/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"workflowName":"Chăm sóc khách mới","days":30}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_get_workflow_stats",
"arguments": {
"args": {
"workflowName": "Chăm sóc khách mới",
"days": 30
}
}
}Google integrations
ReadScope:marketing:readmarketing_integrations_listConnected Google integrations: type, status, account, token expiry. Never returns tokens.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_integrations_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_integrations_list",
"arguments": {
"args": {}
}
}Landing pages
ReadScope:marketing:readmarketing_list_landing_pagesList the workspace's landing pages: name, path, and whether each is a draft or published. Takes no parameters and writes nothing.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_list_landing_pages/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_list_landing_pages",
"arguments": {
"args": {}
}
}Web forms
ReadScope:marketing:readmarketing_list_web_formsList lead-capture web forms: name, status, field count, views, submissions and fields.
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | no | Part of the form name |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_list_web_forms/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"search":"yoga"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_list_web_forms",
"arguments": {
"args": {
"search": "yoga"
}
}
}Automation workflows
ReadScope:marketing:readmarketing_list_workflowsList marketing automation workflows: name, status (draft, active, paused), trigger type, step count.
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | no | Part of the workflow name |
status | string | no | Draft, Active or Paused |
includeGraph | boolean | no | true = include the graph when exactly one result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_list_workflows/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"status":"Active"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_list_workflows",
"arguments": {
"args": {
"status": "Active"
}
}
}Pause a workflow
Write proposalScope:marketing:writemarketing_pause_workflowPause a running workflow: stop new entries and stop sending. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
workflowName | string | no | Workflow name (empty if the workflow is open on screen) |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_pause_workflow",
"arguments": {
"args": {
"workflowName": "Chăm sóc khách mới"
}
}
}Publish a landing page
Write proposalScope:marketing:writemarketing_publish_landingPublish a draft landing page so outside visitors can open it by link. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
pageId | string | yes | Id of the page to publish |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_publish_landing",
"arguments": {
"args": {
"pageId": "00000000-0000-0000-0000-000000000000"
}
}
}Marketing overview
ReadScope:marketing:readmarketing_reports_overviewMarketing performance overview (sent, opened, clicked, conversions by channel) for a date range.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | no | From date (yyyy-MM-dd) |
to | string | no | To date (yyyy-MM-dd) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_reports_overview/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"from":"2026-10-01","to":"2026-10-27"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_reports_overview",
"arguments": {
"args": {
"from": "2026-10-01",
"to": "2026-10-27"
}
}
}Save a landing page draft
Write proposalScope:marketing:writemarketing_save_landing_draftSave a landing page draft (hero, text, pricing and form blocks) without publishing. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
pageId | string | no | Page id (empty to create a new page) |
name | string | yes | Page name |
slug | string | no | Page path |
title | string | yes | Title visitors see |
blocksJson | string | yes | The page's blocks as a JSON array |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_save_landing_draft",
"arguments": {
"args": {
"name": "Khuyến mãi tháng 11",
"title": "Ưu đãi tháng 11",
"blocksJson": "[]"
}
}
}Email senders
ReadScope:marketing:readmarketing_sender_profiles_listList email sender profiles: name, address and verification status.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/marketing/marketing_sender_profiles_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_sender_profiles_list",
"arguments": {
"args": {}
}
}Unpublish a landing page
Write proposalScope:marketing:writemarketing_unpublish_landingUnpublish a landing page so its link no longer shows content. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
pageId | string | yes | Id of the page to unpublish |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_unpublish_landing",
"arguments": {
"args": {
"pageId": "00000000-0000-0000-0000-000000000000"
}
}
}Update a web form
Write proposalScope:marketing:writemarketing_update_web_formEdit a web form: add, remove or update fields, rename, theme, thank-you message — all changes in one call. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
formName | string | yes | Form to edit |
name | string | no | New name (if renaming) |
addFields | object[] | no | Fields to add |
removeFields | string[] | no | Fields to remove |
updateFields | object[] | no | Fields to update |
theme | object | no | Theme |
submitAction | object | no | Post-submit action |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_update_web_form",
"arguments": {
"args": {
"formName": "Đăng ký học thử yoga",
"name": "Đăng ký học thử"
}
}
}Update a workflow
Write proposalScope:marketing:writemarketing_update_workflow_graphEdit an existing workflow by sending the full updated graph plus the version you read; running workflows must be paused first. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
workflowName | string | no | Workflow name (empty if open on screen) |
baseVersion | integer | no | Graph version you read |
graph | object | no | Updated compact graph |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "marketing_update_workflow_graph",
"arguments": {
"args": {
"workflowName": "Chào mừng khách mới",
"baseVersion": 1834512907,
"graph": {
"trigger": "contact_created",
"steps": [
{
"ref": "S1",
"kind": "action",
"actionType": "send_email"
},
{
"ref": "S2",
"kind": "wait",
"wait": {
"wait_type": "duration_hours",
"duration_hours": 48
}
},
{
"ref": "S3",
"kind": "action",
"actionType": "send_zns"
}
]
}
}
}
}