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

# Webhook за Приключена Беседа

> Webhook изпратен след приключване на чат разговор, съдържащ транскрипт, извлечени променливи и данни за клиента

Webhook-ът за Приключена Беседа се изпраща автоматично към зададения от вас webhook URL след приключване на чат разговор (WhatsApp или Уеб Уиджет). Този webhook съдържа пълния транскрипт, извлечени променливи, информация за клиента и данни за подателя.

## Конфигурация на Webhook

За да активирате webhook-ове за приключени беседи:

1. Използвайте API крайната точка [Enable Conversation Ended Webhook](/api-reference/assistants/enable-conversation-ended-webhook)
2. Предоставете вашия webhook URL където уведомленията ще бъдат изпратени
3. Опционално конфигурирайте променливи след повикване на вашия асистент за извличане на структурирани данни от разговорите

## Формат на Заявката

Webhook-ът се изпраща като POST заявка към конфигурирания от вас URL със следното JSON съдържание:

### Структура на Съдържанието

<ResponseField name="conversation_id" type="string">
  Уникален идентификатор (UUID) на разговора
</ResponseField>

<ResponseField name="assistant_id" type="string">
  Уникален идентификатор (UUID) на асистента, който обработи разговора
</ResponseField>

<ResponseField name="type" type="string">
  Типът на разговора. Възможни стойности: `widget`, `whatsapp`
</ResponseField>

<ResponseField name="message_count" type="integer">
  Общ брой съобщения обменени в разговора
</ResponseField>

<ResponseField name="status" type="string">
  Статус на разговора. Стойност: `ended`
</ResponseField>

<ResponseField name="extracted_variables" type="object">
  Променливи извлечени от AI въз основа на конфигурацията на схемата след повикване на вашия асистент

  <Expandable title="Примерни извлечени променливи">
    <ResponseField name="status" type="boolean">
      Дали целта на разговора е постигната
    </ResponseField>

    <ResponseField name="summary" type="string">
      Резюме на разговора
    </ResponseField>

    <ResponseField name="custom_variable" type="string|number|boolean">
      Всякакви персонализирани променливи дефинирани в конфигурацията на асистента
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="input_variables" type="object">
  Променливи които са подадени на асистента в началото на разговора (напр. от полета на предварителен чат форма или автоматизирани потоци)
</ResponseField>

<ResponseField name="transcript" type="array">
  Масив от обекти със съобщения представляващи пълния разговор

  <Expandable title="Свойства на съобщението">
    <ResponseField name="role" type="string">
      Ролята на подателя: `assistant` или `user`
    </ResponseField>

    <ResponseField name="content" type="string">
      Съдържанието на съобщението
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="formatted_transcript" type="string">
  Четим форматиран транскрипт с префикси `AI:` и `Customer:`
</ResponseField>

<ResponseField name="customer_phone" type="string">
  Телефонен номер на клиента (достъпен за WhatsApp разговори, `null` за уиджет разговори)
</ResponseField>

<ResponseField name="customer_name" type="string">
  Име на клиента ако е предоставено (напр. от предварителен чат форма), или `null`
</ResponseField>

<ResponseField name="sender" type="object">
  Информация за WhatsApp подателя (присъства само за WhatsApp разговори, `null` за уиджет)

  <Expandable title="Свойства на подателя">
    <ResponseField name="phone_number" type="string">
      Телефонният номер на WhatsApp подателя
    </ResponseField>

    <ResponseField name="display_name" type="string">
      Показваното име на WhatsApp подателя
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 време когато разговорът е започнал (в конфигурираната часова зона на потребителя)
</ResponseField>

<ResponseField name="ended_at" type="string">
  ISO 8601 време когато разговорът е приключил (в конфигурираната часова зона на потребителя)
</ResponseField>

<ResponseExample>
  ```json Conversation Ended Webhook Payload theme={null}
  {
    "conversation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "assistant_id": "f9e8d7c6-b5a4-3210-fedc-ba9876543210",
    "type": "widget",
    "message_count": 8,
    "status": "ended",
    "extracted_variables": {
      "status": true,
      "summary": "Customer asked about pricing plans and was interested in the Pro plan"
    },
    "input_variables": {
      "name": "John Doe",
      "email": "john@example.com"
    },
    "transcript": [
      {
        "role": "assistant",
        "content": "Hi! How can I help you today?"
      },
      {
        "role": "user",
        "content": "I have a question about your service."
      },
      {
        "role": "assistant",
        "content": "Of course! I'd be happy to help. What would you like to know?"
      },
      {
        "role": "user",
        "content": "What are your pricing plans?"
      }
    ],
    "formatted_transcript": "AI: Hi! How can I help you today?\nCustomer: I have a question about your service.\nAI: Of course! I'd be happy to help. What would you like to know?\nCustomer: What are your pricing plans?",
    "customer_phone": null,
    "customer_name": "John Doe",
    "sender": null,
    "created_at": "2026-02-23T09:30:00+01:00",
    "ended_at": "2026-02-23T10:00:00+01:00"
  }
  ```

  ```json WhatsApp Conversation Ended Webhook theme={null}
  {
    "conversation_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "assistant_id": "f9e8d7c6-b5a4-3210-fedc-ba9876543210",
    "type": "whatsapp",
    "message_count": 12,
    "status": "ended",
    "extracted_variables": {
      "status": true,
      "summary": "Customer scheduled an appointment for next week"
    },
    "input_variables": {},
    "transcript": [
      {
        "role": "user",
        "content": "Hello, I'd like to book an appointment"
      },
      {
        "role": "assistant",
        "content": "Hi! I'd be happy to help you book an appointment. What date works best for you?"
      }
    ],
    "formatted_transcript": "Customer: Hello, I'd like to book an appointment\nAI: Hi! I'd be happy to help you book an appointment. What date works best for you?",
    "customer_phone": "+1234567890",
    "customer_name": null,
    "sender": {
      "phone_number": "+19876543210",
      "display_name": "My Business"
    },
    "created_at": "2026-02-23T14:00:00+01:00",
    "ended_at": "2026-02-23T14:25:00+01:00"
  }
  ```
</ResponseExample>

## Поведение при Повторни Опити

Ако вашата webhook крайна точка връща статус код, различен от 2xx, или заявката не успее, системата ще направи повторни опити:

| Опит               | Закъснение  |
| ------------------ | ----------- |
| 1-ви повторен опит | 30 секунди  |
| 2-ри повторен опит | 60 секунди  |
| 3-ти повторен опит | 120 секунди |

След 3 неуспешни опита, доставянето на webhook-а се отбелязва като неуспешно и не се правят повече повторни опити.

## Важни Бележки

* `conversation_id` и `assistant_id` са UUID-та, не целочислени ID-та
* Полето `sender` се попълва само за WhatsApp разговори — ще бъде `null` за разговори чрез уеб уиджет
* `customer_phone` е достъпен само за WhatsApp разговори
* `customer_name` идва от данни от предварителен чат форма или контекст на разговора
* Времената използват конфигурираната часова зона на потребителя (ISO 8601 формат)
* `extracted_variables` се попълват от оценката на схемата след повикване на вашия асистент
* `input_variables` съдържат данни от предварителни чат форми (уеб уиджет) или автоматизирани потоци
