Skip to content

События и нотификаторы

Типы нотификаторов

Последовательность отправки событий в процессе совершения вызова

В версии 3.7.0 были добавлены небольшие изменения в наименования событий.

Для стратегий с участием операторов:

alt_text

Для стратегий без участия оператора:

alt_text

Примеры событий

Звонки

  • Начало вызова. Отправляется в момент начала вызова (отправки вызова к клиенту).
{
    "event": 'call:start',
    "timestamp": '2025-08-26 14:00:00',
    "data": {
        'campaign': {
            'id': '7a673f3e-ae0c-43d6-b725-649b63d89cd0',
            'external_id': null,
            'name': 'informer_ts_stage-2',
            'priority': 50,
            'strategy': 'informer',
        } if event.campaign else {},
        'bucket': {
            'id': '28edcaa6-3c8b-4b78-9ceb-aacb2eea5f73',
            'external_id': 'test_with_operator',
            'name': 'test_with_operator',
            'priority': 0,
        } if event.lead and event.lead.bucket else {},
        'lead': {
            'id': '42426873-25eb-44f3-88e3-6c7f9b54e132',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 3,
            'data': {},
            'status': 'INITIALIZE',
            'attempts': 1,
            'attempts_current_campaign': 1,
            'attempts_current_scheduler_rule': 1,
        } if event.lead else {},
        'lead_selected_data': {
            'phone': {
                'id': 'e2270f69-92e9-44de-ac86-d40117740a52',
                'external_id': null,
                'priority': 1,
                'type': 'mobile',
                'phone': '8923036250',
            },
            'route': {
                'id': '13eb5398-a986-463a-9113-b06378538498',
                'external_id': 'all_to_FreePbx',
                'name': 'all_to_FreePbx',
            },
            'cid': null,
            'agent': {
                'id': '3ddc2ef5-98cb-4d9b-90b6-d2097daada61',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {},
        } if event.lead_selected_data else {},
        'call': event.call.model_dump() if event.call else {}
    }
}
  • Перевод вызова на другого оператора.
{
    "event": 'call:transfer',
    "timestamp": '2025-08-26 14:00:00',
    "data": {
        'campaign': {
            'id': 'e470a5f6-dbc8-4711-aab0-44bc2cd5e52f',
            'external_id': null,
            'name': 'informer_ts_stage-2',
            'priority': 50,
            'strategy': 'informer',
        } if event.campaign else {},
        'bucket': {
            'id': 'f4535d8e-32bc-4d4e-9733-9c600773dcee',
            'external_id': 'test_with_operator',
            'name': 'test_with_operator',
            'priority': 0,
        } if event.lead and event.lead.bucket else {},
        'lead': {
            'id': '7adc5ad4-255b-43de-b0bf-a54ba306579e',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 3,
            'data': {},
            'status': 'INITIALIZE',
            'attempts': 1,
            'attempts_current_campaign': 1,
            'attempts_current_scheduler_rule': 1,
        } if event.lead else {},
        'lead_selected_data': {
            'phone': {
                'id': '488b1070-7d98-4b29-878d-b4719bdf59eb',
                'external_id': null,
                'priority': 1,
                'type': 'mobile',
                'phone': '8923036250',
            },
            'route': {
                'id': '7ba6c7d7-d5d7-49f8-9cd7-5a969d7470d5',
                'external_id': 'all_to_FreePbx',
                'name': 'all_to_FreePbx',
            },
            'cid': null,
            'agent': {
                'id': '41cbfbe6-4b07-49cd-85c1-a69dd677cb6f',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {},
        } if event.lead_selected_data else {},
        'agent_ext': event.agent_ext,
    }
}
  • Завершение вызовов. Отправляется в момент завершения вызова к клиенту.
{
    "event": 'calls:end',
    "timestamp": '2025-08-26 14:00:00',
    "data": [{
        'campaign': {
            'id': '7a673f3e-ae0c-43d6-b725-649b63d89cd0',
            'external_id': null,
            'name': 'informer_ts_stage-2',
            'priority': 50,
            'strategy': 'informer',
        },
        'bucket': {
            'id': '28edcaa6-3c8b-4b78-9ceb-aacb2eea5f73',
            'external_id': 'test_with_operator',
            'name': 'test_with_operator',
            'priority': 0,
        } if event.lead.bucket else {},
        'lead': {
            'id': '91b87f49-1bfd-4fe4-b13a-d1108f21f4b0',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 6,
            'data': {},
            'status': 'INITIALIZE',
            'attempts': 1,
            'attempts_current_campaign': 1,
            'attempts_current_scheduler_rule': 1,
        },
        'lead_selected_data': {
            'phone': {
                'id': 'd46e45aa-bcc1-4f51-b5ec-4815aa015712',
                'external_id': null,
                'priority': 1,
                'type': 'mobile',
                'phone': '89000000001',
            },
            'route': {
                'id': '13eb5398-a986-463a-9113-b06378538498',
                'external_id': 'all_to_FreePbx',
                'name': 'all_to_FreePbx',
            },
            'cid': null,
            'agent': {
                'id': 'b1d7b56e-9163-4165-a3e4-1f53e196f44f',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {}
        },
        'call': event.call.model_dump() if event.call else {}
    } for event in event.calls]
}

Лиды

Завершение обработки лида.

Событие отправляется в момент завершения обработки лида по завершении очередного вызова (клиент ответил на вызов или закончились попытки дозвона).

{
  "event": "lead:processed",
  "data": [
    {
      "campaign": {
        "id": "7a673f3e-ae0c-43d6-b725-649b63d89cd0",
        "external_id": null,
        "name": "informer_ts_stage-2",
        "priority": 50,
        "strategy": "informer"
      },
      "lead": {
        "id": "91b87f49-1bfd-4fe4-b13a-d1108f21f4b0",
        "external_id": null,
        "name": "TEST",
        "priority": 100,
        "timezone": 6,
        "data": {},
        "status": "COMPLITED",
        "attempts": 10,
        "attempts_current_campaign": 5,
        "attempts_current_scheduler_rule": 2
      },
      "lead_selected_data": {
        "phone": {
          "id": "d46e45aa-bcc1-4f51-b5ec-4815aa015712",
          "external_id": null,
          "priority": 1,
          "type": "mobyle",
          "phone": "89000000001"
        },
        "route": {
          "id": "13eb5398-a986-463a-9113-b06378538498",
          "external_id": "all_to_FreePbx",
          "name": "all_to_FreePbx"
        },
        "cid": null,
        "agent": {}
      },
      "call": {
        "id": 3867,
        "agent_id": null,
        "agent_ext": null,
        "uniqueid": "1601973054.3422",
        "date": "2020-10-06",
        "calldate": 1601973054,
        "duration": 30,
        "billsec": 0,
        "time_client_ringing": 30,
        "time_agent_ringing": null,
        "time_client_hold_queue": null,
        "time_talk_call": null,
        "disposition": "NOANSWER",
        "causecode": 34,
        "clid": "<74993809012>",
        "timestamp": 1601973054.3584647,
        "talk_stop_leads": true,
        "talk_stop_flow": true,
        "delay_talk_completed": 1601973204,
        "tracking": null,
        "error": null
      }
    }
  ]
}

Агенты

События данного раздела генерируются на основании событий от модуля app_queue, подробнее о событиях и условии их генерации можно ознакомится в документации.

{
    "event": 'agent:ringing',
    "timestamp": '2025-08-25 11:25:25',
    "data": {
        'campaign': {
            'id': 'db2cdddb-0a67-4b3b-9af9-6b7bf95d4bdc',
            'external_id': null,
            'name': 'stage-campaign_10000',
            'priority': 1,
            'strategy': 'progressive',
        } if event.campaign else {},
        'bucket': {
            'id': 'eb498260-ca68-4afc-9459-e42216e19e49',
            'external_id': null,
            'name': 'stage_bucket_1000',
            'priority': 1,
        } if event.lead and event.lead.bucket else {},
        'lead': {
            'id': '442e7245-3527-499e-958b-1b0d0d8930ea',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 3,
            'data': {},
            'status': 'INITIALIZE',
            'attempts': 1,
            'attempts_current_campaign': 1,
            'attempts_current_scheduler_rule': 1,
        } if event.lead else {},
        'lead_selected_data': {
            'phone': {
                'id': '801dcd49-e3f2-481b-85b2-b457c36b34bd',
                'external_id': null,
                'priority': 1,
                'type': 'mobyle',
                'phone': '89210000000',
            },
            'route': {
                'id': '88b2a87c-ed94-4b3d-8259-07bbc2eaa5b5',
                'external_id': null,
                'name': 'all_to_FreePbx: Emulate',
            },
            'cid': '880000313',
            'agent': {
                'id': '8bd89c54-dfc9-41fc-a79b-23429f14771f',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {},
        } if event.lead_selected_data else {},
        'agent_ext': 505,
    }
}
{
    "event": 'agent:connected',
    "timestamp": '2025-08-26 14:00:00',
    "data": {
        'campaign': {
            'id': 'db2cdddb-0a67-4b3b-9af9-6b7bf95d4bdc',
            'external_id': null,
            'name': 'stage-campaign_10000',
            'priority': 50,
            'strategy': 'progressive',
        } if event.campaign else {},
        'bucket': {
            'id': '752aff79-e000-4757-a5f7-b1aba1747198',
            'external_id': null,
            'name': 'stage_bucket_1000',
            'priority': 1,
        } if event.lead and event.lead.bucket else {},
        'lead': {
            'id': '442e7245-3527-499e-958b-1b0d0d8930ea',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 3,
            'data': {},
        } if event.lead else {},
        'lead_selected_data': {
            'phone': {
                'id': '801dcd49-e3f2-481b-85b2-b457c36b34bd',
                'external_id': null,
                'priority': 1,
                'type': 'mobyle',
                'phone': '89210000000',
            },
            'route': {
                'id': 'd94e100c-0be8-4bed-a171-b0dc366eeb55',
                'external_id': null,
                'name': 'all_to_FreePbx: Emulate',
            },
            'cid': null,
            'agent': {
                'id': 'a788ec93-5dbe-473f-8ade-2a382352d179',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {},
        } if event.lead_selected_data else {},
        'agent_ext': 505,
    }
}
{
    "event": 'agent:completed',
    "timestamp": '2025-08-26 14:00:00',
    "data": {
        'campaign': {
            'id': 'db2cdddb-0a67-4b3b-9af9-6b7bf95d4bdc',
            'external_id': null,
            'name': 'stage-campaign_10000',
            'priority': 1,
            'strategy': 'progressive',
        } if event.campaign else {},
        'bucket': {
            'id': '3b8cd085-f228-4447-9ac3-aa80a20e829b',
            'external_id': null,
            'name': 'stage_bucket_1000',
            'priority': 1,
        } if event.lead and event.lead.bucket else {},
        'lead': {
            'id': '442e7245-3527-499e-958b-1b0d0d8930ea',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 3,
            'data': {},
        },
        'lead_selected_data': {
            'phone': {
                'id': '534b51a4-5198-4896-8e57-56a3fe999d55',
                'external_id': null,
                'priority': 1,
                'type': 'mobyle',
                'phone': '89210000000',
            },
            'route': {
                'id': 'd1f6e697-03ac-4411-9571-430f69228008',
                'external_id': null,
                'name': 'all_to_FreePbx: Emulate',
            },
            'cid': null,
            'agent': {
                'id': 'fdb687ca-52ce-4586-ad8d-4398b55e38b2',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {}
        } if event.lead_selected_data else {},
        'agent_ext': event.agent_ext,
    }
}
{
    "event": 'agent:ring_no_answer',
    "timestamp": '2025-08-25 11:25:25',
    "data": {
        'campaign': {
            'id': 'e8a4cca2-16ba-4296-b245-889f2d9732ff',
            'external_id': null,
            'name': 'stage-campaign_10000',
            'priority': 1,
            'strategy': 'progressive',
        } if event.campaign else {},
        'bucket': {
            'id': 'f013973c-15be-496e-aaa2-68356d7e6fa6',
            'external_id': null,
            'name': 'stage_bucket_1000',
            'priority': 1,
        } if event.lead and event.lead.bucket else {},
        'lead': {
            'id': 'dfe195af-489f-47b3-a640-a3bc99a0a6ea',
            'external_id': null,
            'name': 'TEST',
            'priority': 100,
            'timezone': 3,
            'data': {},
        } if event.lead else {},
        'lead_selected_data': {
            'phone': {
                'id': 'd0272f57-7fbd-4f8d-a932-7e778397fb00',
                'external_id': null,
                'priority': 1,
                'type': 'mobyle',
                'phone': '89210000000',
            },
            'route': {
                'id': '5385fd89-faac-4939-a535-a1d30bf7fad3',
                'external_id': null,
                'name': 'all_to_FreePbx: Emulate',
            },
            'cid': null,
            'agent': {
                'id': 'd6ad7c3c-7875-4b18-a1b7-e79e39a2051c',
                'external_id': null,
                'name': '2002',
                'ext': 505,
            } if event.lead_selected_data.agent else {},
        } if event.lead_selected_data else {},
        'agent_ext': event.agent_ext,
    }
}

Из события agent:connected есть возможность брать данные для обогащения шаблонной ссылки с данными о лиде в настройках кампании.

Сопоставление этих данных осуществляется путем указания в настройках пар <будущий_ключ_в_ссылке>: <путь_на_языке_jsonpath_до_поля_в_отправляемом_событии>.

Пример отправляемого события (добавлены $.call.channel, $.url и $.campaign.settings.url_parameters_mapping):

{
  "event": "AgentConnect",
  "url": "http://localhost:8910?phone=89230360000&channel=Local%2F89230360000%40dialer-call_lead-v4-0000012b%3B1&queue_param=4001",
  "call": {
    "call_id": "",
    "caller_name": "Agentik",
    "caller_num": "89230360000",
    "channel": "Local/89230360000@dialer-call_lead-v4-0000012b;1",
    "hold_time": "2",
    "queue": "4001",
    "ring_time": "0",
    "uniqueid": "1737367051.3894"
  },
  "campaign": {
    "external_id": null,
    "id": "81547d63-08dc-4ef2-8823-25ee8ba4827d",
    "name": "aaaaaaa",
    "settings": {
      "external_urls": null,
      "openUrlNewTab": false,
      "url": "http://localhost:8910",
      "url_parameters_mapping": {
        "any_name": "not.existing.path:p",
        "channel": "call.channel:p",
        "phone": "lead.phone.phone:p",
        "queue_param": "call.queue:p"
      }
    },
    "strategy": "progressive"
  },
  "lead": {
    "data": {},
    "external_id": null,
    "id": "63d50469-19a4-414c-b445-8680af48e3f1",
    "name": "Agentik",
    "phone": {
      "external_id": null,
      "id": "b75c1e7d-413b-4979-a347-86bbd224eae2",
      "phone": "89230360000",
      "priority": 100,
      "type": null
    },
    "priority": 100,
    "timezone": 6
  }
}
{
  "event": "AgentRingNoAnswer",
  "data": {
    "call": {
      "call_id": "",
      "queue": "10000",
      "caller_name": "None",
      "caller_num": "<unknown>",
      "hold_time": "",
      "ring_time": "4000"
    },
    "campaign": {
      "id": "db2cdddb-0a67-4b3b-9af9-6b7bf95d4bdc",
      "external_id": null,
      "name": "stage-campaign_10000",
      "strategy": "progressive",
      "settings": {
        "url": "http://example.com/{PHONE}",
        "external_urls": null,
        "openUrlNewTab": null
      }
    },
    "lead": {
      "id": "21e24ee8-8b55-4536-9948-53b47f8d28b1",
      "external_id": null,
      "name": "TEST",
      "priority": 100,
      "timezone": 6,
      "data": {},
      "phone": {
        "id": "b3c0c2af-5420-48e8-ade2-068f32d1c829",
        "external_id": null,
        "priority": 1,
        "phone": "89210000000",
        "type": "mobyle"
      }
    }
  }
}