AI tools — Omnichannel chat
16 tools. The latest schema is always in comm_tool_catalog once connected.
Meta Ads operations
ReadScope:comm:readads_catalogMeta (Facebook/Instagram) Ads operations available to the connected ad account, with each operation's description and parameters.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/ads_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": "ads_catalog",
"arguments": {
"args": {}
}
}Read Meta Ads data
ReadScope:comm:readads_readRun one read operation of Meta Ads (name from ads_catalog): campaigns, spend, results, ad sets.
| Parameter | Type | Required | Description |
|---|---|---|---|
tool | string | yes | Read operation name from ads_catalog |
arguments | object | no | Arguments per the operation's schema |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/ads_read/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"tool":"list_campaigns","arguments":{}}'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": "ads_read",
"arguments": {
"args": {
"tool": "list_campaigns",
"arguments": {}
}
}
}Add Q&A to a chat assistant
Write proposalScope:comm:writecomm_add_ai_bot_qaAdd question–answer pairs to an existing customer-reply assistant's knowledge (max 50 pairs per call). Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
botName | string | yes | Assistant name |
pairs | object[] | yes | List of Q&A pairs |
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": "comm_add_ai_bot_qa",
"arguments": {
"args": {
"botName": "Tư vấn khoá tiếng Anh",
"pairs": [
{
"question": "Học phí khoá cơ bản bao nhiêu?",
"answer": "Khoá cơ bản 3 tháng giá 3.000.000đ.",
"category": "Học phí"
}
]
}
}
}Change Meta Ads
Write proposalScope:comm:writecomm_ads_changeChange the Meta ad account (pause/resume campaigns, change budget, create or edit ads) using one write operation from ads_catalog. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
tool | string | yes | Write operation name from ads_catalog |
arguments | object | no | Arguments per the operation's schema |
summary | string | yes | One sentence describing the change |
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": "comm_ads_change",
"arguments": {
"args": {
"tool": "update_campaign_run_status",
"arguments": {
"campaign_id": "120212345678900001",
"status": "PAUSED"
},
"summary": "Tạm dừng chiến dịch Khuyến mãi tháng 10"
}
}
}Inbox agent metrics
ReadScope:comm:readcomm_agents_performanceInbox agent metrics: conversations resolved in a period, or current workload.
| Parameter | Type | Required | Description |
|---|---|---|---|
metric | string | no | resolved = resolved in period; workload = currently assigned |
period | string | no | Period: today (default) or week |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_agents_performance/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"metric":"resolved","period":"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": "comm_agents_performance",
"arguments": {
"args": {
"metric": "resolved",
"period": "week"
}
}
}Assign a conversation to me
Write proposalScope:comm:writecomm_assign_to_meAssign an open inbox conversation to the current user. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
customer_query | string | yes | Customer name or phone to find the conversation |
conversation_ref | string | no | Conversation code (HT-…) if known |
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": "comm_assign_to_me",
"arguments": {
"args": {
"customer_query": "Nguyễn An"
}
}
}Auto-reply assistant metrics
ReadScope:comm:readcomm_bot_statsInbox auto-reply assistant metrics per period: conversations handled, handed over to agents, and self-resolution rate; optionally by channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | no | Period: today (default) or week |
groupBy | string | no | channel = per channel; empty = total |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_bot_stats/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"period":"week","groupBy":"channel"}'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": "comm_bot_stats",
"arguments": {
"args": {
"period": "week",
"groupBy": "channel"
}
}
}Chat channel status
ReadScope:comm:readcomm_channels_statusConnected chat channels and their health: channel type, page/account name, status (Active, Error, PendingReconnect, Disconnected), webhook verification.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelType | string | no | Filter by channel type; empty = all |
activeOnly | boolean | no | true = active channels only |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_channels_status/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"activeOnly":true}'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": "comm_channels_status",
"arguments": {
"args": {
"activeOnly": true
}
}
}Close a conversation
Write proposalScope:comm:writecomm_close_conversationClose an open inbox conversation. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
customer_query | string | yes | Customer name or phone to find the conversation |
conversation_ref | string | no | Conversation code (HT-…) if known |
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": "comm_close_conversation",
"arguments": {
"args": {
"customer_query": "0901234567"
}
}
}Search conversations
ReadScope:comm:readcomm_conversations_searchSearch omnichannel inbox conversations by customer name, channel, status, assignee, unread, priority, customer sentiment, SLA breach, waiting time, sales stage and date range; cursor pagination.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | no | Customer name |
channelType | string | no | Facebook, Instagram, ZaloOa, ZaloPersonal, Telegram, Widget, Shopee, Lazada or TikTokShop |
status | string | no | Open, WaitingAgent, BotHandling or Resolved |
assignedTo | string | no | me = mine; unassigned = nobody |
unreadOnly | boolean | no | true = unread only |
priority | string | no | Priority |
sentiment | string | no | Customer sentiment (e.g. Angry, Negative) |
slaBreached | boolean | no | true = SLA breached only |
awaitingOverHours | integer | no | Customer waiting at least N hours |
salesStage | string | no | Conversation sales stage |
resolvedInDays | integer | no | Only conversations closed in the last N days |
createdFrom | string | no | Created from (YYYY-MM-DD) |
createdTo | string | no | Created to (YYYY-MM-DD) |
limit | integer | no | Conversations per call, max 30 |
cursor | string | no | Next page cursor (nextCursor from the previous call) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_conversations_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"assignedTo":"unassigned","unreadOnly":true}'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": "comm_conversations_search",
"arguments": {
"args": {
"assignedTo": "unassigned",
"unreadOnly": true
}
}
}Create a customer-reply assistant
Write proposalScope:comm:writecomm_create_ai_botCreate a customer-reply assistant on Facebook, Zalo or website widget from a description: name, industry, tone, reply mode, fallback message, channels, business hours and initial Q&A. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Assistant name |
industry | string | yes | Industry (e.g. Education, Spa) |
tone | string | no | Friendly or Professional… |
mode | string | no | Auto, Hybrid… |
fallbackMessage | string | no | Reply when unsure |
personaPrompt | string | no | Form of address and persona |
channelTypes | string[] | yes | Facebook, ZaloOa, ZaloPersonal, Widget |
maxEscalateAttempts | integer | no | Unsure attempts before handing to an agent |
businessHours | object | no | Business hours (Vietnam time) |
qaPairs | object[] | no | Initial Q&A |
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": "comm_create_ai_bot",
"arguments": {
"args": {
"name": "Tư vấn khoá tiếng Anh",
"industry": "Giáo dục",
"channelTypes": [
"Facebook"
]
}
}
}Inbox counts by channel
ReadScope:comm:readcomm_inbox_breakdownCount the inbox by channel: open conversations, all conversations, unread, new contacts or returning customers.
| Parameter | Type | Required | Description |
|---|---|---|---|
metric | string | no | Metric, default conversations_open |
days | integer | no | Recent days (for new_contacts) |
period | string | no | Period (for returning_customers) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_inbox_breakdown/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"metric":"unread"}'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": "comm_inbox_breakdown",
"arguments": {
"args": {
"metric": "unread"
}
}
}Conversation messages
ReadScope:comm:readcomm_messages_getMost recent messages of a conversation in time order: direction, sender, type, content, delivery status, internal notes.
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationId | string | yes | Conversation id (from comm_conversations_search) |
limit | integer | no | Messages to read, max 50 |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_messages_get/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"conversationId":"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b","limit":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": "comm_messages_get",
"arguments": {
"args": {
"conversationId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"limit": 20
}
}
}Message volume
ReadScope:comm:readcomm_messages_volumeInbox message volume for a period, split into inbound and outbound; or distribution by hour of day.
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | no | Period: today (default) or week |
groupBy | string | no | hour = hourly distribution for today |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_messages_volume/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"period":"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": "comm_messages_volume",
"arguments": {
"args": {
"period": "week"
}
}
}Inbox sales funnel
ReadScope:comm:readcomm_sales_pipelineSales funnel of chat conversations by agent-assigned stage: New, Consulting, Quoted, Won, Lost.
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | no | Period: today (default) or week |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/comm/comm_sales_pipeline/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"period":"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": "comm_sales_pipeline",
"arguments": {
"args": {
"period": "week"
}
}
}Update a customer-reply assistant
Write proposalScope:comm:writecomm_update_ai_botUpdate an existing customer-reply assistant: name, industry, tone, reply mode, fallback message, persona, channels, escalation attempts, business hours. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
botName | string | yes | Assistant to update |
name | string | no | New name (if renaming) |
industry | string | no | Industry |
tone | string | no | Tone |
mode | string | no | Reply mode |
fallbackMessage | string | no | Fallback message |
personaPrompt | string | no | Persona |
channelTypes | string[] | no | Channels |
maxEscalateAttempts | integer | no | Attempts before escalation |
businessHours | object | no | Business hours |
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": "comm_update_ai_bot",
"arguments": {
"args": {
"botName": "Shop A",
"tone": "Professional"
}
}
}