---
updatedAt: 2026-08-06T09:23:09.000Z
agentTools:
  projectIndex: https://developers.alcmeon.com/llms.txt
---

# Send AI generated summary

Endpoint to invoke to send an AI generated conversation summary to a support agent. 
Once your AI API has been asynchronously called by Alcméon with a webhook_token specific for a given conversation and support agent,  this endpoint can be invoked (with the token previously received) to send the generated summary to this specific agent.


# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "AI",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.alcmeon.com",
      "description": "Alcmeon production API server"
    }
  ],
  "x-readme": {
    "explorer-enabled": false
  },
  "components": {
    "securitySchemes": {
      "basic_auth": {
        "description": "Basic authentication using your environment Instance ID as username and Application Secret as password.\n",
        "type": "http",
        "scheme": "basic"
      },
      "bearer_token": {
        "description": "OAuth 2.0 Bearer token authentication.  Obtain a token by calling the /v1/oauth2/token endpoint with your credentials. The token is valid for one hour.\n",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ResponseError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A short string explaining the reason of the error."
          },
          "details": {
            "type": "string",
            "description": "A short string which describes what is wrong. Provide this string to  support@alcmeon.com if you wish to obtain more details about the problem.\n"
          }
        }
      },
      "RateLimitResponseError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Rate limit reached"
          },
          "details": {
            "type": "string",
            "description": "A string showing the time when the rate limit will be reset. Example: {'rate_limited_until': '2024-01-22T13:05:41Z'}\n"
          }
        }
      },
      "SummaryFinished": {
        "required": [
          "summarize"
        ],
        "properties": {
          "suggest_answer": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "status"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "A unique identifier of the generated summary.\n"
              },
              "summary": {
                "type": "string",
                "nullable": true,
                "description": "The generated summary content to send to the support agent.\n"
              },
              "status": {
                "type": "string",
                "enum": [
                  "finished"
                ],
                "description": "Status of the summary - Should be finished if summary was found\n"
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The date of creation of summary.\n"
              },
              "finished_at": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The date of resolution of summary.\n"
              },
              "error": {
                "type": "string",
                "nullable": true,
                "description": "The error to send to the support agent.\n"
              },
              "user_summary": {
                "type": "string"
              },
              "agent_summary": {
                "type": "string"
              },
              "hashtags": {
                "type": "string"
              },
              "topic": {
                "type": "string"
              },
              "sentiment": {
                "type": "string"
              },
              "original_language": {
                "type": "string"
              },
              "original_language_name": {
                "type": "string"
              }
            }
          }
        },
        "example": {
          "summarize": {
            "id": "1234",
            "summary": "The user requested clarifications about opening hours of the shops and now has asked a question about his loyalty card",
            "status": "finished",
            "created_at": "2024-01-22 13:05:21",
            "finished_at": "2024-01-22 13:05:41"
          }
        }
      },
      "SummaryFailed": {
        "required": [
          "summarize"
        ],
        "properties": {
          "summarize": {
            "type": "object",
            "required": [
              "id",
              "error",
              "status"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "A unique identifier of the generated summary.\n"
              },
              "error": {
                "type": "string",
                "nullable": true,
                "description": "The error to send to the support agent.\n"
              },
              "status": {
                "type": "string",
                "enum": [
                  "failed"
                ],
                "description": "Status of the summary - Should be failed if summary could not be generated\n"
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The date of creation of summary.\n"
              },
              "finished_at": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The date of resolution of summary.            \n"
              }
            }
          }
        },
        "example": {
          "summarize": {
            "id": "1234",
            "error": "Can't generate summary",
            "status": "failed",
            "created_at": "2024-01-22 13:05:21",
            "finished_at": "2024-01-22 13:05:41"
          }
        }
      }
    }
  },
  "security": [
    {
      "basic_auth": []
    },
    {
      "bearer_token": []
    }
  ],
  "paths": {
    "/ai/summary": {
      "post": {
        "summary": "Send AI generated summary",
        "description": "Endpoint to invoke to send an AI generated conversation summary to a support agent. \nOnce your AI API has been asynchronously called by Alcméon with a webhook_token specific for a given conversation and support agent,  this endpoint can be invoked (with the token previously received) to send the generated summary to this specific agent.\n",
        "parameters": [
          {
            "in": "header",
            "name": "X-JWT",
            "schema": {
              "type": "string",
              "description": "The token received (e.g. the `webhook_token` field in the payload of the request sent to your AI API). This token is valid for 60 seconds and you cannot reuse a token received for user A to send an AI generated summary to another user B."
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/SummaryFinished"
                  },
                  {
                    "$ref": "#/components/schemas/SummaryFailed"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the token used to call the endpoint is not valid (or expired) or if the received json does not match with the expected format.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit reached. For this route limit is 150 requests per minute.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RateLimitResponseError"
                }
              }
            }
          }
        }
      }
    }
  }
}
```