Смена ответственного по определенным схемам
У клиента много разных офисов и не все сотрудники работаю в амо.
Если секретарь офиса который работает в амо не ответил на звонок, то звонок распределяется на других сотрудников или в другой офис.
Но аналитика в амо числится именной за тем офисом в который позвонили т.к. ответственный будет именно тот сотрудник в чей офис позвонили.
Стандартной интеграцией создали контакт/сделку или нашли существующий контакт/сделку и по завершению звонка не важно кто ответил на звонок будет ответственный тот кто закреплен за этим офисом.
Нужно заменить, точное название схемы, без пробелов, и id пользователей(ответственных секретарей).
Добавить код можно в завершающие этапы звонков:
- Пропущен входящий
- Завершен входящий разговор
const SipuniAmoCrm = require('@sipuni/amocrm');
const SCHEME_TO_RESPONSIBLE = { // сопоставление названия схемы и ID ответственного в амо по ней
"Входящая №1": 123456,
"Исходящая №1": 123456,
"Входящая №2": 341235,
"Исходящая №2": 341235,
"Входящая №3": 55577788,
"Исходящая №3": 55577788,
};
module.exports = async (args) => {
if (!SCHEME_TO_RESPONSIBLE[args.call_args.tree_name]) {
return `схема ${args.call_args.tree_name} не в списке`;
}
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 contactCreated = args.context.contact_created;
const contactId = parseInt(args.context.contact_id);
let lead;
let contact;
if (leadCreated) {
lead = amoApi.leads.update({
"id": leadId,
"responsible_user_id": SCHEME_TO_RESPONSIBLE[args.call_args.tree_name],
});
}
if (contactCreated) {
contact = amoApi.contacts.update({
"id": contactId,
"responsible_user_id": SCHEME_TO_RESPONSIBLE[args.call_args.tree_name],
});
}
if (contact) {
if (lead) {
return {
contactId,
leadId,
"new_responsible_id": SCHEME_TO_RESPONSIBLE[args.call_args.tree_name],
};
} else {
return {
contactId,
"new_responsible_id": SCHEME_TO_RESPONSIBLE[args.call_args.tree_name],
};
}
} else {
if (lead) {
return {
leadId,
"new_responsible_id": SCHEME_TO_RESPONSIBLE[args.call_args.tree_name],
};
}
}
};