Структура интеграции KOMPaaS

Изменено Пн, 16 Фев на 2:37 PM

Добро пожаловать, мы подготовили для вас набор необходимых инструментов и базовых правил для работы с нашим API.


Создать интеграцию с помощью веб хуков

  1. Структура Базовых событий:

    • ВАТС : начало входящего звонка

      Тип события:

      ВАТС: Начало входящего звонка

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      ivrSchemaId: 0000
      userEventType: "VpbxInboundCallStart"
      channel: "SIP"
      privilege: "user,all"
      exten: "s"
      channelState: 4
      callerIdNum: 40000000000
      systemName: 123
      dateReceived: "Yan 01, 2026, 0:00:00 PM"
      context: "signal-vpbx-inbound-call"
      callerID: 40000000000
      event: "VpbxInboundCallStart"
      timestamp: 1765978000
      callId: "000-0000000000.00000000"
      linkedId: "000-0000000000.00000000"
      callerNumber: 40000000000
      dateReceivedAtUTC: "2026-01-01 00:00:00.721211"
      eventType: "VpbxInboundCallStart"
      priority: 3
      accountId: 000000
      channelStateDesc: "Ring"
      callerIdName: 431200000000
      did: 70000000000
      uniqueId: "000-0000000000.00000000"
      vpbxId: 0000
    • ВАТС : начало исходящего звонка

      Тип события:

      ВАТС: Начало исходящего звонка

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      originateData: ""
      connectedLineNum: 40000000000
      userEventType: "VpbxOutgoingStart"
      channel: "SIP"
      privilege: "user,all"
      exten: "s"
      channelState: 0
      isRedirect: 1
      callerIdNum: "s"
      systemName: 123
      dateReceived: "Yan 01, 2026, 0:00:00 PM"
      context: "signal-outgoing-call"
      event: "VpbxOutgoingStart"
      calledNumber: 40000000000
      timestamp: 1765970000
      callId: "000-0000000000.00000000"
      linkedId: "000-0000000000.00000000"
      connectedLineName: 40000000000
      dateReceivedAtUTC: "2026-01-01 00:00:00.048139"
      eventType: "VpbxOutgoingStart"
      internalNumber: 000
      priority: 11
      accountId: 000000
      callback: 0
      channelStateDesc: "Down"
      did: 40000000000
      uniqueId: "000-0000000000.00000000"
      vpbxId: 0000
    • ВАТС : завершение входящего звонка

      Тип события:

      ВАТС: Завершение входящего звонка

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      ivrSchemaId: 00000
      userEventType: "VpbxInboundCallEnd"
      channel: "SIP"
      privilege: "user,all"
      transcribationLanguage: ""
      exten: "s"
      channelState: 6
      duration: 2
      callerIdNum: 40000000000
      file: ""
      systemName: 123
      dateReceived: "Yan 01, 2026, 0:00:00 PM"
      record: 0
      InternalNumber: ""
      transcribationProvider: ""
      transcribation: ""
      context: "signal-vpbx-inbound-call-end"
      schemaBillsec: 0
      callerID: 40000000000
      event: "VpbxInboundCallEnd"
      billsec: 0
      timestamp: 1765970000
      callId: "000-0000000000.00000000"
      linkedId: "000-0000000000.00000000"
      answered: 0
      callerNumber: 40000000000
      dateReceivedAtUTC: "2026-01-01 00:00:00.520961"
      eventType: "VpbxInboundCallEnd"
      priority: 40
      firstAnswer: false
      accountId: 00000
      durationWaiting: 2
      queueName: ""
      time: "00:00:00"
      coreUserId: ""
      channelStateDesc: "Up"
      callerIdName: 40000000000
      did: 40000000000
      uniqueId: "000-0000000000.00000000"
      queue: ""
      vpbxId: 00000
    • ВАТС : завершение исходящего звонка

      Тип события:

      ВАТС: Завершение исходящего звонка

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      connectedLineNum: 40000000000
      userEventType: "VpbxOutgoingEnd"
      callBack: 0
      channel: "SIP"
      privilege: "user,all"
      transcribationLanguage: ""
      exten: "s"
      channelState: 5
      answerList:{0000: true
      },duration: 8
      isRedirect: 1
      hangupCauseCode: 16
      callerIdNum: 40000000000
      file: "20260101-00000-0000-70000000000-000000000000000000000"
      systemName: 123
      dateReceived: "Yan 01, 2026, 0:00:00 PM"
      record: 1
      transcribationProvider: ""
      transcribation: ""
      context: "signal-outgoing-hangup-handler"
      event: "VpbxOutgoingEnd"
      calledNumber: 40000000000
      billsec: 0
      timestamp: 1765900000
      callId: "000-0000000000.00000000"
      linkedId: "000-0000000000.00000000"
      answered: 0
      connectedLineName: 40000000000
      dateReceivedAtUTC: "2026-01-01 00:00:00.432797"
      eventType: "VpbxOutgoingEnd"
      internalNumber: 0000
      priority: 16
      firstAnswer: false
      accountId: 0000
      durationWaiting: 8
      coreUserId: ""
      channelStateDesc: "Ringing"
      did: 40000000000
      uniqueId: "000-0000000000.00000000"
      vpbxId: 00000
  2. Структура событий очереди:

    • Начало звонка в очереди

      Тип события:

      Начало звонка в очереди

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      linkedid: "000-0000000000.00000000"
      cid_num: 40000000000
      eventtime: 1765975061680000
      peeraccount: ""
      eventType: "QUEUE_LINK_START"
      exten: "s"
      accountId: 000000
      userdeftype: "QUEUE_LINK_START"
      appname: "CELGenUserEvent"
      userfield: 00000
      cid_rdnis: ""
      peer: ""
      cid_dnid: 40000000000
      extra:
      {callid: "000-0000000000.00000000"
      queue_name: "Название Вашей очереди"
      queue: 000
      queue_id: 000000
      scenario_id: 00000
      },
      cid_ani: 40000000000
      context: "queue"
      cid_name: 40000000000
      channame: "SIP"
      eventtype: "QUEUE_LINK_START"
      id: 939970000
      amaflags: 36
      accountcode: 000000
      uniqueid: "000-0000000000.00000000"
    • Завершение звонка в очереди

      Тип события:

      Завершение звонка в очереди

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      linkedid: "000-0000000000.00000000"
      cid_num: 40000000000
      eventtime: 1765886885800000
      peeraccount: ""
      eventType: "QUEUE_LINK_END"
      exten: "h"
      accountId: 000000
      userdeftype: "QUEUE_LINK_END"
      appname: "CELGenUserEvent"
      userfield: 00000
      cid_rdnis: ""
      peer: ""
      cid_dnid: 40000000000
      extra:
      {callid: "000-0000000000.00000000"
      queue_name: "Название Вашей очереди"
      queue: 000
      queue_id: 000000
      scenario_id: 000000
      status: "LOST"
      },
      cid_ani: 40000000000
      context: "queue"
      cid_name: 40000000000
      channame: "SIP"
      eventtype: "QUEUE_LINK_END"
      id: 9378000000
      amaflags: 35
      accountcode: 000000
      uniqueid: "000-0000000000.00000000"
    • Начало звонка на абонента в очереди

      Тип события:

      Начало звонка на абонента в очереди

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      callId: "000-0000000000.00000000"
      queueId: null
      answered: 0
      callerNumber: 40000000000
      dateReceivedAtUTC: "2026-01-01 00:00:00.434168"
      eventType: "QueueCallEnd"
      startGeneralTime: 1765900000
      internalNumber: 000
      duration: 45
      accountId: 000000
      durationWaiting: 45
      file: 0
      queueName: "Название Вашей очереди"
      record: 0
      billsec: 0
      did: 40000000000
      uniqueID: "000-0000000000.00000000"
      queue: 000
      whoAnswered: false
      timestamp: 17659000000
      vpbxId: 00000
    • Завершение звонка на абонента в очереди

      Тип события:

      Завершение звонка на абонента в очереди

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      callId: "000-0000000000.00000000"
      queueId: null
      answered: 0
      callerNumber: 40000000000
      dateReceivedAtUTC: "2026-01-01 00:00:00.434168"
      eventType: "QueueCallEnd"
      startGeneralTime: 1765970000
      internalNumber: 000
      duration: 45
      accountId: 00000
      durationWaiting: 45
      file: 0
      queueName: "Название Вашей очереди"
      record: 0
      billsec: 0
      did: 40000000000
      uniqueID: "000-0000000000.00000000"
      queue: 000
      whoAnswered: false
      timestamp: 1765970000
      vpbxId: 00000
  3. Структура других событий:

    • Готовность файла записи звонка

      Тип события:

      Готовность файла записи разговора

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      callId: "000-0000000000.00000000"
      accountId: 000000
      fileName: "20260101-160000-40000000000-40000000000-000000000000000000000"
      data:
      {callId: "000-0000000000.00000000"
      fileName: "20260101-160000-40000000000-40000000000-000000000000000000000"
      eventVersion: 2
      numA: 40000000000
      type: "call"
      transcribationLanguage: ""
      eventTs: 17659782000000
      numB: 40000000000
      objectType: ""
      accountId: 000000
      objectNum: ""
      transcribationProvider: ""
      transcribation: 0
      eventName: "record_upload_done"
      vpbxId: 00000
      },
      eventType: "record_upload_done"
      id: "590bff05-0f9b-4205-8312-1d431d8000000"
      type: "external_event"
      vpbxId: 00000
    • ВАТС: Реплика элемента: 'Вопрос-Ответ'

      Тип события:

      ВАТС: Реплика элемента: 'Вопрос-Ответ'

      Время события:

      01.01.2026, 00:00:00

      Данные события:

      linkedid: "000-0000000000.00000000"
      link_uniqueid_term: "000-0000000000.00000000-1765970000-3"
      speechkit_id: 0000
      speechkit_dialog_id: 0000000
      eventType: "SpeechKitDialog"
      dialog_value: ""
      server_id: 32
      accountId: 000000
      vpbx_id: 00000
      number: 40000000000
      account_id: 000000
      dialog_type: "answer"
      uniqueid: "000-0000000000.00000000"
      event_time: "2026-01-01T00:00:00.918152Z"
      did: 740000000000
      vpbxId: 00000


Как создать веб хук по API

  • В верхнем меню перейдите в раздел 'Интеграции' → вкладка 'Методы API';
    • В меню слева выберите 'Интеграции';
      • Находим Webhooks methods : /webhook/get

        • /webhook/create

          {
          "name":"New webhook",
          "url":"<https://example.ru>",
          "method":"get",
          "headers": {},
          "body":null,
          "query": {
          "from":"John",
          "to":"To ${{contact_name}}"
          },
          "logic": {},
          "event_id":1,
          (Обязательный параметр) Все методы можно посмотреть здесь/event/get
          "is_retriable":false,
          "bodyDataType":"json",
          "filter_id":1,
          "allVariables":true,
          "ignore_response":false
          }
      • /webhook/update /webhook/duplicate Так же для создания веб хуков по API  вам понадобится API  токен, он находится в разделе  'Интеграции и API v2.0' → вкладка 'Токены'.



Частые вопрос про токены (Api ключ)
API-токен (или API key) — это уникальный идентификатор, который используется для аутентификации и авторизации при доступе к API (Application Programming Interface — программный интерфейс приложения).

  • Токен может видеть сотрудник в роли Администратора или Владельца аккаунта

  • Токен привязан к сотруднику и договору (если у пользователя много договоров можно сделать нужный договор по умолчанию (нажмите на звездочку перед договором)  и тогда в нем появится токен. 

  • Как вызвать токен с ЛС не по умолчанию

    key - x-account-id — Название переменной; value — Номер аккаунта в котором должна пройти авторизация. Если в хедере передать номер аккаунта то авторизация произойдёт в нём , если хедер пустой авторизация будет в аккаунте по-умолчанию (где звездочка)

    Пример curl:

    curl --location 'https://integration.kompaas.tech/api/protected/api/integration/config/get?config_id=####' \ --header 'accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Sec-Fetch-Mode: cors' \ --header 'x-account-id: ######' \ --header 'Authorization: Bearer ' \ --data ''



Общие вопросы и полезные ссылки



Если у Вас остались вопросы связанные с интеграцией или возникли проблемы при создании интеграции можете обратиться по номеру +43 1 412 00 99 или на почту support@kompaas.tech.

Статья помогла?

Отлично!

Спасибо за ваш отзыв

Извините, что не удалось помочь!

Спасибо за ваш отзыв

Расскажите, как мы можем улучшить эту статью!

Выберите хотя бы одну причину
Требуется проверка CAPTCHA.

Комментарий отправлен

Мы ценим вашу помощь и постараемся исправить статью