MCP 서버

Supovia Customer Support

com.supovia/supovia
비즈니스 및 운영 커뮤니케이션 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Manages organization-owned support websites, documents, customer conversations, inbox activity, replies, and resolution status.

get_conversation
Check one conversation's status
Use this when someone asks about one customer conversation's status, such as whether it is resolved or unread and how many messages the customer, staff and AI agent sent. Returns its channel, status, unread count, times and sender counts from the latest 50 public messages (no message text or internal notes). Not for reading or quoting what was said.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversationId'], 'properties': {'conversationId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Conversation id, up to 200 characters'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'conversation'], 'properties': {'status': {'enum': ['found', 'not-found'], 'type': 'string'}, 'conversation': {'anyOf': [{'type': 'object', 'required': ['id', 'websiteId', 'channel', 'resolved', 'unreadMessageCount', 'creationTime', 'lastEditTime', 'activity'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'channel': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'activity': {'type': 'object', 'required': ['sampledPublicMessages', 'customerMessages', 'operatorMessages', 'agentMessages', 'unknownSenderMessages', 'latestPublicActivityTime', 'sampleHasMore', 'internalNotesExcluded'], 'properties': {'agentMessages': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'sampleHasMore': {'type': 'boolean', 'description': 'True when the conversation has more than 50 recent records'}, 'customerMessages': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'operatorMessages': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'internalNotesExcluded': {'type': 'boolean', 'const': True}, 'sampledPublicMessages': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'unknownSenderMessages': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'latestPublicActivityTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}}, 'additionalProperties': False}, 'resolved': {'type': 'boolean'}, 'websiteId': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'unreadMessageCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Safe conversation metadata with sender counts over at most the 50 most recent public messages; null when not found. No message body, preview, message id, customer identifier, staff id, internal note, organization id or arbitrary metadata is returned.'}}, 'additionalProperties': False}
get_document
Read a help-center article
Use this when someone needs the text of one help-center article, to quote it or answer a customer from it. Returns the article's title, slug, language, published flag and text up to 20000 characters, with the text's format (html, markdown, plain-text). Not for finding articles on a topic.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'slug': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Article slug, used only when documentId is omitted'}, 'locale': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': 'Language code for the slug lookup, e.g. en, it or fr; defaults to en'}, 'documentId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Article id; takes precedence over slug'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'document'], 'properties': {'status': {'enum': ['found', 'not-found'], 'type': 'string'}, 'document': {'anyOf': [{'type': 'object', 'required': ['id', 'title', 'slug', 'locale', 'websiteId', 'published', 'content', 'contentFormat', 'contentTruncated', 'creationTime', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 20}, {'type': 'null'}]}, 'content': {'type': 'string', 'maxLength': 20000}, 'published': {'type': 'boolean'}, 'websiteId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'contentFormat': {'anyOf': [{'enum': ['html', 'markdown', 'plain-text'], 'type': 'string'}, {'type': 'null'}], 'description': 'Syntax the content is written in; null for an empty article'}, 'contentTruncated': {'type': 'boolean', 'description': 'True when the content was cut at 20000 characters'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The article; null when it is missing or belongs to another organization. Organization ids, translator ids, deprecated slugs, embeddings and arbitrary metadata are never returned.'}}, 'additionalProperties': False}
get_unresolved_conversation_counts
Count open conversations
Use this when someone asks how many customer conversations are still open or unresolved, in total or per website. Returns the total plus a per-website count, largest first, listing up to 100 websites (no customer or message data). Not for finding which conversations are open.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['websites', 'websiteCount', 'websitesTruncated', 'totalUnresolved', 'totalClamped'], 'properties': {'websites': {'type': 'array', 'items': {'type': 'object', 'required': ['websiteId', 'websiteName', 'unresolvedCount'], 'properties': {'websiteId': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'websiteName': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'unresolvedCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Up to 100 websites with the most unresolved conversations, largest first. Customer identifiers, staff ids, message text and organization ids are never returned.'}, 'totalClamped': {'type': 'boolean'}, 'websiteCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'totalUnresolved': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Unresolved conversations across every website, listed or not'}, 'websitesTruncated': {'type': 'boolean', 'description': 'True when more than 100 websites have unresolved conversations'}}, 'additionalProperties': False}
get_website
Get support website details
Use this when someone asks about one of their Supovia websites by name or id, such as whether its AI customer agent is on. Returns the website's id, name, domain, AI-agent status and created and edited times, or not-found. Not for the help articles published on it.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrName'], 'properties': {'idOrName': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Website id, exact vanity id (its lowercase public address) or exact display name'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'website'], 'properties': {'status': {'enum': ['found', 'not-found'], 'type': 'string'}, 'website': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'domain', 'agentEnabled', 'creationTime', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'domain': {'anyOf': [{'type': 'string', 'maxLength': 253}, {'type': 'null'}]}, 'agentEnabled': {'type': 'boolean'}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Safe website metadata; null when not found. Organization ids, agent prompts, credentials, integration configuration and arbitrary metadata are never returned.'}}, 'additionalProperties': False}
list_campaigns
List email campaigns
Use this when someone asks which email campaigns one of their websites has. Returns each campaign's id, name and created and edited times, 20 per page by default (no recipients, subject or content). Not for sending a campaign.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['websiteId'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'description': 'Campaigns per page, from 1 to 50; defaults to 20', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The page.nextCursor of the previous page for the same website; absent for the first page'}, 'websiteId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Website whose campaigns to list'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaigns', 'page'], 'properties': {'page': {'type': 'object', 'required': ['count', 'hasMore', 'nextCursor'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}]}}, 'description': 'hasMore is true when more campaigns follow; pass nextCursor as cursor to get them', 'additionalProperties': False}, 'campaigns': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'websiteId', 'creationTime', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'websiteId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 50, 'description': 'Campaign identity only. Recipient lists, subjects, message content, user ids, organization ids and arbitrary metadata are excluded.'}}, 'additionalProperties': False}
list_conversations
List customer conversations
Use this when someone asks which customer conversations are open, unread or recently active, optionally for one website. Returns conversation ids with website, channel, resolved flag, unread count and times, most recent activity first, 20 per page by default (no message text or customer details). Not for open-conversation totals.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'description': 'Conversations per page, from 1 to 50; defaults to 20', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 2048, 'description': 'The page.nextCursor of the previous page with the same filters; absent for the first page'}, 'resolved': {'type': 'boolean', 'description': 'true for resolved conversations, false for open ones; omit for both'}, 'websiteId': {'type': 'string', 'maxLength': 200, 'description': 'Only conversations on this website; every website when absent'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversations', 'page'], 'properties': {'page': {'type': 'object', 'required': ['count', 'hasMore', 'nextCursor'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}}, 'description': 'hasMore is true when more conversations follow; pass nextCursor as cursor to get them', 'additionalProperties': False}, 'conversations': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'websiteId', 'channel', 'resolved', 'unreadMessageCount', 'creationTime', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'channel': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'resolved': {'type': 'boolean'}, 'websiteId': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'unreadMessageCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 50, 'description': 'Most recent activity first: the id needed for a follow-up call, website id, channel, resolved state, unread count and timestamps. Message bodies, message ids, customer identifiers, internal notes, arbitrary metadata and organization ids are excluded.'}}, 'additionalProperties': False}
list_documents
List help-center articles
Use this when someone asks which help articles or support docs exist, optionally for one website, language or article. Returns each article's id, title, slug, language, website and published flag, most recently edited first, 20 per page by default, without the article text. Not for finding articles about a topic.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'description': 'Articles per page, from 1 to 50; defaults to 20', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The page.nextCursor of the previous page with the same filters; absent for the first page'}, 'locale': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': 'Only articles in this language code, e.g. en, it or fr; every language when absent'}, 'websiteId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Only articles on this website; every website when absent'}, 'slugOriginal': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Only the language versions of one article: its original slug before translation'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['documents', 'page'], 'properties': {'page': {'type': 'object', 'required': ['count', 'hasMore', 'nextCursor'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}]}}, 'description': 'hasMore is true when more articles follow; pass nextCursor as cursor to get them', 'additionalProperties': False}, 'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'locale', 'websiteId', 'published', 'creationTime', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 20}, {'type': 'null'}]}, 'published': {'type': 'boolean'}, 'websiteId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 50, 'description': 'Article metadata, most recently edited first. Document content, embeddings, prompts, organization ids and arbitrary metadata are excluded.'}}, 'additionalProperties': False}
list_websites
List your support websites
Use this when someone asks which websites their Supovia support chat runs on, or a website's id is needed. Returns each website's id, name, domain and whether its AI customer agent is on, most recently edited first, 20 per page by default. Not for customer conversations.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'description': 'Websites per page, from 1 to 50; defaults to 20', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The page.nextCursor of the previous page; absent for the first page'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['websites', 'page'], 'properties': {'page': {'type': 'object', 'required': ['count', 'hasMore', 'nextCursor'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}]}}, 'description': 'hasMore is true when more websites follow; pass nextCursor as cursor to get them', 'additionalProperties': False}, 'websites': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'domain', 'agentEnabled', 'creationTime', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'domain': {'anyOf': [{'type': 'string', 'maxLength': 253}, {'type': 'null'}]}, 'agentEnabled': {'type': 'boolean'}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 50, 'description': 'Websites in the signed-in organization, most recently edited first. Prompts, credentials, integration configuration, organization ids and arbitrary metadata are excluded.'}}, 'additionalProperties': False}
open_customer_inbox_conversation
Open a conversation from the inbox
Use this when the embedded Supovia inbox opens a conversation the user selected. Returns whether it was found and gives the view its channel, status, unread count and times (no message text or customer details). Not for questions asked in chat.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['conversationId'], 'properties': {'conversationId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Conversation id the user selected in the inbox view'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'status': {'enum': ['opened', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
resolve_conversation
Resolve or reopen a conversation
Use this when someone wants to mark a customer conversation resolved or done, or reopen it. Returns the conversation id, resolved state and last edit time, and the operator dashboard updates live. Repeating the same state has no further effect. Not for replying to the customer.
파괴적 작업 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversationId'], 'properties': {'resolved': {'type': 'boolean', 'description': 'true to mark it resolved (the default), false to reopen it'}, 'conversationId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Conversation to update'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'conversation'], 'properties': {'status': {'enum': ['updated', 'not-found'], 'type': 'string'}, 'conversation': {'anyOf': [{'type': 'object', 'required': ['id', 'resolved', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'resolved': {'type': 'boolean'}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Only the id, resolved state and last edit time; null when not found. Customer identifiers, staff ids and organization ids are never returned.'}}, 'additionalProperties': False}
search_documents
Search help-center articles
Use this when someone asks which help article covers a topic or question on one of their websites. Returns up to 5 matching published articles with id, title, slug and language, matched by meaning in one language (English by default). Not for reading an article's text.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'websiteId'], 'properties': {'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'What the article should cover, in natural language, up to 500 characters'}, 'locale': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': 'Language code to search in, e.g. en, it or fr; defaults to en'}, 'websiteId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Website whose help center to search'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['documents'], 'properties': {'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'locale'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 20}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 5, 'description': 'Closest matches first. Content chunks, embeddings, scores, prompts and arbitrary metadata are excluded.'}}, 'additionalProperties': False}
send_message
Reply to a customer
Use this when the user approves an exact reply to send to a customer in one Supovia conversation. Returns the conversation id and send time. The reply reaches the customer on the conversation's own channels (chat, email, WhatsApp or Messenger); replies to app-store reviews are public. Not for internal notes or closing the conversation.
파괴적 작업 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversationId', 'content', 'idempotencyKey'], 'properties': {'content': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': 'Exact reply text the user approved, 1 to 4,000 characters'}, 'conversationId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Conversation to reply in'}, 'idempotencyKey': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Unique key you generate for this conversation and text, up to 255 characters; reuse it only to retry the same send'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'conversationId', 'creationTime'], 'properties': {'status': {'type': 'string', 'const': 'sent'}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'description': 'When the reply was recorded; no message id or text is echoed'}, 'conversationId': {'type': 'string', 'maxLength': 200, 'description': 'Conversation the reply was added to'}}, 'additionalProperties': False}
show_customer_inbox
Show unread conversations
Use this when someone wants to see their unread customer conversations in an inbox view. Returns how many of the 50 most recently active conversations have unread messages; the view lists up to 20 with channel, status, unread count and times (no message text or customer details). Not for complete open-conversation totals.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['unreadConversationCount', 'conversationsHaveMore'], 'properties': {'conversationsHaveMore': {'type': 'boolean', 'description': 'True when conversations exist beyond the 50 sampled or the 20 the view lists'}, 'unreadConversationCount': {'type': 'integer', 'maximum': 50, 'minimum': 0, 'description': 'Conversations with unread messages among the 50 most recently active'}}, 'additionalProperties': False}
show_support_overview
Show support overview
Use this when someone wants a quick visual summary of their customer support. Returns a card with up to 20 websites (name, domain, AI agent on or off) and the 20 most recently active conversations (channel, open or resolved, times), optionally for one website. Not for complete open-conversation totals.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'websiteId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Only this website; every website when absent'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['websites', 'websitesHaveMore', 'conversations', 'conversationsHaveMore', 'openConversationCount'], 'properties': {'websites': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'domain', 'agentEnabled'], 'properties': {'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'domain': {'anyOf': [{'type': 'string', 'maxLength': 253}, {'type': 'null'}]}, 'agentEnabled': {'type': 'boolean'}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'Up to 20 websites: name, domain and AI-agent status only'}, 'conversations': {'type': 'array', 'items': {'type': 'object', 'required': ['channel', 'resolved', 'creationTime', 'lastEditTime'], 'properties': {'channel': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'resolved': {'type': 'boolean'}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'The 20 most recently active conversations: channel, resolved state and timestamps. Customer identifiers, internal record ids, message bodies, prompts, credentials, internal notes, organization ids and arbitrary metadata are excluded.'}, 'websitesHaveMore': {'type': 'boolean'}, 'conversationsHaveMore': {'type': 'boolean'}, 'openConversationCount': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Open conversations among the 20 shown, not the organization total'}}, 'additionalProperties': False}
변경됨
open_customer_inbox_conversation
2026년 9월 29일 3:03 AM
변경됨
show_customer_inbox
2026년 9월 29일 3:03 AM
변경됨
show_support_overview
2026년 9월 29일 3:03 AM
변경됨
resolve_conversation
2026년 9월 29일 3:03 AM
변경됨
send_message
2026년 9월 29일 3:03 AM
변경됨
list_campaigns
2026년 9월 29일 3:03 AM
변경됨
search_documents
2026년 9월 29일 3:03 AM
변경됨
get_document
2026년 9월 29일 3:03 AM
변경됨
list_documents
2026년 9월 29일 3:03 AM
변경됨
get_unresolved_conversation_counts
2026년 9월 29일 3:03 AM
변경됨
get_conversation
2026년 9월 29일 3:03 AM
변경됨
list_conversations
2026년 9월 29일 3:03 AM
변경됨
get_website
2026년 9월 29일 3:03 AM
변경됨
list_websites
2026년 9월 29일 3:03 AM
변경됨
open_customer_inbox_conversation
2026년 9월 19일 2:52 AM
변경됨
show_customer_inbox
2026년 9월 19일 2:52 AM
변경됨
show_support_overview
2026년 9월 19일 2:52 AM
변경됨
get_unresolved_conversation_counts
2026년 9월 19일 2:52 AM
추가됨
open_customer_inbox_conversation
2026년 9월 17일 12:37 PM
추가됨
show_customer_inbox
2026년 9월 17일 12:37 PM
추가됨
show_support_overview
2026년 9월 17일 12:37 PM
추가됨
resolve_conversation
2026년 9월 17일 12:37 PM
추가됨
send_message
2026년 9월 17일 12:37 PM
추가됨
list_campaigns
2026년 9월 17일 12:37 PM
추가됨
search_documents
2026년 9월 17일 12:37 PM
추가됨
get_document
2026년 9월 17일 12:37 PM
추가됨
list_documents
2026년 9월 17일 12:37 PM
추가됨
get_unresolved_conversation_counts
2026년 9월 17일 12:37 PM
추가됨
get_conversation
2026년 9월 17일 12:37 PM
추가됨
list_conversations
2026년 9월 17일 12:37 PM