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

При поступлении звонка, в схему с ivr и после выбора пункта меню, звонок переходит в другую схему. Стандартная интеграция создает сделку в воронке, которая привязана к первой схеме c ivr. Данным кодом, если сделка была создана, мы ее обновляем меняя воронку, заранее задав логику название Схемы = id воронки.

Данная функция поможет упростить рутинную работу, автоматизацией. При принятом звонке если сотрудник забудет перевести в нужную воронку мы сделаем это за него. При пропущенном звонке сотрудник который работает в конкретной воронки сразу начнет обрабатывать новый лид, а не ждать пока кто то распределит из основной воронки к которой привязана к первой схемы.

Нужно заменить, точное название схемы, без пробелов, и id воронки.

Добавить приведенный ниже код можно в следующие этапы:

  • Поднял трубку при входящем
  • Пропущен входящий
  • Завершен входящий разговор
const SipuniAmoCrm = require('@sipuni/amocrm');

const TREE_TO_PIPELINE = {
    "Схема 1": 3818719,
    "Входящая": 3818719,
};
const DEFAULT_PIPELINE_ID = 1900102;
const TREE_TO_STATUS = {
    "Схема 2": 36790006,
    "Входящая": 36790006,
};
const DEFAULT_STATUS_ID = 36790006;

module.exports = async (args) => {
    const amoApi = new SipuniAmoCrm({ domain: args.settings.domain, accessToken: args.crm_auth });
    const leadCreated = args.context.already_created_deal;
    const leadId = parseInt(args.context.deal_id);
    const treeName = args.call_args.tree_name;
    const newPipelineId = TREE_TO_PIPELINE[treeName] || DEFAULT_PIPELINE_ID;
    const newStatusId = TREE_TO_STATUS[treeName] || DEFAULT_STATUS_ID;
    let lead;

    if (leadCreated) {
        lead = await amoApi.leads.update({
            "id": leadId,
            "pipeline_id": newPipelineId,
            "status_id": newStatusId,
        });
    }

    if (lead) {
        return {
            leadId,
            newPipelineId,
            newStatusId,
        };
    }
};