Назначение всех задач о пропущенном на одного пользователя
В этом примере, все задачи о пропущенном назначаются на одного и того же пользователя.
Для работы функции отключите создание задач в настройках интеграции amoCRM.
При создании функции необходимо выбрать “Пропущен входящий”.
const SipuniAmoCrm = require('@sipuni/amocrm');
const AMO_USER_ID = 99999; // укажите ID пользователя в amoCRM
const TASK_DUE = 60*60*1; // 1 час в секундах
module.exports = async (args) => {
// Если найден/создан контакт при поступлении звонка,
// его ID находится в args.context.contact_id
if (args.context.contact_id) {
const amoApi = new SipuniAmoCrm({
domain: args.settings.domain, accessToken: args.crm_auth
});
// Поиск незавершенной задачи для этого пользователя и заданного контакта
const existing = await amoApi.tasks.list({
'filter[responsible_user_id]': AMO_USER_ID,
'filter[is_completed]': 0,
'filter[entity_type]': 'contacts',
'filter[entity_id]': args.context.contact_id,
});
if (!existing) {
const timestamp = Math.ceil((new Date()).getTime()/1000);
const task = await amoApi.tasks.create({
entity_id: args.context.contact_id,
entity_type: 'contacts',
text: 'Перезвонить',
complete_till: timestamp + TASK_DUE,
responsible_user_id: AMO_USER_ID,
});
}
}
};
В этом примере используется args.context.contact_id
Интеграция Sipuni с amoCRM создает поле contact_id
в объекте
context
, если найден существующий контакт или при создании нового контакта. Это позволяет не делать поиск контакта
в этой функции.