Nasal Piercings Manipulator

    @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

    Install

    npm i @sipuni/amocrm

    DownloadsWeekly Downloads

    36

    Version

    0.1.21

    License

    MIT

    Unpacked Size

    14.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • freedaycirnofag
    • hbck