AI tools — Marketing

22 tools. The latest schema is always in marketing_tool_catalog once connected.

Activate a workflow

Write proposalScope: marketing:write
marketing_activate_workflow

Activate 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.

ParameterTypeRequiredDescription
workflowNamestringnoWorkflow 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:read
marketing_automation_catalog

Building 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:read
marketing_check_graph

Validate an unsaved marketing workflow graph with the same checks as the Activate button: orphan steps, loops, missing config, unready channels. Writes nothing.

ParameterTypeRequiredDescription
graphobjectnoCompact 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:write
marketing_create_web_form

Create 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.

ParameterTypeRequiredDescription
namestringyesForm name
formTypestringnoLeadCapture (default), Survey, Registration…
fieldsobject[]yesFields in display order
themeobjectnoTheme
submitActionobjectnoPost-submit action
publishbooleannotrue = 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:write
marketing_create_workflow_from_graph

Create 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.

ParameterTypeRequiredDescription
namestringyesWorkflow name
goalTypestringnoWorkflow goal, default Lead
graphobjectnoCompact 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:write
marketing_delete_landing

Delete a landing page. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
pageIdstringyesId 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:read
marketing_email_campaigns_get

Details of one email campaign.

ParameterTypeRequiredDescription
idstringyesCampaign 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"
    }
  }
}

Workflow metrics

ReadScope: marketing:read
marketing_get_workflow_stats

Run metrics of one workflow over the last N days versus the previous N days: entries, in-flow, messages sent, skipped, failed, conversions, revenue.

ParameterTypeRequiredDescription
workflowNamestringnoWorkflow name (empty if open on screen)
daysintegernoRecent 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:read
marketing_integrations_list

Connected 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:read
marketing_list_landing_pages

List 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:read
marketing_list_web_forms

List lead-capture web forms: name, status, field count, views, submissions and fields.

ParameterTypeRequiredDescription
searchstringnoPart 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:read
marketing_list_workflows

List marketing automation workflows: name, status (draft, active, paused), trigger type, step count.

ParameterTypeRequiredDescription
searchstringnoPart of the workflow name
statusstringnoDraft, Active or Paused
includeGraphbooleannotrue = 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:write
marketing_pause_workflow

Pause a running workflow: stop new entries and stop sending. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
workflowNamestringnoWorkflow 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:write
marketing_publish_landing

Publish 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.

ParameterTypeRequiredDescription
pageIdstringyesId 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:read
marketing_reports_overview

Marketing performance overview (sent, opened, clicked, conversions by channel) for a date range.

ParameterTypeRequiredDescription
fromstringnoFrom date (yyyy-MM-dd)
tostringnoTo 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:write
marketing_save_landing_draft

Save 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.

ParameterTypeRequiredDescription
pageIdstringnoPage id (empty to create a new page)
namestringyesPage name
slugstringnoPage path
titlestringyesTitle visitors see
blocksJsonstringyesThe 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:read
marketing_sender_profiles_list

List 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:write
marketing_unpublish_landing

Unpublish a landing page so its link no longer shows content. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
pageIdstringyesId 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:write
marketing_update_web_form

Edit 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.

ParameterTypeRequiredDescription
formNamestringyesForm to edit
namestringnoNew name (if renaming)
addFieldsobject[]noFields to add
removeFieldsstring[]noFields to remove
updateFieldsobject[]noFields to update
themeobjectnoTheme
submitActionobjectnoPost-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:write
marketing_update_workflow_graph

Edit 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.

ParameterTypeRequiredDescription
workflowNamestringnoWorkflow name (empty if open on screen)
baseVersionintegernoGraph version you read
graphobjectnoUpdated 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"
          }
        ]
      }
    }
  }
}