Автообзвон

Автообзвон автоматически обзванивает список контактов по заданному расписанию и сценарию — например, чтобы соединить клиента с оператором, проиграть сообщение, провести опрос или актуализировать номера. Для работы домен должен быть в режиме Колл-центр.

Работа строится вокруг пакета (кампании обзвона, DomainDialerBatch). В пакет добавляются контакты (DomainDialerContact) — номера с дополнительными полями. По каждому контакту система делает попытки дозвона (DomainDialerAttempt), пока не будет достигнута цель кампании или не закончатся попытки.

Что происходит, когда абонент ответил, определяет тип обзвона — поле dp пакета (соединить с очередью, проиграть аудио, отправить в маршрут, опросить и т.д.). Как быстро и в каком порядке набирать — задают стратегия, расписание и правила перезвона.

Объекты

Объекты сгруппированы по назначению.

Пакет, контакты, попытки (основные сущности кампании):

  • DomainDialerBatch — пакет обзвона: список контактов, расписание, сценарий, цель;

  • DomainDialerContact — контакт (номер и дополнительные поля) внутри пакета;

  • DomainDialerAttempt — попытка дозвона до контакта (с результатом);

  • DomainDialerBatchGroup — группа пакетов (для удобной группировки);

  • DomainDialerBatchNextCallParams — правило перезвона по номеру попытки или её статусу.

Расписание и цель (когда звонить и когда считать кампанию выполненной):

Тип обзвона (что происходит, когда абонент ответил; значение поля dp пакета):

Стратегии распределения (для типа «очередь» — как выбирать, сколько набирать):

Озвучивание данных контакта (элементы аудио, подставляют значения из полей контакта):

HTTP-запросы по событиям (вызвать внешний сервис при событиях обзвона):

Запросы

Список пакетов

{
  "action": "list",
  "obj": "DomainDialerBatch",
  "action_id": "a363-1636-fa71-fdc9",
  "params": {
    "domain_id": 34
  },
  "limit": 100,
  "offset": 0,
  "sort": {
    "name": "+"
  }
}

Редактирование пакета

{
  "action": "update",
  "obj": "DomainDialerBatch",
  "action_id": "0815-a04c-1f22-3956",
  "params": {
    "id": 334,
    "domain_id": 34,
    "name": "Test",
    "delay_next_call": 60,
    "contacts_by_status": {
      "0": 5
    },
    "is_active": false,
    "lines": 1,
    "link": "",
    "max_calls": 1,
    "status": 1,
    "target_time": 10,
    "outbound_dp_id": 948,
    "priority": 0,
    "target": {
      "type": 0,
      "value": 100
    },
    "schedule": {
      "dt_start": 1707177600,
      "dt_end": 1707868799,
      "time_start": "09:00:00",
      "time_end": "17:59:59",
      "time_start_weekend": "11:00:00",
      "time_end_weekend": "16:59:59",
      "tz": false,
      "wd": {
        "monday": true,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": false,
        "sunday": false
      }
    },
    "dp": {
      "name": "DomainDialerBatchDPQueue",
      "queue_id": 89,
      "audio_before": {
        "list": []
      },
      "strategy": {
        "name": "DomainDialerQueueStrategyProgressive",
        "check_agents": true
      }
    }
  }
}

Удаление пакета

{
  "action": "delete",
  "obj": "DomainDialerBatch",
  "action_id": "437f-6382-74c1-d936",
  "params": {
    "id": 334,
    "domain_id": 34
  }
}

Создание пакета с типом Соединить с очередью

Ответивший клиент соединяется с оператором указанной очереди. Порядок и интенсивность набора задаёт стратегия.

{
  "action": "append",
  "obj": "DomainDialerBatch",
  "action_id": "3a8d-b2e3-b83a-997e",
  "params": {
    "domain_id": 34,
    "name": "Test",
    "delay_next_call": 60,
    "contacts_by_status": null,
    "is_active": null,
    "lines": 1,
    "link": "",
    "max_calls": 1,
    "status": 0,
    "target_time": 10,
    "outbound_dp_id": 948,
    "priority": 0,
    "target": {
      "type": 0,
      "value": 100
    },
    "schedule": {
      "dt_start": 1707091200,
      "dt_end": 1707782399,
      "time_start": "09:00:00",
      "time_end": "17:59:59",
      "time_start_weekend": "11:00:00",
      "time_end_weekend": "16:59:59",
      "tz": false,
      "wd": {
        "monday": true,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": false,
        "sunday": false
        }
    },
    "dp": {
      "name": "DomainDialerBatchDPQueue",
      "queue_id": 89,
      "audio_before": {
        "list": []
      },
      "strategy": {
        "name": "DomainDialerQueueStrategyProgressive",
        "check_agents": true
      }
    }
  }
}

Создание пакета с типом Проиграть уведомление

Ответившему клиенту проигрывается заданное аудио (объявление, напоминание и т.п.).

{
  "action": "append",
  "obj": "DomainDialerBatch",
  "action_id": "fccd-b670-9201-32c8",
  "params": {
    "domain_id": 34,
    "name": "Test",
    "delay_next_call": 60,
    "contacts_by_status": null,
    "is_active": null,
    "lines": 1,
    "link": "",
    "max_calls": 1,
    "status": 0,
    "target_time": 10,
    "outbound_dp_id": 948,
    "priority": 0,
    "target": {
      "type": 0,
      "value": 100
    },
    "schedule": {
      "dt_start": 1707091200,
      "dt_end": 1707782399,
      "time_start": "09:00:00",
      "time_end": "17:59:59",
      "time_start_weekend": "11:00:00",
      "time_end_weekend": "16:59:59",
      "tz": false,
      "wd": {
        "monday": true,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": false,
        "sunday": false
      }
    },
    "dp": {
      "name": "DomainDialerBatchDPPlayback",
      "audio": {
        "list": [
          {
            "id": 775,
            "dpe_name": "DPEAudioSystem"
          }
        ]
      }
    }
  }
}

Создание пакета с типом Вызов на маршрут

Ответивший клиент отправляется в указанный маршрут (диалплан) для дальнейшей обработки.

{
  "action": "append",
  "obj": "DomainDialerBatch",
  "action_id": "55cf-e07a-a1bc-6d18",
  "params": {
    "domain_id": 34,
    "name": "Test",
    "delay_next_call": 60,
    "contacts_by_status": null,
    "is_active": null,
    "lines": 1,
    "link": "",
    "max_calls": 1,
    "status": 0,
    "target_time": 10,
    "outbound_dp_id": 948,
    "priority": 0,
    "target": {
      "type": 0,
      "value": 100
    },
    "schedule": {
      "dt_start": 1707091200,
      "dt_end": 1707782399,
      "time_start": "09:00:00",
      "time_end": "17:59:59",
      "time_start_weekend": "11:00:00",
      "time_end_weekend": "16:59:59",
      "tz": false,
      "wd": {
        "monday": true,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": false,
        "sunday": false
      }
    },
    "dp": {
      "name": "DomainDialerBatchDPDP",
      "dp_id": 979
    }
  }
}

Создание пакета с типом Актуализация контактов

Обзвон для проверки и актуализации номеров: фиксируется факт дозвона без соединения с оператором.

{
  "action": "append",
  "obj": "DomainDialerBatch",
  "action_id": "8ae1-34ba-e36e-2d0c",
  "params": {
    "domain_id": 34,
    "name": "Test",
    "delay_next_call": 60,
    "dp": {
      "name": "DomainDialerBatchDPCheck"
    },
    "contacts_by_status": null,
    "is_active": null,
    "lines": 1,
    "link": "",
    "max_calls": 1,
    "status": 1,
    "target_time": 10,
    "outbound_dp_id": 948,
    "priority": 0,
    "target": {
      "type": 0,
      "value": 100
    },
    "schedule": {
      "dt_start": 1707177600,
      "dt_end": 1707868799,
      "time_start": "09:00:00",
      "time_end": "17:59:59",
      "time_start_weekend": "11:00:00",
      "time_end_weekend": "16:59:59",
      "tz": false,
      "wd": {
        "monday": true,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": false,
        "sunday": false
      }
    }
  }
}

Создание пакета с типом Анкетирование

Ответившему клиенту проигрываются вопросы, а его ответы (нажатия клавиш/оценки) сохраняются.

{
  "action": "append",
  "obj": "DomainDialerBatch",
  "action_id": "a6c3-0af1-aa74-6c5c",
  "params": {
    "domain_id": 34,
    "name": "Test",
    "delay_next_call": 60,
    "contacts_by_status": null,
    "is_active": null,
    "lines": 1,
    "link": "",
    "max_calls": 1,
    "status": 0,
    "target_time": 10,
    "outbound_dp_id": 948,
    "priority": 0,
    "target": {
      "type": 0,
      "value": 100
    },
    "schedule": {
      "dt_start": 1707177600,
      "dt_end": 1707868799,
      "time_start": "09:00:00",
      "time_end": "17:59:59",
      "time_start_weekend": "11:00:00",
      "time_end_weekend": "16:59:59",
      "tz": false,
      "wd": {
        "monday": true,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": false,
        "sunday": false
      }
    },
    "dp": {
      "name": "DomainDialerBatchDPQuestions",
      "audio_before": {
        "list": [
          {
            "id": 775,
            "dpe_name": "DPEAudioSystem"
          }
        ]
      },
      "audio_after": {
        "list": [
          {
            "id": 320,
            "dpe_name": "DPEAudioSystem"
          }
        ]
      },
      "questions": [
        {
          "max_value": 10,
          "min_value": 0,
          "wait_time": 5,
          "save_error_value": true,
          "allow_speech": false,
          "audio_before": {
            "list": [
              {
                "id": 733,
                "dpe_name": "DPEAudioSystem"
              }
            ]
          }
        }
      ]
    }
  }
}

Добавление контактов

{
  "action": "append",
  "obj": "DomainDialerContact",
  "action_id": "b02a-10e0-c02a-b6e2",
  "params": {
    "domain_id": 34,
    "batch_id": 334,
    "phone": "7XXXXXXXXXX",
    "tz": "Europe/Moscow",
    "extra_fields": {}
  }
}

Примечание

Если необходимо добавить несколько номеров, добавьте в запрос отдельные объекты с параметрами «phone» и «extra_fields».

Добавление контактов через Excel-файл

{
  "action": "import",
  "obj": "DomainDialerContact",
  "action_id": "6748-7c0b-69fc-3125",
  "params": {
    "contacts": [
      {
        "phone": "7XXXXXXXXXX",
        "extra_fields": {
          "FIO": "Иванов А.И."
        },
        "tz": null
      }
    ],
    "batch_id": 337,
    "domain_id": 34
  }
}

Удаление контактов

{
  "action": "delete",
  "obj": "DomainDialerContact",
  "action_id": "9fb2-acbc-a705-7777",
  "params": {
    "id": 14087,
    "domain_id": 34
  }
}

Примечание

Удаление доступно только по одному контакту.

Список контактов

{
  "action": "list",
  "obj": "DomainDialerContact",
  "action_id": "6078-9fb0-2f26-ca4b",
  "params": {
    "domain_id": 34
  },
  "limit": 100,
  "offset": 0,
  "filter": {
    "field_list": [
      {
        "field": "batch_id",
        "condition_type": 0,
        "value": 333
      },
      {
        "field": "status",
        "condition_type": 0,
        "value": "0"
      }
    ],
    "type": 0
  }
}

Статусы и коды

Статус пакета (DomainDialerBatch.status): 0 — выключен, 1 — включён.

Статус контакта (DomainDialerContact.status): 0 — обрабатывается, 1 — успешно, 2 — попытки исчерпаны, 3 — заблокирован.

Статус набора (DomainDialerContact.dial_status): 0 — ожидает набора, 1 — в наборе.

Статус попытки (DomainDialerAttempt.status): 0 — отвечен, 1 — нет ответа, 2 — занято, 5 — автоответчик, -1 — ошибка.

Тип цели (DomainAutoDialingBatchSuccessOption.type): 0 — по проценту завершённых контактов, 1 — по проценту успешных.

Дополнительные действия

Помимо стандартных, доступны действия:

  • для DomainDialerBatch: get (получить один пакет), update_status (переключить статус без полного обновления), get_dynamic (короткая статистика для предиктивного режима), delete_attempts (сбросить попытки у всех контактов пакета), delete_contacts (удалить контакты пакета, опционально по status), select;

  • для DomainDialerContact: copy (копировать контакты между пакетами — src_batch_id, dst_batch_id, status_list), export (выгрузка контактов в XLSX), attempt_list (список попыток контакта/пакета), attempt_journal / attempt_journal_xlsx / attempt_journal_csv (журнал попыток), reset_attempts (сбросить попытки и динамические поля контакта), switch_lock (блокировка контакта — status: 1 заблокировать, 0 разблокировать).