Ознакомьтесь с API для добавления или обновления профиля клиента через очередь RabbitMQ для больших объемов данных в платформе Altcraft. Читайте статью.

Описание

Добавление или обновление профиля клиента через очередь RabbitMQ для больших объемов данных.

Очередь, куда должны попадать сообщения для импорта – называется "database_import". Она должна быть доступна в виртуальном того же брокера сообщений, что и вся система.
Результаты будут отправляться в другую очередь – "database_import_result". По умолчанию устанавливается TTL сообщний на очереди - 24часа. Можно указать свой TTL в конфигурации main.json: RABBITMQ_X_MESSAGE_TTL, в секундах.


Для идентификации запросов можно использовать дополнительное поле – "feedback_id".
Оно появится в ответе, и в случае ошибки, будет отображено в логе – "job_server.log".

Параметры сообщения

ПараметрТипПримерОбязательныйОписание
account_idint1ДаИдентификатор аккаунта
dataJSON object


{
    "_fname": "John",
    "_lname": "Doe"
}


ДаДанные о профиле
db_idint1ДаИдентификатор базы данных
feedback_idstring
"abcdefghijklmnqrstuvwxyz"
Нет
skip_triggersbooltrueНетПропустить запуск триггеров
по умолчанию – false
update_onlybooltrueНетТолько обновление
по умолчанию – false
Поиск профиля подписчика
matchingstring

"email"
"email_profile"
"phone"
"profile_id"
"custom"

Нет, если поиск

по email из профиля или подписок

Режим поиска подписчика.
По умолчанию - email. 

emailstring"john@example.com""matching":"email" - по профилю и подпискам
"matching":"email_profile" - только по профилю
Email-адрес
phonestring"+79000000000""matching":"phone"Номер телефона
profile_idstring
"abcdefghijklmnqrstuvwxyz"
"matching":"profile_id"Идентификатор профиля
field_namestring

"CRM_ID"

"matching":"custom"Название кастомного поля профиля для поиска. 
field_valueint/string"12345""matching":"custom"

Значение кастомного поля для поиска.

Доступен поиск по сочетанию значений поля с типом "тэги". Тэги передаются в строке черз запятую: "тэг_1, тэг_2".


resource_idint24Нет

Идентификатор ресурса для
поиска по email и phone

Пример сообщения

{
    "account_id": 1,
    "data": {
        "_fname": "John",
        "_lname": "Doe"
    },
    "db_id": 1,
    "email": "john@example.com",
    "feedback_id": "abcdefghijklmnqrstuvwxyz",
    "update_only": true
}

Пример ответа

{
    "error": 0,
    "error_text": "",
    "feedback_id": "abcdefghijklmnqrstuvwxyz",
    "matching_field": "email",
    "profile_id": "abcdefghijklmnqrstuvwxyz"
}

Возвращаемые параметры

ПараметрТипОписание
errorintКод ошибки
error_textstringТекст ошибки
feedback_idstringИдентификатор запроса
matching_fieldstringПоле для поиска
profile_idstringИдентификатор профиля