AI tools — CRM
92 tools. The latest schema is always in crm_tool_catalog once connected.
Add a customer note
Write proposalScope:crm:writecrm_add_noteAdd a note to a customer profile. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | no | Customer phone |
email | string | no | Customer email |
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
note | string | yes | Note text |
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": "crm_add_note",
"arguments": {
"args": {
"contactCode": "CT08027",
"note": "Khách hẹn gọi lại sau 15h thứ Sáu"
}
}
}Tag a customer
Write proposalScope:crm:writecrm_add_tagAdd an existing catalog tag to a customer. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
tag | string | yes | Tag name from the catalog |
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": "crm_add_tag",
"arguments": {
"args": {
"contactCode": "CT08027",
"tag": "VIP"
}
}
}Appointments
ReadScope:crm:readcrm_appointments_queryQuery appointments: count, list, group by status or type; filter on any Appointments field.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
groupBy | string | no | Group by |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_appointments_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"group","groupBy":"status"}'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": "crm_appointments_query",
"arguments": {
"args": {
"op": "group",
"groupBy": "status"
}
}
}Assign a customer owner
Write proposalScope:crm:writecrm_assign_ownerAssign the owner of a customer. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
assignee | string | yes | Full name, email, staff code or "me" |
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": "crm_assign_owner",
"arguments": {
"args": {
"contactCode": "CT08027",
"assignee": "Nguyễn Văn An"
}
}
}Customer activity log
ReadScope:crm:readcrm_contacts_activityMost recent interaction history of one customer.
| Parameter | Type | Required | Description |
|---|---|---|---|
contact | string | yes | Customer phone, email or name |
limit | integer | no | Max rows (≤ 50, default 10) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_contacts_activity/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"contact":"0901234567","limit":10}'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": "crm_contacts_activity",
"arguments": {
"args": {
"contact": "0901234567",
"limit": 10
}
}
}Customers needing care
ReadScope:crm:readcrm_contacts_careCustomers needing care: upcoming birthdays, long without contact, or leads never called.
| Parameter | Type | Required | Description |
|---|---|---|---|
criteria | string | yes | birthday, inactive = no recent contact, uncontacted_lead = lead never called |
range | string | no | today or week = next 7 days (for birthday) |
days | integer | no | Days without activity (for inactive, default 90) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_contacts_care/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"criteria":"birthday","range":"week"}'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": "crm_contacts_care",
"arguments": {
"args": {
"criteria": "birthday",
"range": "week"
}
}
}Export customers
ExportScope:crm:exportcrm_contacts_exportExport customers or leads to Excel by filter or id list; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
ids | string[] | no | Record ids from a previous result |
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": "crm_contacts_export",
"arguments": {
"args": {
"ids": [
"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
]
}
}
}Customers and leads
ReadScope:crm:readcrm_contacts_queryQuery customers, leads and contacts: count, list, group; filter on any Customers field.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
groupBy | string | no | Group by |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
nhom | string | yes | Group as on screen: khach_hang (customers), lead… |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_contacts_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"list","nhom":"khach_hang","q":"Nguyễn An","limit":10}'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": "crm_contacts_query",
"arguments": {
"args": {
"op": "list",
"nhom": "khach_hang",
"q": "Nguyễn An",
"limit": 10
}
}
}Search contracts
ReadScope:crm:readcrm_contracts_searchLook up CRM contracts by code, customer, status (drafts included); count or list.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_contracts_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"list","q":"HD00012"}'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": "crm_contracts_search",
"arguments": {
"args": {
"op": "list",
"q": "HD00012"
}
}
}Create an appointment
Write proposalScope:crm:writecrm_create_appointmentCreate an appointment with a customer. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
title | string | yes | Title |
startTime | string | yes | Start (ISO-8601 with offset) |
endTime | string | no | End (ISO-8601 with offset) |
appointmentType | string | no | Appointment type |
location | string | no | Location |
locationType | string | no | Location type (in person, online…) |
assignee | string | no | Full name, email, staff code or "me" |
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": "crm_create_appointment",
"arguments": {
"args": {
"contactCode": "CT08027",
"title": "Demo phần mềm",
"startTime": "2026-10-30T14:00:00+07:00",
"appointmentType": "DEMO",
"locationType": "ONLINE"
}
}
}Create a contract from a quotation
Write proposalScope:crm:writecrm_create_contract_from_quotationCreate a draft contract from a sent or accepted quotation. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
quotationCode | string | no | Quotation code |
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": "crm_create_contract_from_quotation",
"arguments": {
"args": {
"quotationCode": "BG00045"
}
}
}Create a lead
Write proposalScope:crm:writecrm_create_leadCreate a new lead. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Customer / lead name |
phone | string | no | Customer phone |
email | string | no | Customer email |
note | string | no | Note text |
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": "crm_create_lead",
"arguments": {
"args": {
"name": "Nguyễn Văn An",
"phone": "0901234567",
"note": "Quan tâm gói Pro"
}
}
}Create an opportunity
Write proposalScope:crm:writecrm_create_opportunityCreate a sales opportunity for a customer. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
name | string | yes | Customer / lead name |
estimatedValue | string | no | Estimated value (VND) |
expectedCloseDate | string | no | Expected close date (yyyy-MM-dd) |
pipeline | string | no | Sales pipeline name |
stage | string | no | Stage name |
assignee | string | no | Full name, email, staff code or "me" |
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": "crm_create_opportunity",
"arguments": {
"args": {
"contactCode": "CT08027",
"name": "Gói Pro 12 tháng",
"estimatedValue": "36000000",
"expectedCloseDate": "2026-11-30"
}
}
}Create a quotation
Write proposalScope:crm:writecrm_create_quotationCreate a draft quotation for a customer, optionally from fill and print templates. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
fillTemplate | string | no | Quotation fill template name or id |
printTemplate | string | no | PDF print template name or id |
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
contactQuery | string | no | — |
title | string | no | Title |
items | object[] | no | Quotation line items |
discountType | string | no | Discount type |
discountValue | number | no | Discount value |
taxRate | number | no | Tax rate (%) |
validUntil | string | no | Valid until (yyyy-MM-dd) |
notes | string | no | Notes |
modelDescription | string | no | Opportunity description |
sections | object[] | no | Sections to read |
paymentTerms | string | no | Payment terms |
warrantyTerms | string | no | Warranty terms |
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": "crm_create_quotation",
"arguments": {
"args": {
"contactCode": "CT08027",
"title": "Báo giá gói Pro 12 tháng",
"items": [
{
"product": "SP001",
"quantity": 1
}
],
"validUntil": "2026-11-15"
}
}
}Create a to-do
Write proposalScope:crm:writecrm_create_taskCreate a to-do task linked to a customer. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
title | string | yes | Title |
dueDate | string | no | Due date (yyyy-MM-dd) |
priority | string | no | Priority |
assignee | string | no | Full name, email, staff code or "me" |
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": "crm_create_task",
"arguments": {
"args": {
"contactCode": "CT08027",
"title": "Gọi tư vấn gói Pro",
"dueDate": "2026-10-30",
"priority": "HIGH"
}
}
}Move an opportunity stage
Write proposalScope:crm:writecrm_move_opportunity_stageMove an open opportunity to another stage in the same pipeline. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
opportunityCode | string | no | Opportunity code (e.g. OPP00012) |
stage | string | yes | Stage name |
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": "crm_move_opportunity_stage",
"arguments": {
"args": {
"opportunityCode": "OPP00012",
"stage": "Đàm phán"
}
}
}Export opportunities
ExportScope:crm:exportcrm_opportunities_exportExport opportunities to Excel by filter or id list; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
ids | string[] | no | Record ids from a previous result |
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": "crm_opportunities_export",
"arguments": {
"args": {
"ids": [
"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
]
}
}
}Opportunities and pipeline
ReadScope:crm:readcrm_opportunities_queryQuery opportunities and pipeline: count, list, group by stage, customer, owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
groupBy | string | no | Group by |
sumFields | string[] | no | Totals over the whole set, returned in totals |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_opportunities_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"group","groupBy":"stage"}'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": "crm_opportunities_query",
"arguments": {
"args": {
"op": "group",
"groupBy": "stage"
}
}
}Find products to quote
ReadScope:crm:readcrm_products_searchLook up products by SKU or name for quotations: price, unit, variants.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | yes | Quick accent-insensitive search |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_products_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"q":"gói pro"}'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": "crm_products_search",
"arguments": {
"args": {
"q": "gói pro"
}
}
}Quotation templates
ReadScope:crm:readcrm_quotation_templates_listQuotation fill templates and PDF print templates.
| Parameter | Type | Required | Description |
|---|---|---|---|
quotationCode | string | no | Quotation code |
name | string | no | Customer / lead name |
kind | string | no | Kind (e.g. fill or print) |
requirements | string | no | Customer requirements to pick a template |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_quotation_templates_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"kind":"print"}'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": "crm_quotation_templates_list",
"arguments": {
"args": {
"kind": "print"
}
}
}Search quotations
ReadScope:crm:readcrm_quotations_searchLook up quotations by code, customer, status (drafts included); count or list.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_quotations_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"list","q":"BG00045"}'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": "crm_quotations_search",
"arguments": {
"args": {
"op": "list",
"q": "BG00045"
}
}
}Remove a customer tag
Write proposalScope:crm:writecrm_remove_tagRemove a tag from a customer. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
tag | string | yes | Tag name from the catalog |
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": "crm_remove_tag",
"arguments": {
"args": {
"contactCode": "CT08027",
"tag": "VIP"
}
}
}Export ads report
ExportScope:crm:exportcrm_reports_ads_exportExport the CRM "Ads" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
kind | string | no | Kind (e.g. fill or print) |
windowDays | integer | no | Window in days |
key | string | no | Stage key |
jobId | string | no | Export job id to check status |
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": "crm_reports_ads_export",
"arguments": {
"args": {
"code": "ads",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Ads report
ReadScope:crm:readcrm_reports_ads_queryCRM "Ads" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
kind | string | no | Kind (e.g. fill or print) |
windowDays | integer | no | Window in days |
key | string | no | Stage key |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_ads_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"ads","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_ads_query",
"arguments": {
"args": {
"code": "ads",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Analytics report
ReadScope:crm:readcrm_reports_analytics_queryCRM "Analytics" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_analytics_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"analytics","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_analytics_query",
"arguments": {
"args": {
"code": "analytics",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export calls and outcomes report
ExportScope:crm:exportcrm_reports_call_outcome_exportExport the CRM "Calls and outcomes" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
outboundOnly | boolean | no | true = outbound calls only (telesales) |
windowDays | integer | no | Window in days |
jobId | string | no | Export job id to check status |
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": "crm_reports_call_outcome_export",
"arguments": {
"args": {
"code": "call_outcome",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Calls and outcomes report
ReadScope:crm:readcrm_reports_call_outcome_queryCRM "Calls and outcomes" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
outboundOnly | boolean | no | true = outbound calls only (telesales) |
windowDays | integer | no | Window in days |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_call_outcome_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"call_outcome","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_call_outcome_query",
"arguments": {
"args": {
"code": "call_outcome",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Email campaigns report
ReadScope:crm:readcrm_reports_campaign_queryCRM "Email campaigns" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_campaign_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"campaign","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_campaign_query",
"arguments": {
"args": {
"code": "campaign",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Care dashboard report
ReadScope:crm:readcrm_reports_care_dashboard_queryCRM "Care dashboard" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_care_dashboard_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"care_dashboard","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_care_dashboard_query",
"arguments": {
"args": {
"code": "care_dashboard",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export customer care report
ExportScope:crm:exportcrm_reports_care_tasks_exportExport the CRM "Customer care" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_care_tasks_export",
"arguments": {
"args": {
"code": "care_tasks",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Customer care report
ReadScope:crm:readcrm_reports_care_tasks_queryCRM "Customer care" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_care_tasks_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"care_tasks","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_care_tasks_query",
"arguments": {
"args": {
"code": "care_tasks",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Customer contacts report
ReadScope:crm:readcrm_reports_contact_queryCRM "Contacts" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_contact_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"contact","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_contact_query",
"arguments": {
"args": {
"code": "contact",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export contracts report
ExportScope:crm:exportcrm_reports_contracts_exportExport the CRM "Contracts" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_contracts_export",
"arguments": {
"args": {
"code": "contracts",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Contracts report
ReadScope:crm:readcrm_reports_contracts_queryCRM "Contracts" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_contracts_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"contracts","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_contracts_query",
"arguments": {
"args": {
"code": "contracts",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export conversations report
ExportScope:crm:exportcrm_reports_conversations_exportExport the CRM "Conversations" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
kind | string | no | Kind (e.g. fill or print) |
windowDays | integer | no | Window in days |
key | string | no | Stage key |
jobId | string | no | Export job id to check status |
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": "crm_reports_conversations_export",
"arguments": {
"args": {
"code": "conversations",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Conversations report
ReadScope:crm:readcrm_reports_conversations_queryCRM "Conversations" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
kind | string | no | Kind (e.g. fill or print) |
windowDays | integer | no | Window in days |
key | string | no | Stage key |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_conversations_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"conversations","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_conversations_query",
"arguments": {
"args": {
"code": "conversations",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export customers report
ExportScope:crm:exportcrm_reports_customers_exportExport the CRM "Customers" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
jobId | string | no | Export job id to check status |
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": "crm_reports_customers_export",
"arguments": {
"args": {
"code": "customers",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Customers report
ReadScope:crm:readcrm_reports_customers_queryCRM "Customers" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_customers_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"customers","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_customers_query",
"arguments": {
"args": {
"code": "customers",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export revenue report
ExportScope:crm:exportcrm_reports_exportExport the CRM "Revenue" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
kind | string | no | Kind (e.g. fill or print) |
granularity | string | no | Time granularity |
splitBySource | boolean | no | true = split by source |
top | integer | no | Top N rows |
jobId | string | no | Export job id to check status |
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": "crm_reports_export",
"arguments": {
"args": {
"code": "revenue",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Forecast report
ReadScope:crm:readcrm_reports_forecast_queryCRM "Forecast" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
rotDays | integer | no | Opportunities idle over N days (default 30) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_forecast_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"forecast","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_forecast_query",
"arguments": {
"args": {
"code": "forecast",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export customer journey report
ExportScope:crm:exportcrm_reports_journey_exportExport the CRM "Customer journey" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_journey_export",
"arguments": {
"args": {
"code": "journey",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Customer journey report
ReadScope:crm:readcrm_reports_journey_queryCRM "Customer journey" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_journey_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"journey","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_journey_query",
"arguments": {
"args": {
"code": "journey",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}KPI report
ReadScope:crm:readcrm_reports_kpi_queryCRM "KPI" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_kpi_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"kpi","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_kpi_query",
"arguments": {
"args": {
"code": "kpi",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Leads report
ReadScope:crm:readcrm_reports_lead_queryCRM "Leads" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_lead_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"lead","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_lead_query",
"arguments": {
"args": {
"code": "lead",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export lead sources report
ExportScope:crm:exportcrm_reports_lead_source_exportExport the CRM "Lead sources" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_lead_source_export",
"arguments": {
"args": {
"code": "lead_source",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Lead sources report
ReadScope:crm:readcrm_reports_lead_source_queryCRM "Lead sources" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_lead_source_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"lead_source","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_lead_source_query",
"arguments": {
"args": {
"code": "lead_source",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export lead response speed report
ExportScope:crm:exportcrm_reports_lead_speed_exportExport the CRM "Lead response speed" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
jobId | string | no | Export job id to check status |
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": "crm_reports_lead_speed_export",
"arguments": {
"args": {
"code": "lead_speed",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Lead response speed report
ReadScope:crm:readcrm_reports_lead_speed_queryCRM "Lead response speed" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_lead_speed_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"lead_speed","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_lead_speed_query",
"arguments": {
"args": {
"code": "lead_speed",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export multi-module customers report
ExportScope:crm:exportcrm_reports_multi_module_exportExport the CRM "Multi-module customers" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_multi_module_export",
"arguments": {
"args": {
"code": "multi_module",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Multi-module customers report
ReadScope:crm:readcrm_reports_multi_module_queryCRM "Multi-module customers" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_multi_module_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"multi_module","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_multi_module_query",
"arguments": {
"args": {
"code": "multi_module",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Opportunities report
ReadScope:crm:readcrm_reports_opportunity_queryCRM "Opportunities" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
periodDays | integer | no | Recent days |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_opportunity_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"opportunity","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_opportunity_query",
"arguments": {
"args": {
"code": "opportunity",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Pipelines and campaigns report
ReadScope:crm:readcrm_reports_pipeline_campaign_queryCRM "Pipelines and campaigns" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_pipeline_campaign_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"pipeline_campaign","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_pipeline_campaign_query",
"arguments": {
"args": {
"code": "pipeline_campaign",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export pipeline report
ExportScope:crm:exportcrm_reports_pipeline_exportExport the CRM "Pipeline" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_pipeline_export",
"arguments": {
"args": {
"code": "pipeline",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Pipeline report
ReadScope:crm:readcrm_reports_pipeline_queryCRM "Pipeline" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_pipeline_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"pipeline","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_pipeline_query",
"arguments": {
"args": {
"code": "pipeline",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Revenue report
ReadScope:crm:readcrm_reports_queryCRM "Revenue" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
kind | string | no | Kind (e.g. fill or print) |
granularity | string | no | Time granularity |
splitBySource | boolean | no | true = split by source |
top | integer | no | Top N rows |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"revenue","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_query",
"arguments": {
"args": {
"code": "revenue",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export quotations report
ExportScope:crm:exportcrm_reports_quotations_exportExport the CRM "Quotations" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_quotations_export",
"arguments": {
"args": {
"code": "quotations",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Quotations report
ReadScope:crm:readcrm_reports_quotations_queryCRM "Quotations" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_quotations_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"quotations","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_quotations_query",
"arguments": {
"args": {
"code": "quotations",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export reconciliation report
ExportScope:crm:exportcrm_reports_reconciliation_exportExport the CRM "Reconciliation" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
metric | string | no | Metric |
jobId | string | no | Export job id to check status |
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": "crm_reports_reconciliation_export",
"arguments": {
"args": {
"code": "reconciliation",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Reconciliation report
ReadScope:crm:readcrm_reports_reconciliation_queryCRM "Reconciliation" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
metric | string | no | Metric |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_reconciliation_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"reconciliation","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_reconciliation_query",
"arguments": {
"args": {
"code": "reconciliation",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export repeat purchase and churn report
ExportScope:crm:exportcrm_reports_retention_exportExport the CRM "Repeat purchase and cooling customers" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_retention_export",
"arguments": {
"args": {
"code": "retention",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Repeat purchase and churn report
ReadScope:crm:readcrm_reports_retention_queryCRM "Repeat purchase and cooling customers" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_retention_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"retention","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_retention_query",
"arguments": {
"args": {
"code": "retention",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export satisfaction report
ExportScope:crm:exportcrm_reports_satisfaction_exportExport the CRM "Satisfaction" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_satisfaction_export",
"arguments": {
"args": {
"code": "satisfaction",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Satisfaction report
ReadScope:crm:readcrm_reports_satisfaction_queryCRM "Satisfaction" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_satisfaction_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"satisfaction","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_satisfaction_query",
"arguments": {
"args": {
"code": "satisfaction",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export support report
ExportScope:crm:exportcrm_reports_support_exportExport the CRM "Support" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
jobId | string | no | Export job id to check status |
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": "crm_reports_support_export",
"arguments": {
"args": {
"code": "support",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Support report
ReadScope:crm:readcrm_reports_support_queryCRM "Support" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_support_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"support","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_support_query",
"arguments": {
"args": {
"code": "support",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Surveys report
ReadScope:crm:readcrm_reports_survey_queryCRM "Surveys" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_survey_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"survey","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_survey_query",
"arguments": {
"args": {
"code": "survey",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export team activity report
ExportScope:crm:exportcrm_reports_team_activity_exportExport the CRM "Team activity" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
jobId | string | no | Export job id to check status |
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": "crm_reports_team_activity_export",
"arguments": {
"args": {
"code": "team_activity",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Team activity report
ReadScope:crm:readcrm_reports_team_activity_queryCRM "Team activity" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_team_activity_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"team_activity","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_team_activity_query",
"arguments": {
"args": {
"code": "team_activity",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Export win/loss report
ExportScope:crm:exportcrm_reports_win_loss_exportExport the CRM "Win / loss" report to Excel by period, comparison and branch, staff, source filters; returns an export proposal and confirmation link.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
jobId | string | no | Export job id to check status |
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": "crm_reports_win_loss_export",
"arguments": {
"args": {
"code": "win_loss",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Win/loss report
ReadScope:crm:readcrm_reports_win_loss_queryCRM "Win / loss" report by period, with prior-period or year-over-year comparison, filtered by branch, staff, source.
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | yes | Report code |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
compare | string | no | Comparison: prev, yoy or none |
branchIds | string[] | no | Filter by branches |
staffIds | string[] | no | Filter by staff |
sources | string[] | no | Filter by lead sources |
by | string | no | Breakdown dimension (e.g. staff, campaign) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_reports_win_loss_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"code":"win_loss","from":"2026-10-01","to":"2026-10-27","compare":"prev"}'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": "crm_reports_win_loss_query",
"arguments": {
"args": {
"code": "win_loss",
"from": "2026-10-01",
"to": "2026-10-27",
"compare": "prev"
}
}
}Cases needing attention
ReadScope:crm:readcrm_sales_process_alertsSales process 'Needs attention' inbox: overdue calls, silent too long, overdue payments, unassigned.
| Parameter | Type | Required | Description |
|---|---|---|---|
take | integer | no | Max rows (≤ 50) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_alerts/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"take":20}'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": "crm_sales_process_alerts",
"arguments": {
"args": {
"take": 20
}
}
}Customer case in a sales process
ReadScope:crm:readcrm_sales_process_caseOne customer's sales process case by opportunity code: stage, deadlines, alerts, payment requests.
| Parameter | Type | Required | Description |
|---|---|---|---|
opportunityCode | string | yes | Opportunity code (e.g. OPP00012) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_case/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"opportunityCode":"OPP00012"}'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": "crm_sales_process_case",
"arguments": {
"args": {
"opportunityCode": "OPP00012"
}
}
}Act on a sales case
Write proposalScope:crm:writecrm_sales_process_case_actionPerform an action on a sales process case (payment reminder, postpone decision…). Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
opportunityCode | string | yes | Opportunity code (e.g. OPP00012) |
actionKey | string | yes | Action key (e.g. remind_payment, delay_decision) |
input | object | no | Extra input for the action (e.g. appointment date, call outcome) |
note | string | no | Note text |
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": "crm_sales_process_case_action",
"arguments": {
"args": {
"opportunityCode": "OPP00012",
"actionKey": "remind_payment",
"note": "Nhắc tạm ứng đợt 1"
}
}
}Create a sales process
Write proposalScope:crm:writecrm_sales_process_createCreate a draft sales process from a template or blank. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | no | Customer / lead name |
templateRef | string | no | Template from crm_sales_process_templates |
blank | boolean | no | true = create blank, no template |
team | string | no | Sales team name |
baseVersion | integer | no | Version you read |
ops | object[] | no | Ordered list of changes (max 20) |
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": "crm_sales_process_create",
"arguments": {
"args": {
"name": "Bán gói phần mềm",
"blank": true,
"team": "Nhóm kinh doanh 1"
}
}
}Pause a sales process
Write proposalScope:crm:writecrm_sales_process_disablePause a running sales process. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
processRef | string | no | Process ref (from crm_sales_process_list) |
keepReminders | boolean | no | true = keep reminders for customers in progress |
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": "crm_sales_process_disable",
"arguments": {
"args": {
"processRef": "QT001",
"keepReminders": true
}
}
}Enable a sales process
Write proposalScope:crm:writecrm_sales_process_enableEnable a sales process so the team starts receiving customers. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
processRef | string | no | Process ref (from crm_sales_process_list) |
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": "crm_sales_process_enable",
"arguments": {
"args": {
"processRef": "QT001"
}
}
}Sales process details
ReadScope:crm:readcrm_sales_process_getDetails of a sales process: stages, transitions, conditions, deadlines and settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
processRef | string | no | Process ref (from crm_sales_process_list) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_get/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"processRef":"QT001"}'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": "crm_sales_process_get",
"arguments": {
"args": {
"processRef": "QT001"
}
}
}Sales processes
ReadScope:crm:readcrm_sales_process_listThe company's sales processes and their status.
| Parameter | Type | Required | Description |
|---|---|---|---|
state | string | no | State |
take | integer | no | Max rows (≤ 50) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"state":"Enabled"}'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": "crm_sales_process_list",
"arguments": {
"args": {
"state": "Enabled"
}
}
}Update a sales process
Write proposalScope:crm:writecrm_sales_process_patchEdit a sales process: add, change or remove stages, transitions, settings — in one call. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
processRef | string | no | Process ref (from crm_sales_process_list) |
baseVersion | integer | no | Version you read |
ops | object[] | no | Ordered list of changes (max 20) |
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": "crm_sales_process_patch",
"arguments": {
"args": {
"processRef": "QT001",
"baseVersion": 3,
"ops": [
{
"op": "set_setting",
"path": "callBack.maxAttempts",
"value": 3
}
]
}
}
}Pending payment requests
ReadScope:crm:readcrm_sales_process_paymentsPending payment requests in the sales process: case, amount, due date, overdue.
| Parameter | Type | Required | Description |
|---|---|---|---|
take | integer | no | Max rows (≤ 50) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_payments/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"take":20}'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": "crm_sales_process_payments",
"arguments": {
"args": {
"take": 20
}
}
}Reminder runs of a case
ReadScope:crm:readcrm_sales_process_runsReminder runs of a case: active sequences, skipped, waiting or failed steps.
| Parameter | Type | Required | Description |
|---|---|---|---|
opportunityCode | string | yes | Opportunity code (e.g. OPP00012) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_runs/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"opportunityCode":"OPP00012"}'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": "crm_sales_process_runs",
"arguments": {
"args": {
"opportunityCode": "OPP00012"
}
}
}Test-run a sales process
ReadScope:crm:readcrm_sales_process_simulateDry-run a sales process with a sample customer; sends nothing, creates no tasks.
| Parameter | Type | Required | Description |
|---|---|---|---|
processRef | string | no | Process ref (from crm_sales_process_list) |
draft | object | no | Unsaved changes to validate |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_simulate/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"processRef":"QT001"}'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": "crm_sales_process_simulate",
"arguments": {
"args": {
"processRef": "QT001"
}
}
}Sales process templates
ReadScope:crm:readcrm_sales_process_templatesAvailable sales process templates.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_templates/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": "crm_sales_process_templates",
"arguments": {
"args": {}
}
}Today's sales process work
ReadScope:crm:readcrm_sales_process_todayToday's sales process work: who to call, cases due or overdue.
| Parameter | Type | Required | Description |
|---|---|---|---|
scope | string | no | mine or team |
take | integer | no | Max rows (≤ 50) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_today/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"scope":"mine"}'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": "crm_sales_process_today",
"arguments": {
"args": {
"scope": "mine"
}
}
}Validate a sales process
ReadScope:crm:readcrm_sales_process_validateValidate a sales process: blocking issues, warnings, whether it can be enabled. Writes nothing.
| Parameter | Type | Required | Description |
|---|---|---|---|
processRef | string | no | Process ref (from crm_sales_process_list) |
draft | object | no | Unsaved changes to validate |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_validate/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"processRef":"QT001"}'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": "crm_sales_process_validate",
"arguments": {
"args": {
"processRef": "QT001"
}
}
}Sales process readiness
ReadScope:crm:readcrm_sales_process_workspaceReadiness for sales processes: usable messaging channels, call center, staff count.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_sales_process_workspace/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": "crm_sales_process_workspace",
"arguments": {
"args": {}
}
}Choose a quotation print template
Write proposalScope:crm:writecrm_select_quotation_print_templateSelect or change the print template of a draft quotation. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
quotationCode | string | no | Quotation code |
printTemplate | string | yes | PDF print template name or id |
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": "crm_select_quotation_print_template",
"arguments": {
"args": {
"quotationCode": "BG00045",
"printTemplate": "Mẫu báo giá chuẩn"
}
}
}Email a quotation
Write proposalScope:crm:writecrm_send_quotation_emailEmail a draft quotation to the customer, with the PDF attached. Creates a proposal; the mail leaves only after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
quotationCode | string | yes | Quotation code |
recipientEmail | string | yes | Recipient email |
subject | string | no | Mail subject |
body | string | no | Mail text |
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": "crm_send_quotation_email",
"arguments": {
"args": {
"quotationCode": "BG00045",
"recipientEmail": "an.nguyen@example.com",
"subject": "Báo giá gói Pro 12 tháng"
}
}
}Change a customer's lifecycle stage
Write proposalScope:crm:writecrm_set_lifecycleMove a customer or lead to a higher lifecycle stage. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
contactCode | string | no | Customer code shown in CRM (e.g. CT08027) |
stage | string | yes | Stage name |
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": "crm_set_lifecycle",
"arguments": {
"args": {
"contactCode": "CT08027",
"stage": "Sql"
}
}
}To-dos
ReadScope:crm:readcrm_tasks_queryQuery tasks: count, list, group by status or assignee.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
groupBy | string | no | Group by |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_tasks_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"group","groupBy":"assignee"}'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": "crm_tasks_query",
"arguments": {
"args": {
"op": "group",
"groupBy": "assignee"
}
}
}Support tickets
ReadScope:crm:readcrm_tickets_queryQuery support tickets: count, list, group by status or priority.
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | yes | count, list (default) or group by groupBy |
filter | object[] | no | Filters [{field, op, value}] on screen fields |
match | string | no | all = every condition (default), any = any |
groupBy | string | no | Group by |
sort | string | no | Sort "<field> asc|desc" |
q | string | no | Quick accent-insensitive search |
limit | integer | no | Max rows (≤ 50, default 10) |
page | integer | no | Page, starting at 1 |
fields | string[] | no | Fields to return |
ids | string[] | no | Record ids from a previous result |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_tickets_query/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"op":"group","groupBy":"status"}'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": "crm_tickets_query",
"arguments": {
"args": {
"op": "group",
"groupBy": "status"
}
}
}CRM summary
ReadScope:crm:readcrm_workspace_summaryWorkspace-wide CRM totals: contacts, customers, leads, opportunities and conversion rate.
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | no | Period for conversion rate (default month) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/crm/crm_workspace_summary/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"period":"month"}'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": "crm_workspace_summary",
"arguments": {
"args": {
"period": "month"
}
}
}