> ## Documentation Index
> Fetch the complete documentation index at: https://help.withallo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modifier le résumé d'un appel

> Replace the markdown content of a call's AI-generated summary.

Only call items have summaries — passing an SMS ID (`msg-*`) returns `400 INVALID_ITEM_ID`. If multiple completed summary templates exist on the same call, set `template_key` to disambiguate.

<Note>
  **Scope requis :** `CONVERSATIONS_WRITE`
</Note>

Cet endpoint remplace le corps markdown du résumé d'appel généré par l'IA, par exemple après qu'un agent a relu le texte automatique et l'a corrigé.

Seuls les appels ont un résumé. Envoyer l'ID d'un SMS (`msg-*`) renvoie `400 INVALID_ITEM_ID`.

## Choisir un template

La plupart des appels n'ont qu'un seul résumé terminé, donc `template_key` peut être omis. Quand un appel en a plusieurs (par exemple `MARKDOWN_CLASSIC` et `MARKDOWN_SHORT_CALL`), `template_key` devient **obligatoire** : sinon la requête échoue avec `400 SUMMARY_TEMPLATE_KEY_REQUIRED`.

| Template              | Cas d'usage                                    |
| --------------------- | ---------------------------------------------- |
| `MARKDOWN_CLASSIC`    | Résumé structuré complet avec des sections     |
| `MARKDOWN_SHORT_CALL` | Résumé en un paragraphe pour les appels courts |

Si l'appel n'a aucun résumé terminé correspondant au `template_key` fourni, la requête renvoie `404 SUMMARY_TEMPLATE_NOT_FOUND`.

## Codes d'erreur

| Code                            | Statut | Quand                                                                 |
| ------------------------------- | ------ | --------------------------------------------------------------------- |
| `INVALID_ITEM_ID`               | 400    | Le préfixe de l'ID n'est pas `cll-`                                   |
| `INVALID_REQUEST_BODY`          | 400    | `content` est absent ou dépasse 100 000 caractères                    |
| `SUMMARY_TEMPLATE_KEY_REQUIRED` | 400    | L'appel a plusieurs templates terminés et `template_key` a été omis   |
| `CONVERSATION_ITEM_NOT_FOUND`   | 404    | L'appel n'existe pas, ou le propriétaire de l'API key n'y a pas accès |
| `SUMMARY_TEMPLATE_NOT_FOUND`    | 404    | Aucun résumé terminé n'existe pour le `template_key` demandé          |


## OpenAPI

````yaml PATCH /v2/api/conversations/items/{id}/summary
openapi: 3.0.3
info:
  title: Allo API
  description: >-
    Allo API provides programmatic access to your Allo account, allowing you to
    manage webhooks, retrieve calls and contacts, and send SMS messages.


    All requests to `/v1/api/**` endpoints automatically go through quota
    checking and scope validation.
  version: 1.0.0
  contact:
    name: Allo Support
servers:
  - url: https://api.withallo.com
    description: Production server
security: []
tags:
  - name: Summary Templates
    description: >-
      Manage call summary templates that control how AI-generated call summaries
      are structured for your team.
  - name: Webhooks
    description: >-
      Manage webhook endpoints to receive real-time notifications about events
      in your Allo account. Each endpoint subscribes to one or more event topics
      and is verified with a signing secret.
  - name: Calls
    description: >-
      Retrieve and search call records with filtering and pagination. Filter
      calls by your Allo phone number.
  - name: Contacts
    description: >-
      Search and retrieve contact information with sorting and pagination.
      Includes engagement level tracking.
  - name: SMS
    description: Send SMS messages to phone numbers using your Allo numbers.
  - name: Phone Numbers
    description: Retrieve information about your Allo phone numbers.
  - name: Analytics
    description: Pre-computed call metrics, team performance, and outbound dial funnel
  - name: CRM
    description: Manage people, companies, and deals in your CRM.
  - name: Notes
    description: >-
      Internal team notes on conversations and CRM people, with @mention
      support. Notes are never visible to the contact.
  - name: Threads
    description: >-
      Team discussion threads attached to a conversation item (call, SMS, or
      conversation note). One thread per item.
  - name: AI Receptionist
    description: >-
      Read and write the AI receptionist configuration of a phone line: business
      details, voice, prompt, capabilities, business hours, transfer rules,
      scheduling calendars and knowledge sources.
paths:
  /v2/api/conversations/items/{id}/summary:
    patch:
      tags:
        - Conversations
      summary: Update call summary
      description: >-
        Replace the markdown content of a call's AI-generated summary.


        Only call items have summaries — passing an SMS ID (`msg-*`) returns
        `400 INVALID_ITEM_ID`. If multiple completed summary templates exist on
        the same call, set `template_key` to disambiguate.
      operationId: updateCallSummary
      parameters:
        - name: id
          in: path
          required: true
          description: Call ID (`cll-*`)
          schema:
            type: string
            example: cll-abc123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  description: Full replacement markdown content. Max 100,000 characters.
                  maxLength: 100000
                template_key:
                  type: string
                  nullable: true
                  enum:
                    - MARKDOWN_CLASSIC
                    - MARKDOWN_SHORT_CALL
                  description: >-
                    Required only when the call has more than one completed
                    summary template.
              required:
                - content
            example:
              content: >-
                # Summary


                Customer asked about pricing for the Pro plan and confirmed a
                follow-up call next Tuesday.
      responses:
        '200':
          description: Updated summary
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CallSummary'
              example:
                data:
                  id: cll-abc123
                  content: >-
                    # Summary


                    Customer asked about pricing for the Pro plan and confirmed
                    a follow-up call next Tuesday.
                  version: 4
                  updated_at: '2026-05-12T14:32:11'
                  updated_by:
                    id: usr-abc123
                    name: Alex Kim
        '400':
          $ref: '#/components/responses/ApiValidationError'
        '401':
          $ref: '#/components/responses/ApiUnauthorized'
        '404':
          $ref: '#/components/responses/ApiNotFound'
        '429':
          $ref: '#/components/responses/ApiRateLimited'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CallSummary:
      type: object
      properties:
        id:
          type: string
          description: Call ID this summary belongs to
          example: cll-abc123
        content:
          type: string
          nullable: true
          description: Markdown summary content
        version:
          type: integer
          format: int64
          description: Optimistic-lock version. Increments on every successful update.
          example: 4
        updated_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-05-12T14:32:11'
        updated_by:
          type: object
          nullable: true
          properties:
            id:
              type: string
              example: usr-abc123
            name:
              type: string
              nullable: true
              example: Alex Kim
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            code:
              type: string
            message:
              type: string
            retryable:
              type: boolean
            request_id:
              type: string
            retry_after_seconds:
              type: integer
              nullable: true
  responses:
    ApiValidationError:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiUnauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiNotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiRateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````