> ## Documentation Index
> Fetch the complete documentation index at: https://help.commbox.io/llms.txt
> Use this file to discover all available pages before exploring further.
# Retrieving AI Conversation Summary
> This API retrieves the AI-generated summary of a customer-agent conversation that were previously requested via the POST AI Conversation Summary Request API. The AI analyzes the conversation and generates a structured summary in the language specified in the original request.
## How It Works
1. **Request a summary** - Use the POST endpoint to initiate AI analysis of a conversation
2. **Receive action_id** - The POST request returns a unique `action_id` for tracking
3. **Poll for results** - Use this GET endpoint with the `action_id` to check if the summary is ready
4. **Processing states**:
- **Pending** - AI is still analyzing the conversation
- **Completed** - Summary is ready and returned in the `answer` field
- **Failed** - An error occurred during processing
## Key Features
- **Asynchronous processing** - Summaries are generated in the background
- **Automated translation** - Results provided in the language specified in the original request
- **Structured output** - Summaries include key conversation points and action items
- **Unique tracking** - Each request has a persistent `action_id` for reliable retrieval
## Best Practices
- Poll every 2-5 seconds to check if the summary is ready
- Cache completed summaries using the `action_id` as the key
## OpenAPI
````json GET /ai-services/summary_conversation
{
"openapi": "3.0.3",
"info": {
"title": "CommBox API",
"x-logo": {
"url": "https://www.commbox.io/logo/commbox_logo_large.png"
},
"version": "2.07",
"termsOfService": "https://www.commbox.io/end-user-license-agreement-eula/",
"contact": {
"name": "commbox",
"url": "https://www.commbox.io",
"email": "contactus@commbox.io"
}
},
"servers": [
{
"url": "https://api.commbox.io/",
"description": "Production server"
}
],
"security": [
{
"BearerAuth": []
}
],
"tags": [
{
"name": "Core",
"description": "
Systemwide verification"
},
{
"name": "Objects",
"description": "
Objects are conversations between the AI Agent or the human agent and the customers, where each segment of the conversation is referred to as a Child. Every conversation must have a designated Stream – a communication channel such as Chat, Email, Text/SMS, etc., through which the conversation takes place.
The Object APIs category concentrates on a specific conversation, where the Stream is part of the identifying parameters. In contrast, the Streams APIs category, the Channel is the focal point of the request, and the objects and users are the filtering aspects."
},
{
"name": "Media",
"description": "Converting media files to Base64"
},
{
"name": "AI Services",
"description": "APIs that provide AI capabilities by the platform. "
},
{
"name": "Streams",
"description": "
Streams are communication channels used in CommBox, such as Chat, WhatsApp, SMS/Text, etc. In the Streams category of APIs, the channel is the focal point of the request, and the objects and users are the filtering aspects. See the Enums Section for available channels and their CommBox code."
},
{
"name": "Tags",
"description": "
Tags are a classification tool for summarizing aspects of the conversation or the user. It can mark the conversation to indicate a new sale or identify a customer as not interested in the product. To help manage the Tags assets, Tags can be grouped with a common identifier."
},
{
"name": "SMS",
"description": "
Sending customers **SMS messages** (Texting) requires an initial opt-in step, which is not offered by CommBox and is the sole responsibility of the sending entity (Business)."
},
{
"name": "WhatsApp",
"description": "
CommBox facilitates activities in **WABA** for the clients. Our platform helps clients create new templates and manage existing ones.
**Opt-in for WhatsApp**
Before sending WhatsApp messages to someone, you must first receive opt-in permission confirming that they wish to receive future messages from you on WhatsApp. This can be done using any channel your business uses to communicate with people — your website, app, email, retail location, etc.
- The opt-in must be an active opt-in, which means it must be triggered by a user action, such as entering a phone number or checking a box to indicate consent.
- The opt-in must clearly state your business’ name.
- Clear opt-in messaging so that the customers know what type(s) of messaging they are signing up for.
For more information, please visit: https://developers.facebook.com/docs/whatsapp/guides/opt-in/"
},
{
"name": "Campaigns",
"description": "Send WhatsApp campaigns via an API. Campaigns are reflected in the metrics page in the platform."
},
{
"name": "Users",
"description": "
**Users** are people recorded in CommBox and they include both the business side and the customers.
Managers are APIs that deal with the business personas such as Admins, Agents, Team leaders, etc., and they include **Profiles**, **Presence**, **Assignments**, **Notifications**, and **Teams** sub-categories.
General USERS"
},
{
"name": "Managers",
"description": "
The **MANAGERS** APIs category relates to activities involving the Admins, Team Leaders, Agents, and any other business-related persona. This category includes **Profiles**, **Presence**, **Assignments**, **Notifications**, and **Teams** sub-categories."
},
{
"name": "Profiles",
"description": "
**Profiles** relate to system permissions and enabled activities assigned to a group of agents (managers).
When looking for a specific user, the USER ID is required.
The profile ID is required when selecting a specific profile (See Enum section)."
},
{
"name": "Presence",
"description": "
The Presence APIs relate to the agent availability status. Active and ready for assignment, Busy, or Away from the desk. Additional statuses can be created by the admin."
},
{
"name": "Assignments",
"description": "
The **Assignments** category relates to conversations (Objects) assigned to a specific agent."
},
{
"name": "Teams",
"description": "A Team is a group of agents with specific business agendas, roles, and permissions. Admins and Team Managers can set up Team Managers to create and manage teams and give those teams specific inbox filters, tags, and knowledge-based assets."
},
{
"name": "Audiences",
"description": "The Audiences APIs allow the creation, editing and listing of organizational audiences used for campaigns."
},
{
"name": "Forms",
"description": "The Forms APIs allow agents to assist customers in completing and signing forms issued by the organization. Once the customer submits the form, a new object is created that includes a link to the original conversation and stores the completed, signed form as an attachment."
},
{
"name": "Authentication",
"description": "Authentication APIs provide accessibility to the system."
},
{
"name": "Automation",
"description": "
Automation APIs are related to chatbot capabilities."
},
{
"name": "Transcription",
"description": "
**Transcription** turns a call recording into readable, speaker-attributed messages inside the conversation."
}
],
"x-tagGroups": [
{
"name": "API Calls",
"tags": [
"Core",
"Objects",
"Media",
"AI Services",
"Streams",
"Tags",
"SMS",
"WhatsApp",
"Users",
"Managers",
"Profiles",
"Presence",
"Assignments",
"Teams",
"Audiences",
"Forms",
"Authentication",
"Automation"
]
}
],
"paths": {
"/ai-services/summary_conversation": {
"get": {
"tags": [
"AI Services"
],
"summary": "Retrieving AI Conversation Summary",
"description": "This API retrieves the AI-generated summary of a customer-agent conversation that were previously requested via the POST AI Conversation Summary Request API. The AI analyzes the conversation and generates a structured summary in the language specified in the original request.\n\n## How It Works\n\n1. **Request a summary** - Use the POST endpoint to initiate AI analysis of a conversation\n2. **Receive action_id** - The POST request returns a unique `action_id` for tracking\n3. **Poll for results** - Use this GET endpoint with the `action_id` to check if the summary is ready\n4. **Processing states**:\n - **Pending** - AI is still analyzing the conversation\n - **Completed** - Summary is ready and returned in the `answer` field\n - **Failed** - An error occurred during processing\n\n## Key Features\n\n- **Asynchronous processing** - Summaries are generated in the background\n- **Automated translation** - Results provided in the language specified in the original request\n- **Structured output** - Summaries include key conversation points and action items\n- **Unique tracking** - Each request has a persistent `action_id` for reliable retrieval\n\n## Best Practices\n\n- Poll every 2-5 seconds to check if the summary is ready\n- Cache completed summaries using the `action_id` as the key\n",
"operationId": "retrieving_summary_conversation",
"parameters": [
{
"name": "action_id",
"in": "query",
"description": "Unique identifier from the POST AI conversation API payload",
"required": true,
"schema": {
"type": "string",
"example": "AI_API_SUMMARY_e54ae358-f7b9-45c0-9e6c-da581e0964dc"
}
}
],
"responses": {
"200": {
"description": "Summary request status retrieved successfully. The `status` field indicates whether the summary is ready.",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"status",
"action_id"
],
"properties": {
"status": {
"type": "string",
"description": "Current processing status of the AI conversation summary",
"enum": [
"Pending",
"Completed",
"Failed"
],
"example": "Completed"
},
"answer": {
"type": "string",
"description": "The AI-generated conversation summary. Only populated when status is 'Completed'. Contains structured markdown with conversation highlights, key points, and action items.",
"nullable": true,
"example": "- **Client reason for contact**:\n - The client noticed an unfamiliar transaction of $12.50 from a merchant they do not recognize.\n - The client is considering applying for a home loan and wants to understand how this might affect their credit score.\n\n- **Agent actions taken**:\n - Verified the transaction details and identified it as a recurring subscription charge.\n - Explained the credit inquiry process for home loan applications.\n - Provided information about credit monitoring services.\n\n- **Resolution**:\n - Client recognized the subscription and decided to keep it active.\n - Agent sent follow-up email with home loan application checklist.\n\n- **Next steps**:\n - Client to review credit report before applying for home loan.\n - Follow-up call scheduled for next week to discuss application process."
},
"action_id": {
"type": "string",
"description": "Unique identifier for tracking this summary request. Same as the input parameter.",
"example": "AI_API_SUMMARY_2f6995be-d52b-484b-9bae-2578227caf58"
},
"error_message": {
"type": "string",
"description": "Error details if status is 'Failed'. Not present for Pending or Completed status.",
"nullable": true,
"example": "Conversation data not found or insufficient content for summarization"
}
}
},
"examples": {
"completed": {
"summary": "Summary generation completed successfully",
"value": {
"status": "Completed",
"answer": "- **Client reason for contact**:\n - The client noticed an unfamiliar transaction of $12.50 from a merchant they do not recognize.\n\n- **Agent actions taken**:\n - Verified the transaction details and identified it as a recurring subscription.\n\n- **Resolution**:\n - Client recognized the subscription after verification.",
"action_id": "AI_API_SUMMARY_2f6995be-d52b-484b-9bae-2578227caf58"
}
},
"pending": {
"summary": "Summary is still being generated",
"value": {
"status": "Pending",
"action_id": "AI_API_SUMMARY_2f6995be-d52b-484b-9bae-2578227caf58"
}
},
"failed": {
"summary": "Summary generation failed",
"value": {
"status": "Failed",
"action_id": "AI_API_SUMMARY_2f6995be-d52b-484b-9bae-2578227caf58",
"error_message": "Conversation data not found or insufficient content for summarization"
}
}
}
}
}
},
"400": {
"description": "Bad request - invalid input parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"example": "Invalid parameter"
},
"status": {
"type": "integer",
"example": 400
},
"response_time": {
"type": "string",
"format": "date-time",
"example": "2025-12-14T07:26:35.9759271Z"
}
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "boolean",
"example": true
},
"message": {
"type": "string",
"example": "Invalid or missing authentication token"
},
"status": {
"type": "integer",
"example": 401
}
}
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "integer",
"example": 404
},
"description": {
"type": "string",
"example": "Summary request not found. The action_id may be invalid or expired."
},
"response_time": {
"type": "string",
"format": "date-time",
"example": "2025-12-14T07:26:35.9759271Z"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"example": "Internal server error occurred"
},
"status": {
"type": "integer",
"example": 500
}
}
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"description": "API key is needed to authorize requests. You can get your API key via the management console. A Bearer Token is needed to be set in the Authorization header of every API call. For additional support you can contact us."
}
}
}
}
````