> ## 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"
    }
  ],
  "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
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
````

