Создание задачи на отвественного за контакт.
const SipuniAmoCrm = require('@sipuni/amocrm');
const TASK_DUE = 60 * 15 * 1; // 1 час в секундах
const TASK_TEXT = 'Пропущенный звонок'; // заполняем если у задачи нет текста
module.exports = async (args) => {
const amoApi = new SipuniAmoCrm({
domain: args.settings.domain, accessToken: args.crm_auth
});
let task = null;
let taskIds = null;
const contact_id = parseInt(args.context.contact_id); //Если найден/создан контакт при поступлении звонка, его ID находится в args.context.contact_id
const contact_responsible_id = parseInt(args.context.contact_responsible_id);
const timestamp = Math.ceil((new Date()).getTime() / 1000);
const existingTasks = await amoApi.tasks.list({
'filter[is_completed]': 0,
'filter[entity_type]': 'contacts',
'filter[entity_id]': contact_id,
'filter[task_type_id]': 2393295, //фильтрация по касомному типу задач
'filter[responsible_user_id]': contact_responsible_id,
});
if (existingTasks) {
taskIds = existingTasks.map(function (task) { return task.id; })
} else {
task = await amoApi.tasks.create({
entity_id: contact_id,
entity_type: 'contacts',
task_type_id: 2393295, //id кастомного типа задач
text: TASK_TEXT,
complete_till: timestamp + TASK_DUE,
responsible_user_id: contact_responsible_id,
});
}
return {
taskIds,
task,
contact_id
};
}