Прием в работу неразобранного по пропущенному звонку и смена воронки для определенной схемы.

Если создали неразобранное стандартной интеграцией. Принятие неразобранного, смена воронки, этапа и ответственного на дежурного.

У клиента реализовано в событии пропущенного звонка. Со стратегией создать неразобранное и принять при ответе. В основной схеме настроено IVR с переходами на схемы в определенных ветках. Если клиент выбирает нужную нам схему, то при пропущенном звонке принимаем сделку и меняем воронку.

const SipuniAmoCrm = require('@sipuni/amocrm');

const ALLOWED_TREE_NAMES = ['Входящая1', 'Входящая2', 'Входящая3'];

module.exports = async (args) => {

    const amoApi = new SipuniAmoCrm({
        domain: args.settings.domain, accessToken: args.crm_auth
    });

    // Список разрешенных схем
    if (!ALLOWED_TREE_NAMES.includes(args.call_args.tree_name)) {
        return { reason: `Схема ${args.call_args.tree_name} не в списке разрешенных` };
    };

    const unsorted_created = args.context.unsorted_created; // создано ли неразобранное?
    const unsorted_alias = args.context.unsorted_alias;// uid неразобранного
    const unsorted_deal_id = args.context.unsorted_deal_id; // id сделки в неразорабном

    const statusId = 99999;//этап ворокни куда принимаем неразобранное
    const responsible_user_id = 88888;id дежурного отвественного
    const otherpipeline = 777777; // воронка куда переносим сделку
    const otherstatus_id = 666666;// этап воронки куда переносим сделку.

    if (unsorted_created) {
        const result = await amoApi.request('POST', `/leads/unsorted/${unsorted_alias}/accept`, {
            'user_id': responsible_user_id,
            'status_id': parseInt(statusId),
        });

        contactId = result._embedded.contacts[0].id;
        leadId = result._embedded.leads[0].id;

        lead = await amoApi.leads.update({
            id: parseInt(unsorted_deal_id),
            pipeline_id: parseInt(otherpipeline),
            status_id: parseInt(otherstatus_id),
            responsible_user_id: parseInt(responsible_user_id),

        }
        )

        return {
            lead,
            statusId,
            unsorted_deal_id,
            otherstatus_id,
        };

    }
    else return { reason: "Не создали неразобранное" };



};