> ## 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.

# Post-Call Webhook

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

Post-Call Webhook се изпраща автоматично към вашия указан webhook URL след завършване на всяко повикване. Този webhook съдържа подробности за повикването, извлечени променливи, транскрипт и по избор URL на записа.

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

За да активирате post-call webhooks:

1. Конфигурирайте webhook URL на вашия асистент в [настройките на асистента](/ai-assistants/settings/post-call-actions#webhook-configuration)
2. Активирайте "Post call webhook" в [конфигурацията на асистента](/ai-assistants/settings/post-call-actions#webhook-configuration)
3. Дефинирайте post-call променливи, които AI трябва да извлече

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

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

### Структура на Payload

<ResponseField name="id" type="integer">
  Уникален идентификатор на повикването
</ResponseField>

<ResponseField name="customer_phone" type="string">
  Телефонен номер на клиента в E.164 формат (напр., "+1234567890") или null, ако не е наличен
</ResponseField>

<ResponseField name="assistant_phone" type="string">
  Телефонен номер, използван от асистента в E.164 формат, или null, ако не е наличен
</ResponseField>

<ResponseField name="duration" type="integer">
  Продължителност на повикването в секунди
</ResponseField>

<ResponseField name="status" type="string">
  Финален статус на повикването (напр., "completed", "busy", "failed")
</ResponseField>

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

  <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="string">
  Пълен транскрипт на разговора
</ResponseField>

<ResponseField name="recording_url" type="string">
  URL за изтегляне на записа на повикването (включен само ако "Include recording in webhook" е активирано в [настройките на асистента](/ai-assistants/settings/post-call-actions#webhook-configuration))
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp кога е инициирано повикването
</ResponseField>

<ResponseField name="finished_at" type="string">
  ISO 8601 timestamp кога е завършено повикването (използва updated\_at от записа на повикването)
</ResponseField>

<ResponseField name="lead" type="object">
  Информация за потенциален клиент (включено само за повиквания от кампании)

  <Expandable title="Свойства на потенциален клиент">
    <ResponseField name="id" type="integer">
      Уникален идентификатор на потенциалния клиент
    </ResponseField>

    <ResponseField name="phone_number" type="string">
      Телефонен номер на потенциалния клиент
    </ResponseField>

    <ResponseField name="variables" type="object">
      Променливи, свързани с потенциалния клиент
    </ResponseField>

    <ResponseField name="status" type="string">
      Текущ статус на потенциалния клиент
    </ResponseField>

    <ResponseField name="call_tries" type="integer">
      Броят опити за обаждане към този потенциален клиент
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Кога е създаден потенциалният клиент
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Кога е последно актуализиран потенциалният клиент
    </ResponseField>

    <ResponseField name="campaign" type="object">
      Информация за кампанията (ако е налична)

      <Expandable title="Свойства на кампанията">
        <ResponseField name="id" type="integer">
          ID на кампанията
        </ResponseField>

        <ResponseField name="name" type="string">
          Име на кампанията
        </ResponseField>

        <ResponseField name="status" type="string">
          Статус на кампанията
        </ResponseField>

        <ResponseField name="allowed_hours_start_time" type="string">
          Разрешено начално време на кампанията
        </ResponseField>

        <ResponseField name="allowed_hours_end_time" type="string">
          Разрешено крайно време на кампанията
        </ResponseField>

        <ResponseField name="allowed_days" type="array">
          Разрешени дни на кампанията
        </ResponseField>

        <ResponseField name="max_calls_in_parallel" type="integer">
          Максимум едновременни повиквания за кампанията
        </ResponseField>

        <ResponseField name="max_retries" type="integer">
          Максимум опити за повторно обаждане
        </ResponseField>

        <ResponseField name="retry_interval" type="integer">
          Интервал за повторен опит в минути
        </ResponseField>

        <ResponseField name="created_at" type="string">
          Кога е създадена кампанията
        </ResponseField>

        <ResponseField name="updated_at" type="string">
          Кога е последно актуализирана кампанията
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="transfers" type="array">
  Списък с трансферни повиквания, направени по време на това повикване (включено само ако повикването има трансфери)

  <Expandable title="Свойства на трансфер">
    <ResponseField name="id" type="integer">
      Уникален идентификатор на трансферното повикване
    </ResponseField>

    <ResponseField name="status" type="string">
      Финален статус на трансферното повикване (напр., "completed", "busy", "failed")
    </ResponseField>

    <ResponseField name="transfer_to" type="string">
      Телефонен номер, към който е трансферирано повикването в E.164 формат
    </ResponseField>

    <ResponseField name="duration" type="integer">
      Продължителност на трансферното повикване в секунди
    </ResponseField>

    <ResponseField name="carrier_cost" type="number">
      Цена на оператора за трансферното повикване в USD
    </ResponseField>

    <ResponseField name="transcript" type="array">
      Необработен транскрипт на трансферното повикване (null, ако не е наличен)
    </ResponseField>

    <ResponseField name="formatted_transcript" type="string">
      Форматиран, четим транскрипт на трансферното повикване
    </ResponseField>

    <ResponseField name="recording_url" type="string">
      URL за изтегляне на записа на трансферното повикване (включено само ако "Include recording in webhook" е активирано и съществува запис)
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp кога е иницииран трансферът
    </ResponseField>

    <ResponseField name="finished_at" type="string">
      ISO 8601 timestamp кога е завършен трансферът
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 Post-Call Webhook Request theme={null}
  {
    "id": 12345,
    "customer_phone": "+1234567890",
    "assistant_phone": "+1987654321",
    "duration": 125,
    "status": "completed",
    "extracted_variables": {
      "status": true,
      "summary": "Customer interested in product demo",
      "lead_quality": "high",
      "next_action": "schedule_demo"
    },
    "input_variables": {
      "customer_name": "John Doe",
      "product_interest": "Pro Plan"
    },
    "transcript": [
      {
        "text": "Hello! This is Sarah from Aiplocalls. How are you today?",
        "type": "transcript",
        "sender": "bot",
        "timestamp": 1756812511.315143
      },
      {
        "text": "Hi, I'm doing well, thanks for calling.",
        "type": "transcript",
        "sender": "human",
        "timestamp": 1756812514.104436
      },
      {
        "text": "I'm calling to tell you about our new product features.",
        "type": "transcript",
        "sender": "bot",
        "timestamp": 1756812522.918859
      },
      {
        "text": "That sounds interesting, tell me more.",
        "type": "transcript",
        "sender": "human",
        "timestamp": 1756812525.234567
      }
    ],
    "formatted_transcript": "AI: Hello! This is Sarah from Aiplocalls. How are you today?\nCustomer: Hi, I'm doing well, thanks for calling.\nAI: I'm calling to tell you about our new product features.\nCustomer: That sounds interesting, tell me more.",
    "recording_url": "https://call.aiployees.com/storage/recordings/call-12345.mp4",
    "created_at": "2025-01-15T10:30:00.000000Z",
    "finished_at": "2025-01-15T10:32:05.000000Z",
    "transfers": [
      {
        "id": 12346,
        "status": "completed",
        "transfer_to": "+1555123456",
        "duration": 85,
        "carrier_cost": 0.0156,
        "transcript": null,
        "formatted_transcript": "",
        "created_at": "2025-01-15T10:31:00.000000Z",
        "finished_at": "2025-01-15T10:32:25.000000Z"
      }
    ],
    "lead": {
      "id": 789,
      "phone_number": "+1234567890",
      "variables": {
        "source": "website",
        "interest_level": "high"
      },
      "status": "contacted",
      "call_tries": 2,
      "created_at": "2025-01-15T09:00:00.000000Z",
      "updated_at": "2025-01-15T10:32:05.000000Z",
      "campaign": {
        "id": 456,
        "name": "Product Demo Campaign",
        "status": "active",
        "allowed_hours_start_time": "09:00",
        "allowed_hours_end_time": "17:00",
        "allowed_days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
        "max_calls_in_parallel": 5,
        "max_retries": 3,
        "retry_interval": 60,
        "created_at": "2025-01-15T08:00:00.000000Z",
        "updated_at": "2025-01-15T08:00:00.000000Z"
      }
    }
  }
  ```
</ResponseExample>

## Настройки на Webhook

Можете да конфигурирате следните опции за вашия post-call webhook:

* **Send webhook only on completed**: Изпращане на webhook само за успешно завършени повиквания
* **Include recording in webhook**: Включване на полето `recording_url` в payload
* **Custom variables**: Дефиниране на персонализирани променливи, които AI трябва да извлече от разговора

## Важни Забележки

* Полетата `customer_phone` и `assistant_phone` могат да бъдат `null`, ако информацията не е налична
* Полето `recording_url` се включва само ако сте активирали "Include recording in webhook" в [настройките на асистента](/ai-assistants/settings/post-call-actions#webhook-configuration)
* Обектът `lead` се включва само за повиквания, които са част от кампания
* Масивът `transfers` се включва само за повиквания, които имат свързани трансферни повиквания
* Обектът `extracted_variables` ще съдържа променливите, които сте дефинирали в конфигурацията на post-call схемата на вашия асистент
