@sipuni/amocrm

0.1.21 • Public • Published

Модуль Node.js для работы с API amoCRM

Build Status

Описание

  • Библиотека использует 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');

Лицензия

MIT © Sipuni

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.21
    5
    • latest

Version History

Package Sidebar

Install

npm i @sipuni/amocrm

Weekly Downloads

5

Version

0.1.21

License

MIT

Unpacked Size

14.1 kB

Total Files

6

Last publish

Collaborators

  • freedaycirnofag
  • hbck