Amocrm для Rails
Оглавление
- Установка
- Упрощенная авторизация
- Авторизация через перенаправления пользователя (требуется gem Devise)
- Параметры аккаунта
- Сделки
- Список сделок
- Получение сделки по ID
- Добавление сделок
- Комплексное добавление сделок с контактом и компанией
- Редактирование сделок
- Редактирование сделки
- Неразобранное
- Список неразобранного
- Получение неразобранного по UID
- Добавление неразобранного типа звонок
- Добавление неразобранного типа форма
- Принятие неразобранного
- Отклонение неразобранного
- Привязка неразобранного
- Сводная информация о неразобранных сделках
- Описание объектов metadata
- Воронки и этапы
- Общая информация
- Список воронок сделок
- Получение воронки сделок по ID
- Добавление воронок
- Редактирование воронки
- Удаление воронки
- Список статусов воронки сделок
- Получение статуса воронки сделок по ID
- Добавление статусов в воронку
- Редактирование статуса воронки
- Удаление статуса воронки
- Доступные цвета статусов
- Фильтрация
- Фильтрация списка сделок
- Фильтрация списка контактов
- Фильтрация списка компаний
- Фильтрация списка покупателей
- Типы фильтров
- Контакты
- Список контактов
- Получение контакта по ID
- Добавление контактов
- Редактирование контактов
- Редактирование контакта
- Привязка чатов к контактам
- Получение списка чатов контакта
- Компании
- Список компаний
- Получение компании по ID
- Добавление компаний
- Редактирование компаний
- Редактирование компании
- Списки
- Доступные списки
- Получение списка по ID
- Добавление списков
- Редактирование списков
- Редактирование списка
- Доступные элементы списка
- Получение элемента списка по ID
- Добавление элементов списков
- Редактирование элементов списков
- Редактирование элемента списка
- Связи сущностей
- Список связанных сущностей
- Привязка сущностей
- Отвязка сущностей
- Массовый список связанных сущностей
- Массовая привязка сущностей
- Массовая отвязка сущностей
- Задачи
- Список задач
- Получение задачи по ID
- Добавление задач
- Редактирование задач
- Редактирование задачи
- Выполнение задачи
- Поля и группы полей
- Список полей сущности
- Получение поля сущности по его ID
- Создание дополнительных полей сущности
- Редактирование дополнительных полей сущности
- Удаление дополнительного поля
- Список групп полей сущности
- Получение группы полей сущности по ID группы
- Создание групп полей
- Редактирование группы полей
- Удаление группы дополнительных полей
- Доступные типы полей
- Примеры заполнения разных типов полей через API
- Теги
- Список полей сущности
- Добавление тегов для конкретного типа сущности
- Добавление тегов к сущности
- Удаление тегов у сущности
- События и примечания
- Список событий
- Значения для фильтра по значению до/после
- Типы событий
- Общая информация о примечаниях
- Типы примечаний
- Список примечаний по типу сущности
- Список примечаний по конкретной сущности, по ID сущности
- Получение примечания по ID
- Добавление примечаний
- Покупатели
- Включение покупателей и смена их режима
- Список покупателей
- Получение покупателя по ID
- Добавление покупателей
- Редактирование покупателей
- Редактирование покупателя
- Список транзакций
- Получение транзакции по ID
- Добавление транзакций к покупателю
- Удаление транзакции
- Списание/начисление бонусных баллов покупателю
- Статусы и сегменты покупателей
- Список статусов покупателей
- Получение статуса покупателей по ID
- Добавление статусов в воронку
- Редактирование статуса покупателей
- Удаление статуса покупателей
- Список сегментов покупателей
- Получение сегмента покупателей по ID
- Добавление сегмента покупателей
- Редактирование сегмента покупателей
- Удаление сегмента покупателей
- Доступные цвета статусов
- Доступные цвета сегментов
- Пользователи
- Список пользователей
- Получение пользователя по ID
- Добавление пользователей
- Список ролей пользователей
- Получение роли по ID
- Добавление ролей
- Редактирование роли
- Удаление роли
- Общие обозначения прав пользователей
- Зависимости прав пользователей
- Товары
- Вебхуки
- Список установленных вебхуков в аккаунте
- Подписка на вебхук
- Отписка от событий
- Возможные событий
- Виджеты
- Список виджетов
- Информация о виджете по его коду
- Установка виджета в аккаунт
- Удаление установки виджета
- Подтверждение выполнения блока виджета в Salesbot
- Добавление звонков
- Salebot
- Короткие ссылки
Установка
добавьте в Gemfile:
gem 'amocrm-rails'
и запустите bundle install
.
Для упрощенной авторизации:
rails g amocrm_rails:install
Для авторизации через перенаправление пользователя (требуется gem devise):
rails g amocrm_rails:install --with=devise
Получение CLIENT_ID, CLIENT_SECRET и CODE
Упрощенная авторизация
- Переходим на страницу интеграций https://yourdomain.amocrm.ru/settings/widgets/ и нажимаем "+ СОЗДАТЬ ИНТЕГРАЦИЮ"
- Заполняем поля, в первое поле вводим https://yourdomain.com/amocrm и нажимаем "Сохранить"
- Переходим на таб "Ключи и доступы". Код авторизации работает 20 минут.
В файл config/amocrm.yml
вставляем данные.
Авторизация через перенаправления пользователя (требуется gem Devise)
Выполняем все шаги как при упрощенной авторизации
Ссылка на получение кода:
<%= link_to "Установить интеграцию",
amocrm_oauth_url(state: current_user.try(:id)),
class: 'btn btn-primary' %>
Пример доступен по адресу:
https://yourdomain/amocrm/link
Нажимаем на кнопку, логинимся в амо и даём права приложению
После вы будуте перенаправлены на страницу https://yourdomain.com/amocrm
Если вы увидили код и информацию об аккаунте - всё в порядке, копировать код нет необходимости, страницу можно закрыть.
Если вы не используете gem Devise, то вам необходимо реализовать в
application_controller.rb методы current_user
для получения текущего пользователя, user_signed_in?
для проверки
авторизован ли посетитель на вашем сайте и new_user_session_path
для получения пути к странице авторизции.
Вы можете изменять timeout
, open_timeout
, faraday_adapter
, proxy
, symbolize_keys
, logger
, и debug
:
AmocrmRails::Request.timeout = 60
AmocrmRails::Request.open_timeout = 60
AmocrmRails::Request.symbolize_keys = true
AmocrmRails::Request.debug = false
в файле config/initializers/amocrm.rb
params = {
with: 'amojo_id,amojo_rights,users_groups,task_types,version,entity_names,datetime_settings'
}
response = AmocrmRails::Request.account.retrieve(params: params)
p(response.body)
Сделки
params = {
with: 'catalog_elements',
page: 0,
limit: 10
}
response = AmocrmRails::Request.leads.retrieve(params: params)
p(response.body)
leads = response.body[:_embedded][:leads]
lead_id = leads.first[:id]
params = {
with: 'catalog_elements'
}
response = AmocrmRails::Request.leads(lead_id).retrieve(params: params)
p(response.body)
body = [
{
"name": "Сделка для примера 1",
"created_by": 0,
"price": 20000
},
{
"name": "Сделка для примера 2",
"price": 10000
}
]
response = AmocrmRails::Request.leads.create(body: body)
p(response.body)
leads = response.body[:_embedded][:leads]
body = [
{
name: "Название сделки",
price: 3422,
created_at: 1608905348
},
{
name: "Название сделки",
price: 3422
}
]
response = AmocrmRails::Request.leads.complex.create(body: body)
p(response.body)
body = [
{
id: 666749,
closed_at: 1589297221
},
{
id: 666753,
price: 50000
}
]
response = AmocrmRails::Request.leads.update(body: body)
p(response.body)
leads = response.body[:_embedded][:leads]
body = {
closed_at: 1589297221
}
response = AmocrmRails::Request.leads(666749).update(body: body)
p(response.body)
leads = response.body[:_embedded][:leads]
Неразобранное
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.leads.unsorted.retrieve(params: params)
p(response.body)
unsorted = response.body[:_embedded][:unsorted]
uid = unsorted.first[:uid]
response = AmocrmRails::Request.leads.unsorted(uid).retrieve
p(response.body)
body = [
{
source_name: "ООО Деппа",
source_uid: "a1fee7c0fc436088e64ba2e8822ba2b3",
created_at: 1510261200,
_embedded: {
leads: [
{
name: "Тех обслуживание",
price: 5000
}
],
contacts: [
{
name: "Контакт для примера"
}
],
companies: [
{
name: "ООО Деппа"
}
]
},
metadata: {
is_call_event_needed: true,
uniq: "a1fe231cc88e64ba2e8822ba2b3ewrw",
duration: 54,
service_code: "CkAvbEwPam6sad",
link: "https://deppa.ru",
phone: 79998888888,
called_at: 1510261200,
from: "onlinePBX"
}
}
]
response = AmocrmRails::Request.leads.unsorted.sip.create(body: body)
p(response.body)
body = [
{
source_name: "ООО Деппа",
source_uid: "a1fee7c0fc436088e64ba2e8822ba2b3",
created_at: 1590830520,
_embedded: {
leads: [
{
name: "Тех обслуживание",
visitor_uid: "5692210d-58d0-468c-acb2-dce7f93eef87",
price: 5000,
_embedded: {
tags: [
{
name: "Тег для примера"
}
]
}
}
],
contacts: [
{
name: 234,
first_name: "123213",
last_name: 234,
custom_fields_values: [
{
field_code: "PHONE",
values: [
{
value: "+7912321323"
}
]
}
]
}
],
companies: [
{
name: "ООО Деппа"
}
]
},
metadata: {
ip: "123.222.2.22",
form_id: "a1fee7c0fc436088e64ba2e8822ba2b3ewrw",
form_sent_at: 1590830520,
form_name: "Форма заявки для полёта в космос",
form_page: "https://deppa.ru",
referer: "https://www.google.com/search?&q=elon+musk"
}
}
]
response = AmocrmRails::Request.leads.unsorted.forms.create(body: body)
p(response.body)
uid = response.body[:_embedded][:unsorted].first[:uid]
body = {
status_id: 41504311
}
response = AmocrmRails::Request.leads.unsorted(uid).accept.create(body: body)
p(response.body)
response = AmocrmRails::Request.leads.unsorted(uid).decline.delete
p(response.body)
body = {
link: {
entity_id: lead_id,
entity_type: "leads"
}
}
response = AmocrmRails::Request.leads.unsorted(uid).link.create(body: body)
p(response.body)
response = AmocrmRails::Request.leads.unsorted.summary.retrieve
p(response.body)
Воронки и этапы
response = AmocrmRails::Request.leads.pipelines.retrieve
p(response.body)
pipelines = response.body[:_embedded][:pipelines]
pipeline_id = pipelines.first[:id]
response = AmocrmRails::Request.leads.pipelines(pipeline_id).retrieve
p(response.body)
body = [
{
name: "Воронка доп продаж",
is_main: false,
is_unsorted_on: true,
sort: 20,
request_id: "123",
_embedded: {
statuses: [
{
id: 142,
name: "Мое название для успешных сделок"
},
{
name: "Первичный контакт",
sort: 10,
color: "#fffeb2"
}
]
}
}
]
response = AmocrmRails::Request.leads.pipelines.create(body: body)
p(response.body)
pipelines = response.body[:_embedded][:pipelines]
pipeline_id = pipelines.first[:id]
body = {
"name": "Новое название для воронки",
"is_main": false,
"is_unsorted_on": false,
"sort": 100
}
response = AmocrmRails::Request.leads.pipelines(pipeline_id).update(body: body)
p(response.body)
AmocrmRails::Request.leads.pipelines(pipeline_id).delete
response = AmocrmRails::Request.leads.pipelines(pipeline_id).statuses.retrieve
p(response.body)
statuses = response.body[:_embedded][:statuses]
status_id = statuses.first[:id]
response = AmocrmRails::Request.leads.pipelines(pipeline_id).statuses(status_id).retrieve
p(response.body)
body = [
{
name: "Новый этап",
sort: 100,
color: "#fffeb2"
},
{
name: "Новый этап 2",
sort: 200,
color: "#fffeb2"
}
]
response = AmocrmRails::Request.leads.pipelines(pipeline_id).statuses.create(body: body)
p(response.body)
statuses = response.body[:_embedded][:statuses]
status_id = statuses.first[:id]
body = {
name: "Новое название для статуса",
color: "#c1e0ff"
}
response = AmocrmRails::Request.leads.pipelines(pipeline_id).statuses(status_id).update(body: body)
p(response.body)
AmocrmRails::Request.leads.pipelines(pipeline_id).statuses(status_id).delete
params = {
filter: {
id: lead_id
}
}
response = AmocrmRails::Request.leads.retrieve(params: params)
p(response.body)
leads = response.body[:_embedded][:leads]
params = {
filter: {
name: "Павел Осетров"
}
}
response = AmocrmRails::Request.contacts.retrieve(params: params)
p(response.body)
contacts = response.body[:_embedded][:contacts]
params = {
filter: {
name: "ООО Деппа"
}
}
response = AmocrmRails::Request.companies.retrieve(params: params)
p(response.body)
companies = response.body[:_embedded][:companies]
params = {
filter: {
name: "Павел Осетров"
}
}
response = AmocrmRails::Request.customers.retrieve(params: params)
p(response.body)
customers = response.body[:_embedded][:customers]
params = {
with: 'leads',
page: 0,
limit: 10
}
response = AmocrmRails::Request.contacts.retrieve(params: params)
p(response.body)
contacts = response.body[:_embedded][:contacts]
contact_id = contacts.first[:id]
response = AmocrmRails::Request.contacts(contact_id).retrieve
p(response.body)
body = [
{
first_name: "Петр",
last_name: "Смирнов"
},
{
name: "Владимир Смирнов"
}
]
response = AmocrmRails::Request.contacts.create(body: body)
p(response.body)
contacts = response.body[:_embedded][:contacts]
contact_id = contacts.first[:id]
body = [
{
id: contact_id,
first_name: "Иван",
last_name: "Иванов"
}
]
response = AmocrmRails::Request.contacts.update(body: body)
p(response.body)
contacts = response.body[:_embedded][:contacts]
contact_id = contacts.first[:id]
body = {
first_name: "Иван",
last_name: "Иванов"
}
response = AmocrmRails::Request.contacts(contact_id).update(body: body)
p(response.body)
body = [
{
contact_id: contact_id,
chat_id: uid
}
]
response = AmocrmRails::Request.contacts.chats.create(body: body)
p(response.body)
params = [
{
contact_id: contact_id
}
]
response = AmocrmRails::Request.contacts.chats.retrieve(params: params)
p(response.body)
params = {
with: 'leads',
page: 0,
limit: 10
}
response = AmocrmRails::Request.companies.retrieve(params: params)
p(response.body)
companies = response.body[:_embedded][:companies]
company_id = companies.first[:id]
response = AmocrmRails::Request.companies(company_id).retrieve
p(response.body)
body = [
{
name: "ООО Деппа"
}
]
response = AmocrmRails::Request.companies.create(body: body)
p(response.body)
companies = response.body[:_embedded][:companies]
company_id = companies.first[:id]
body = [
{
id: company_id,
name: "ООО ДЕППА"
}
]
response = AmocrmRails::Request.companies.update(body: body)
p(response.body)
companies = response.body[:_embedded][:companies]
company_id = companies.first[:id]
body = {
name: "ООО ДЕППА"
}
response = AmocrmRails::Request.companies(company_id).update(body: body)
p(response.body)
company_id = response.body[:id]
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.catalogs.retrieve(params: params)
p(response.body)
catalogs = response.body[:_embedded][:catalogs]
catalog_id = catalogs.first[:id]
response = AmocrmRails::Request.catalogs(catalog_id).retrieve
p(response.body)
body = [
{
name: "Тестовый список",
can_add_elements: true,
can_link_multiple: false
}
]
response = AmocrmRails::Request.catalogs.create(body: body)
p(response.body)
catalogs = response.body[:_embedded][:catalogs]
catalog_id = catalogs.first[:id]
body = [
{
id: catalog_id,
name: "Новое имя списка"
}
]
response = AmocrmRails::Request.catalogs.update(body: body)
p(response.body)
catalogs = response.body[:_embedded][:catalogs]
catalog_id = catalogs.first[:id]
body = {
name: "Новое имя списка"
}
response = AmocrmRails::Request.catalogs(catalog_id).update(body: body)
p(response.body)
catalog_id = response.body[:id]
params = {
with: 'invoice_link',
page: 0,
limit: 10
}
response = AmocrmRails::Request.catalogs(catalog_id).elements.retrieve(params: params)
p(response.body)
elements = response.body[:_embedded][:elements]
element_id = elements.first[:id]
params = {
with: 'invoice_link'
}
response = AmocrmRails::Request.catalogs(catalog_id).elements(element_id).retrieve(params: params)
p(response.body)
element_id = response.body[:id]
body = [
{
name: "Новый элемент списка"
}
]
response = AmocrmRails::Request.catalogs(catalog_id).elements.create(body: body)
p(response.body)
elements = response.body[:_embedded][:elements]
element_id = elements.first[:id]
body = [
{
id: element_id,
name: "Новое имя элемента"
}
]
response = AmocrmRails::Request.catalogs(catalog_id).elements.update(body: body)
p(response.body)
elements = response.body[:_embedded][:elements]
element_id = elements.first[:id]
body = {
name: "Новое имя элемента"
}
response = AmocrmRails::Request.catalogs(catalog_id).elements(element_id).update(body: body)
p(response.body)
element_id = response.body[:id]
response = AmocrmRails::Request.leads(lead_id).links.retrieve
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.contacts(contact_id).links.retrieve
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.companies(company_id).links.retrieve
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.customers(customer_id).links.retrieve
links = response.body[:_embedded][:links]
body = [
{
to_entity_id: 10,
to_entity_type: "catalog_elements",
metadata: {
quantity: 1,
catalog_id: 1026
}
},
{
to_entity_id: 457282,
to_entity_type: "contacts",
metadata: {
is_main: true,
}
}
]
response = AmocrmRails::Request.leads(lead_id).link.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.contacts(contact_id).link.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.companies(company_id).link.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.customers(customer_id).link.create(body: body)
links = response.body[:_embedded][:links]
body = [
{
to_entity_id: 10,
to_entity_type: "catalog_elements",
metadata: {
catalog_id: 1026
}
},
{
to_entity_id: 457282,
to_entity_type: "contacts",
}
]
response = AmocrmRails::Request.leads(lead_id).unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.contacts(contact_id).unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.companies(company_id).unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.customers(customer_id).unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.leads.links.retrieve
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.contacts.links.retrieve
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.companies.links.retrieve
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.customers.links.retrieve
links = response.body[:_embedded][:links]
body = [
{
entity_id: 14158851,
to_entity_id: 10,
to_entity_type: "catalog_elements",
metadata: {
quantity: 1,
catalog_id: 1026
}
},
{
entity_id: 14158852,
to_entity_id: 457282,
to_entity_type: "contacts",
metadata: {
is_main: true,
}
}
]
response = AmocrmRails::Request.leads.link.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.contacts.link.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.companies.link.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.customers.link.create(body: body)
links = response.body[:_embedded][:links]
body = [
{
to_entity_id: 10,
to_entity_type: "catalog_elements",
metadata: {
catalog_id: 1026
}
},
{
to_entity_id: 457282,
to_entity_type: "contacts",
}
]
response = AmocrmRails::Request.leads.unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.contacts.unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.companies.unlink.create(body: body)
links = response.body[:_embedded][:links]
response = AmocrmRails::Request.customers.unlink.create(body: body)
links = response.body[:_embedded][:links]
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.tasks.retrieve(params: params)
p(response.body)
tasks = response.body[:_embedded][:tasks]
task_id = tasks.first[:id]
response = AmocrmRails::Request.tasks(task_id).retrieve
p(response.body)
task_id = response.body[:id]
body = [
{
task_type_id: 1,
text: "Встретиться с клиентом Иван Иванов",
complete_till: 1588885140
}
]
response = AmocrmRails::Request.tasks.create(body: body)
p(response.body)
tasks = response.body[:_embedded][:tasks]
body = [
{
id: task_id,
task_type_id: 2,
text: "Новое название для задачи",
complete_till: 1588885140
}
]
response = AmocrmRails::Request.tasks.update(body: body)
p(response.body)
tasks = response.body[:_embedded][:tasks]
body = {
task_type_id: 2,
text: "Новое название для задачи",
complete_till: 1588885140
}
response = AmocrmRails::Request.tasks(task_id).update(body: body)
task = response.body
body = {
is_completed: true,
result: {
text: "Удалось связаться с клиентом"
}
}
response = AmocrmRails::Request.tasks(task_id).update(body: body)
task = response.body
response = AmocrmRails::Request.leads.custom_fields.retrieve
response = AmocrmRails::Request.contacts.custom_fields.retrieve
response = AmocrmRails::Request.companies.custom_fields.retrieve
response = AmocrmRails::Request.customers.custom_fields.retrieve
response = AmocrmRails::Request.customers.segments.custom_fields.retrieve
response = AmocrmRails::Request.catalogs(catalog_id).custom_fields.retrieve
custom_fields = response.body[:_embedded][:custom_fields]
response = AmocrmRails::Request.leads.custom_fields(id).retrieve
response = AmocrmRails::Request.contacts.custom_fields(id).retrieve
response = AmocrmRails::Request.companies.custom_fields(id).retrieve
response = AmocrmRails::Request.customers.custom_fields(id).retrieve
response = AmocrmRails::Request.customers.segments.custom_fields(id).retrieve
response = AmocrmRails::Request.catalogs(catalog_id).custom_fields(id).retrieve
custom_fields = response.body
body = [
{
name: "multi select",
type: "multiselect",
sort: 510,
required_statuses: [
{
pipeline_id: 16056,
status_id: 20540473
}
],
enums: [
{
value: "Значение 1",
sort: 1
},
{
value: "Значение 2",
sort: 2
}
]
}
]
response = AmocrmRails::Request.leads.custom_fields.create(body: body)
response = AmocrmRails::Request.contacts.custom_fields.create(body: body)
response = AmocrmRails::Request.companies.custom_fields.create(body: body)
response = AmocrmRails::Request.customers.custom_fields.create(body: body)
response = AmocrmRails::Request.customers.segments.custom_fields.create(body: body)
response = AmocrmRails::Request.catalogs(catalog_id).custom_fields.create(body: body)
custom_fields = response.body[:_embedded][:custom_fields]
custom_field_id = 1278898087
body_items = [{
"id": custom_field_id,
"name": "Новое имя для дополнительного поля",
"sort": 560,
"is_visible": false,
"is_required": true
}]
body_item = {
"name": "Новое имя для дополнительного поля",
"sort": 560,
"is_visible": false,
"is_required": true
}
AmocrmRails::Request.leads.custom_fields.update(body: body_items)
AmocrmRails::Request.leads.custom_fields(custom_field_id).update(body: body_item)
AmocrmRails::Request.contacts.custom_fields.update(body: body_items)
AmocrmRails::Request.contacts.custom_fields(custom_field_id).update(body: body_item)
AmocrmRails::Request.companies.custom_fields.update(body: body_items)
AmocrmRails::Request.companies.custom_fields(custom_field_id).update(body: body_item)
AmocrmRails::Request.customers.custom_fields.update(body: body_items)
AmocrmRails::Request.customers.custom_fields(custom_field_id).update(body: body_item)
AmocrmRails::Request.customers.segments.custom_fields.update(body: body_items)
AmocrmRails::Request.customers.segments.custom_fields(custom_field_id).update(body: body_item)
AmocrmRails::Request.catalogs(catalog_id).custom_fields.update(body: body_items)
AmocrmRails::Request.catalogs(catalog_id).custom_fields(custom_field_id).update(body: body_item)
AmocrmRails::Request.leads.custom_fields(custom_field_id).delete
AmocrmRails::Request.contacts.custom_fields(custom_field_id).delete
AmocrmRails::Request.companies.custom_fields(custom_field_id).delete
AmocrmRails::Request.customers.custom_fields(custom_field_id).delete
AmocrmRails::Request.customers.segments.custom_fields(custom_field_id).delete
AmocrmRails::Request.catalogs(catalog_id).custom_fields(custom_field_id).delete
response = AmocrmRails::Request.leads.custom_fields.groups.retrieve
response = AmocrmRails::Request.contacts.custom_fields.groups.retrieve
response = AmocrmRails::Request.companies.custom_fields.groups.retrieve
response = AmocrmRails::Request.customers.custom_fields.groups.retrieve
custom_field_groups = response[:_embedded][:custom_field_groups]
group_id = custom_field_groups.first[:id]
response = AmocrmRails::Request.leads.custom_fields.groups(group_id).retrieve
response = AmocrmRails::Request.contacts.custom_fields.groups(group_id).retrieve
response = AmocrmRails::Request.companies.custom_fields.groups(group_id).retrieve
response = AmocrmRails::Request.customers.custom_fields.groups(group_id).retrieve
group_id = response[:id]
body = [
{
name: "group 1",
sort: 4
},
{
name: "group 2",
sort: 5
}
]
response = AmocrmRails::Request.leads.custom_fields.groups.create(body: body)
response = AmocrmRails::Request.contacts.custom_fields.groups.create(body: body)
response = AmocrmRails::Request.companies.custom_fields.groups.create(body: body)
response = AmocrmRails::Request.customers.custom_fields.groups.create(body: body)
custom_field_groups = response.body[:_embedded][:custom_field_groups]
custom_field_group_id = custom_field_groups.first[:id]
body = {
sort: 6,
fields: [
14563,
12575
]
}
response = AmocrmRails::Request.leads.custom_fields.groups(custom_field_group_id).update(body: body)
response = AmocrmRails::Request.contacts.custom_fields.groups(custom_field_group_id).update(body: body)
response = AmocrmRails::Request.companies.custom_fields.groups(custom_field_group_id).update(body: body)
response = AmocrmRails::Request.customers.custom_fields.groups(custom_field_group_id).update(body: body)
custom_field_groups = response.body[:_embedded][:custom_field_groups]
custom_field_group_id = custom_field_groups.first[:id]
AmocrmRails::Request.leads.custom_fields.groups(custom_field_group_id).delete
AmocrmRails::Request.contacts.custom_fields.groups(custom_field_group_id).delete
AmocrmRails::Request.companies.custom_fields.groups(custom_field_group_id).delete
AmocrmRails::Request.customers.custom_fields.groups(custom_field_group_id).delete
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.leads.tags.retrieve(params: params)
response = AmocrmRails::Request.contacts.tags.retrieve(params: params)
response = AmocrmRails::Request.companies.tags.retrieve(params: params)
response = AmocrmRails::Request.customers.tags.retrieve(params: params)
tags = response.body[:_embedded][:tags]
tag_id = tags.first[:id]
body = [
{
"name": "Tag 1"
},
{
"name": "Tag 2",
"request_id": "my_request_id"
},
{
"name": "Tag 3"
}
]
response = AmocrmRails::Request.leads.tags.create(body: body)
response = AmocrmRails::Request.contacts.tags.create(body: body)
response = AmocrmRails::Request.companies.tags.create(body: body)
response = AmocrmRails::Request.customers.tags.create(body: body)
tags = response.body[:_embedded][:tags]
tag_id = tags.first[:id]
body_item = {
_embedded: {
tags: [
{
id: tag_id
}
]
}
}
body = [
{
id: object_id,
_embedded: {
tags: [
{
id: tag_id
}
]
}
}
]
AmocrmRails::Request.leads.update(body: body)
AmocrmRails::Request.leads(lead_id).update(body: body_item)
AmocrmRails::Request.contacts.update(body: body)
AmocrmRails::Request.contacts(contact_id).update(body: body_item)
AmocrmRails::Request.companies.update(body: body)
AmocrmRails::Request.contacts(company_id).update(body: body_item)
AmocrmRails::Request.customers.update(body: body)
AmocrmRails::Request.contacts(customer_id).update(body: body_item)
body_item = {
_embedded: {
tags: nil
}
}
body = [
{
id: object_id,
_embedded: {
tags: nil
}
}
]
AmocrmRails::Request.leads.update(body: body)
AmocrmRails::Request.leads(lead_id).update(body: body_item)
AmocrmRails::Request.contacts.update(body: body)
AmocrmRails::Request.contacts(contact_id).update(body: body_item)
AmocrmRails::Request.companies.update(body: body)
AmocrmRails::Request.contacts(company_id).update(body: body_item)
AmocrmRails::Request.customers.update(body: body)
AmocrmRails::Request.contacts(customer_id).update(body: body_item)
params = {
with: 'contact_name',
page: 0,
limit: 10
}
response = AmocrmRails::Request.events.retrieve(params: params)
events = response.body[:_embedded][:events]
event_id = events.first[:id]
params = {
with: 'contact_name'
}
response = AmocrmRails::Request.events(event_id).retrieve(params: params)
event = response.body
filter = {
filter: {
value_after: [
customers_statuses: [
{
status_id: 135751,
},
{
status_id: 135754,
}
]
]
}
}
filter = {
filter: {
value_after: [
value: '155',
],
type: 'sale_field_changed',
entity: 'lead'
}
}
params = {
language_code: 'en'
}
response = AmocrmRails::Request.events.types.retrieve(params: params)
events_types = response.body[:_embedded][:events_types]
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.leads.notes.retrieve(params: params)
response = AmocrmRails::Request.contacts.notes.retrieve(params: params)
response = AmocrmRails::Request.companies.notes.retrieve(params: params)
response = AmocrmRails::Request.customers.notes.retrieve(params: params)
notes = response.body[:_embedded][:notes]
note_id = notes.first[:id]
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.leads(lead_id).notes.retrieve(params: params)
response = AmocrmRails::Request.contacts(contact_id).notes.retrieve(params: params)
response = AmocrmRails::Request.companies(company_id).notes.retrieve(params: params)
response = AmocrmRails::Request.customers(customer_id).notes.retrieve(params: params)
notes = response.body[:_embedded][:notes]
note_id = notes.first[:id]
response = AmocrmRails::Request.leads(lead_id).notes(note_id).retrieve
response = AmocrmRails::Request.contacts(contact_id).notes(note_id).retrieve
response = AmocrmRails::Request.companies(company_id).notes(note_id).retrieve
response = AmocrmRails::Request.customers(customer_id).notes(note_id).retrieve
note = response.body
body = [
{
entity_id: 167353,
note_type: "call_in",
params: {
uniq: "8f52d38a-5fb3-406d-93a3-a4832dc28f8b",
duration: 60,
source: "onlinePBX",
link: "https://deppa.ru",
phone: "+79999999999"
}
},
{
entity_id: 167353,
note_type: "call_out",
params: {
uniq: "8f52d38a-5fb3-406d-93a3-a4832dc28f8b",
duration: 60,
source: "onlinePBX",
link: "https://deppa.ru",
phone: "+79999999999"
}
},
{
entity_id: 167353,
note_type: "geolocation",
params: {
text: "Примечание с геолокацией",
address: "ул. Пушкина, дом Колотушкина, квартира Вольнова",
longitude: "53.714816",
latitude: "91.423146"
}
}
]
body_item = {
entity_id: 167353,
note_type: "call_in",
params: {
uniq: "8f52d38a-5fb3-406d-93a3-a4832dc28f8b",
duration: 60,
source: "onlinePBX",
link: "https://deppa.ru",
phone: "+79999999999"
}
}
AmocrmRails::Request.leads.notes.create(body: body)
AmocrmRails::Request.leads(lead_id).notes.create(body: body_item)
AmocrmRails::Request.contacts.notes.create(body: body)
AmocrmRails::Request.contacts(contact_id).notes.create(body: body_item)
AmocrmRails::Request.companies.notes.create(body: body)
AmocrmRails::Request.companies(company_id).notes.create(body: body_item)
AmocrmRails::Request.customers.notes.create(body: body)
AmocrmRails::Request.customers(customer_id).notes.create(body: body_item)
notes = response.body[:_embedded][:notes]
note_id = notes.first[:id]
body = [
{
entity_id: 167353,
note_type: "call_in",
params: {
uniq: "8f52d38a-5fb3-406d-93a3-a4832dc28f8b",
duration: 60,
source: "onlinePBX",
link: "https://deppa.ru",
phone: "+79999999999"
}
},
{
entity_id: 167353,
note_type: "call_out",
params: {
uniq: "8f52d38a-5fb3-406d-93a3-a4832dc28f8b",
duration: 60,
source: "onlinePBX",
link: "https://deppa.ru",
phone: "+79999999999"
}
},
{
entity_id: 167353,
note_type: "geolocation",
params: {
text: "Примечание с геолокацией",
address: "ул. Пушкина, дом Колотушкина, квартира Вольнова",
longitude: "53.714816",
latitude: "91.423146"
}
}
]
body_item = {
entity_id: 167353,
note_type: "call_in",
params: {
uniq: "8f52d38a-5fb3-406d-93a3-a4832dc28f8b",
duration: 60,
source: "onlinePBX",
link: "https://deppa.ru",
phone: "+79999999999"
}
}
AmocrmRails::Request.leads.notes.update(body: body)
AmocrmRails::Request.leads(lead_id).notes.update(body: body_item)
AmocrmRails::Request.contacts.notes.update(body: body)
AmocrmRails::Request.contacts(contact_id).notes.update(body: body_item)
AmocrmRails::Request.companies.notes.update(body: body)
AmocrmRails::Request.companies(company_id).notes.update(body: body_item)
AmocrmRails::Request.customers.notes.update(body: body)
AmocrmRails::Request.customers(customer_id).notes.update(body: body_item)
notes = response.body[:_embedded][:notes]
note_id = notes.first[:id]
body = {
mode: "segments",
is_enabled: true
}
response = AmocrmRails::Request.customers.mode.update(body: body)
p(response.body)
params = {
with: 'contacts',
page: 0,
limit: 10
}
response = AmocrmRails::Request.customers.retrieve(params: params)
customers = response.body[:_embedded][:customers]
customer_id = customers.first[:id]
params = {
with: 'contacts'
}
response = AmocrmRails::Request.customers(customer_id).retrieve(params: params)
customer = response.body
body = [
{
name: "Покупатель для примера 1",
created_by: 0
},
{
name: "Покупатель для примера 2",
_embedded: {
tags: [
{
"name": "Важный покупатель"
}
]
}
}
]
response = AmocrmRails::Request.customers.create(body: body)
customers = response.body[:_embedded][:customers]
customer_id = customers.first[:id]
body = [
{
id: customer_id,
name: "Новое название покупателя",
_embedded: {
tags: [
{
name: "Тег 125"
}
]
}
}
]
response = AmocrmRails::Request.customers.update(body: body)
customers = response.body[:_embedded][:customers]
customer_id = customers.first[:id]
body = {
name: "Новое название покупателя",
_embedded: {
tags: [
{
name: "Тег 125"
}
]
}
}
response = AmocrmRails::Request.customers(customer_id).update(body: body)
customer = response.body
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.customers.transactions.retrieve(params: params)
response = AmocrmRails::Request.customers(customer_id).transactions.retrieve(params: params)
transactions = response.body[:_embedded][:transactions]
transaction_id = transactions.first[:id]
response = AmocrmRails::Request.customers.transactions(transaction_id).retrieve
response = AmocrmRails::Request.customers(customer_id).transactions(transaction_id).retrieve
transaction = response.body
body = [
{
price: 123,
created_by: 0,
comment: "Комментарий",
_embedded: {
catalog_elements: [
{
id: 1677,
metadata: {
catalog_id: 1079,
quantity: 10
}
}
]
}
}
]
response = AmocrmRails::Request.customers(customer_id).transactions.create(body: body)
p(response.body)
transactions = response.body[:_embedded][:transactions]
transaction_id = transactions.first[:id]
response = AmocrmRails::Request.customers.transactions(transaction_id).delete
p(response.body)
body = {
earn: 500
}
response = AmocrmRails::Request.customers(customer_id).bonus_points.create(body: body)
p(response.body)
response = AmocrmRails::Request.customers.statuses.retrieve
statuses = response.body[:_embedded][:statuses]
status_id = statuses.first[:id]
response = AmocrmRails::Request.customers.statuses(status_id).retrieve
status = response.body
body = [
{
name: "Новый статус",
sort: 100,
color: "#fffeb2"
},
{
name: "Новый статус 2",
sort: 200,
color: "#fffeb2"
}
]
response = AmocrmRails::Request.customers.statuses.create(body: body)
p(response.body)
statuses = response.body[:_embedded][:statuses]
status_id = statuses.first[:id]
body = {
name: "Новое название для статуса",
color: "#c1e0ff"
}
response = AmocrmRails::Request.customers.statuses(status_id).update(body: body)
customer = response.body
AmocrmRails::Request.customers.statuses(status_id).delete
response = AmocrmRails::Request.customers.segments
segments = response.body[:_embedded][:segments]
segment_id = segments.first[:id]
response = AmocrmRails::Request.customers.segments(segment_id).retrieve
segment = response.body
body = {
name: "Сегмент для примера",
color: "ae003f"
}
response = AmocrmRails::Request.customers.segments.create(body: body)
p(response.body)
segment = response.body
segment_id = segment[:id]
body = {
name: "Новое имя для сегмента",
color: "ae003f"
}
response = AmocrmRails::Request.customers.segments(segment_id).update(body: body)
segment = response.body
AmocrmRails::Request.customers.segments(segment_id).delete
params = {
with: 'group',
page: 0,
limit: 10
}
response = AmocrmRails::Request.users.retrieve
users = response.body[:_embedded][:users]
user_id = users.first[:id]
params = {
with: 'group'
}
response = AmocrmRails::Request.users(user_id).retrieve(params: params)
user = response.body
user_id = user[:id]
body = [
{
name: "Павел Осетров",
email: 'pavel.osetrov@me.com'
}
]
response = AmocrmRails::Request.users.create(body: body)
p(response.body)
users = response.body[:_embedded][:users]
user_id = users.first[:id]
params = {
with: 'users',
page: 0,
limit: 10
}
response = AmocrmRails::Request.roles.retrieve
roles = response.body[:_embedded][:roles]
role_id = roles.first[:id]
params = {
with: 'users'
}
response = AmocrmRails::Request.roles(role_id).retrieve(params: params)
role = response.body
role_id = user[:id]
body = [
{
name: "role 3",
rights: {
leads: {
add: "A",
edit: "G",
view: "G",
delete: "G",
export: "G"
},
tasks: {
edit: "A",
delete: "A"
},
contacts: {
add: "A",
edit: "A",
view: "A",
delete: "A",
export: "A"
},
companies: {
add: "A",
edit: "A",
view: "A",
delete: "A",
export: "A"
},
mail_access: true,
status_rights: [
{
entity_type: "leads",
pipeline_id: 16056,
status_id: 20542166,
rights: {
edit: "A",
view: "A",
delete: "A",
export: "A"
}
}
],
catalog_access: true
}
}
]
response = AmocrmRails::Request.roles.create(body: body)
p(response.body)
roles = response.body[:_embedded][:roles]
role_id = roles.first[:id]
body = {
name: "role 3 modified",
rights: {
contacts: {
add: "A",
edit: "D",
view: "D",
delete: "D",
export: "D"
},
status_rights: nil
}
}
response = AmocrmRails::Request.roles(role_id).update(body: body)
role = response.body
AmocrmRails::Request.roles(role_id).delete
body = [
{
name: "Автомобильный держатель Mage Safe Qi для iPhone, магнитный",
description: "",
:custom_fields_values=>[
{
:field_id=>82661,
:field_name=>"Артикул",
:field_code=>"SKU",
:field_type=>"text",
:values=>[{:value=>"55185"}]
},
{
:field_id=>82661,
:field_name=>"Группа",
:field_code=>"GROUP",
:field_type=>"category",
:values=>[{:value=>"Автомобильные держатели", :enum_id=>category_id}]
},
{
:field_id=>82665,
:field_name=>"Цена",
:field_code=>"PRICE",
:field_type=>"price",
:values=>[{:value=>3390}]
}
]
}
]
response = AmocrmRails::Request.catalogs(catalog_id).elements.create(body: body)
elements = response.body[:_embedded][:elements]
element_id = elements.first[:id]
response = AmocrmRails::Request.webhooks.retrieve
webhooks = response.body[:_embedded][:webhooks]
webhook_id = webhooks.first[:id]
body = {
destination: "https://deppa.ru",
settings: [
"add_lead"
],
sort: 10
}
response = AmocrmRails::Request.webhooks.create(body: body)
p(response.body)
webhook = response.body
webhook_id = webhook[:id]
AmocrmRails::Request.webhooks(webhook_id).delete
params = {
page: 0,
limit: 10
}
response = AmocrmRails::Request.widgets.retrieve
widgets = response.body[:_embedded][:widgets]
widget_code = widgets.first[:code]
response = AmocrmRails::Request.widgets(widget_code).retrieve
widget = response.body
body = {
login: "example",
password: "eXaMp1E",
script_path: "https://deppa.ru/"
}
response = AmocrmRails::Request.widgets.create(body: body)
p(response.body)
widget = response.body
AmocrmRails::Request.widgets(widget_code).delete
body = {
data: {
status: "success"
},
execute_handlers: [
{
handler: "show",
params: {
type: "text",
value: "Здесь текст"
}
},
{
handler: "show",
params: {
type: "buttons",
value: "Нажми на кнопку",
buttons: [
"1ая кнопка",
"2ая кнопка",
"3ая кнопка",
"4ая кнопка"
]
}
},
{
handler: "show",
params: {
type: "buttons_url",
value: "Кнопки со ссылками",
buttons: [
"https://amocrm.ru",
"https://deppa.ru"
]
}
},
{
handler: "goto",
params: {
type: "question|answer|finish",
step: 5
}
}
]
}
AmocrmRails::Request.salesbot(bot_id).continue(continue_id).create(body: body)
AmocrmRails::Request.marketingbot(bot_id).continue(continue_id).create(body: body)
body = [
{
duration: 10,
source: "example_integration",
phone: "123123",
link: "https://deppa.ru/audio.mp3",
direction: "inbound",
call_result: "Успешный разговор",
call_status: 4
}
]
response = AmocrmRails::Request.calls.create(body: body)
p(response.body)
calls = response.body[:_embedded][:calls]
body = [
{
bot_id: 565,
entity_id: 76687686,
entity_type: 1
}
]
response = AmocrmRails::Request.salesbot.run.create(body: body)
p(response.body)
body = [
{
url:"https://deppa.ru",
metadata:{
entity_type:"contacts",
entity_id:11070881
}
}
]
response = AmocrmRails::Request.short_links.create(body: body)
p(response.body)
short_links = response.body[:_embedded][:short_links]