@sipuni/amocrm
v0.1.21
Published
ampCRM API wrapper for Node.js
Downloads
5
Readme
Модуль Node.js для работы с API amoCRM
Описание
- Библиотека использует amoCRM API V4.
- Работает с access token, но не включает реализацию OAuth
- Работает с login/hash для старых интеграций
Установка
npm i @sipuni/amocrm
Реализованные методы
Методы сгруппированы и доступны через соответствующие свойства у объекта класса SipuniAmocrm. Все методы возвращают Promise.
Для списка методов ниже предположим, что amoApi это объект класса SipuniAmoCrm
const SipuniAmoCrm = require('@sipuni/amocrm');
const amoApi = new SipuniAmocrm(..)
Сделки
amoApi.leads.get(leadId)
amoApi.leads.list(query, limit = 10)
amoApi.leads.create(leadProperties)
amoApi.leads.update(leadProperties)
Контакты
amoApi.contacts.get(contactId)
amoApi.contacts.list(query, limit = 10)
amoApi.contacts.create(contactProperties)
amoApi.contacts.update(contactProperties)
Компании
amoApi.companies.get(companyId)
amoApi.companies.list(query, limit = 10)
amoApi.companies.create(companyProperties)
amoApi.companies.update(companyProperties)
Задачи
amoApi.tasks.get(taskId)
amoApi.tasks.list(query, limit = 10)
amoApi.tasks.create(taskProperties)
amoApi.tasks.update(taskProperties)
Звонки
amoApi.calls.create(taskProperties)
Примеры
Авторизация с использованием access token и создание сделки
const AmoCrmAPI = require('@sipuni/amocrm');
const accessToken = .... // токен, полученный при помощи OAuth
const amoApi = new AmoCrmAPI({
domain: 'mydomain.amocrm.ru',
accessToken
});
const lead = await amoApi.leads.create({ name: 'New lead' });
Авторизация с использованием login/hash и создание сделки
const AmoCrmAPI = require('@sipuni/amocrm');
const login = ... // Логин пользователя
const hash = ... // Hash пароля пользователя
const amoApi = new AmoCrmAPI({
domain: 'mydomain.amocrm.ru',
login,
hash,
});
const lead = await amoApi.leads.create({ name: 'New lead' });
Создание контакта с телефоном
const contact = await amo.contacts.create({
name: 'New contact',
custom_fields_values: [
amo.preparePhoneField('74996474747', 'WORK'),
],
});
Создание задачи с привязкой к контакту
const timestamp = Math.ceil((new Date()).getTime()/1000);
const task = await amo.tasks.create({
entity_id: contactId,
entity_type: 'contacts',
text: 'Call back a customer',
complete_till: timestamp + 60*60*24,
});
Поиск незавершенной задачи для ответственного и заданного контакта
const existing = await amo.tasks.list({
'filter[responsible_user_id]': amoUserId,
'filter[is_completed]': 0,
'filter[entity_type]': 'contacts',
'filter[entity_id]': contactId,
});
Произвольный запрос к amoCRM API
Поскольку не для всех сущностей реализованы методы, можно вызывать API методы amoCRM напрямую, при помощи метода request.
// создание сделки
const lead = await amo.request('POST', '/leads', {
name: 'New lead'
});
// получение задачи
const task = await amo.request('GET', '/tasks/124212');