Перейти к содержанию

07. Кампания

Версия 1.63.0
Количество листов

Оглавление

История изменений

№1 Дата: 25.08.25 Автор: Демкович Александр RFC: RPL-1051 Версия: 0.1.0
Добавлено:
• В “07_2.2_1 Процедуре создания Кампании” добавлено условие применение локали для параметра уведомления “Parameters”.
• Локали для “07_2.2_1.1 Ошибки при выполнении проверки 07_2.2_1”
• Локали для “07_2.2_3.1.1 Ошибки при выполнении проверки 07_2.2_3.1”
• Локали для “07_2.2_4.1 Ошибки при выполнении процедуры 07_2.2_4”
• Требование мультиязычности для “Заголовка” секции шаблона кампании
• Требование мультиязычности для “Заголовка” параметра шаблона
• Требование мультиязычности для “Наименование” варианта параметра кампании
• Локали для “07_3.2_1.1 Ошибки при выполнении процедуры 07_3.2_1”
• Локали для “07_3.2_2.1.1 Ошибки при выполнении проверки 07_3.2_2.1”
• В “07_3.2_6.1 Определение параметра уведомления AgreedRequirements” добавлено условие определения секции шаблона согласно предпочитаемой локали пользователя
• 3.3_4 Предустановленные шаблоны системного сообщения
• Параметры “Сообщения коллаборации”: Идентификатор шаблона
• Параметры сообщения. 3.3.1.3 Параметры шаблона системного сообщения (system_massage_templates)
• Локали для “07_3.3.2_1.1 Ошибки при выполнении процедуры 07_3.3.2_1”.

Изменено:
• В “07_3.2_3 Процедура изменения статуса коллаборации” изменены параметры “Сообщения коллаборации”
• В “07_3.2_5 Процедура изменения Коллаборации” изменены параметры “Сообщения коллаборации”;

Исключено:
3.3_2 Шаблон системного сообщения.
№ 2 Дата: 11.09.25 Автор: Ляшук Андрей RFC: RPL-1288 Версия: 0.2.0
Добавлена:
• Португальская локаль для “07_2.2_1.1 Ошибки при выполнении проверки 07_2.2_1”
• Португальская локаль для “07_2.2_3.1.1 Ошибки при выполнении проверки 07_2.2_3.1”
• Португальская локаль для “07_2.2_4.1 Ошибки при выполнении процедуры 07_2.2_4”
• Португальская локаль для “07_3.2_1.1 Ошибки при выполнении процедуры 07_3.2_1”
• Португальская локаль для “07_3.3.2_1.1 Ошибки при выполнении процедуры 07_3.3.2_1”.
№ 3 Дата: 11.09.25 Автор: Ляшук Андрей RFC: RPL-1317 Версия: 0.3.0
Добавлена:
• Испанская локаль для “07_2.2_1.1 Ошибки при выполнении проверки 07_2.2_1”
• Испанская локаль для “07_2.2_3.1.1 Ошибки при выполнении проверки 07_2.2_3.1”
• Испанская локаль для “07_2.2_4.1 Ошибки при выполнении процедуры 07_2.2_4”
• Испанская локаль для “07_3.2_1.1 Ошибки при выполнении процедуры 07_3.2_1”
• Испанская локаль для “07_3.3.2_1.1 Ошибки при выполнении процедуры 07_3.3.2_1”.
№ 4 Дата: 25.09.25 Автор: Ляшук Андрей RFC: RPL-1209 Версия: 1.0.0
Изменено:
• В “1.1.1 Параметрах кампании(campaigns)”, параметр “end_date” стал не обязательным
• В “07_2.2_1 Процедура создания Кампании”: Исключены параметры “date_type” и “week_days”
• Изменено формирование параметра “CampaignDates” при создании уведомления на этапе “3_a”.
• В “07_2.2_2 Процедура получения Офферов(Кампаний) для отображения в интерфейсе Инфлюэнсера” изменено условие отображения “Кампании” в зависимости от наличия “Окончания периода проведения”.

Исключено:
• “1_1 Период проведения кампании”
• В “1.1.1 Параметрах кампании(campaigns)” исключены “date_type” и “week_days”.
№ 5 Дата: 30.09.25 Автор: Ляшук Андрей RFC: RPL-1324 Версия: 1.1.0
Изменено:
В “07_3.2_1 Процедура создания запроса на Коллаборацию” добавлено создание сообщения “Webhook event”
№ 6 Дата: 30.09.25 Автор: Ляшук Андрей RFC: RPL-1295 Версия: 1.2.0
Изменено:
• В “07_3.2_2.1 Проверка возможности изменения статуса коллаборации” подписка пользователя изменена на “Активную подписку пользователя”
• В “07_3.3.2_1 Процедура создания Сообщения коллаборации” подписка пользователя изменена на “Активную подписку пользователя”.
№ 7 Дата: 03.10.25 Автор: Ляшук Андрей RFC: RPL-1451 Версия: 1.3.0
Изменено:
• В “07_3.2_2.1 Проверка возможности изменения статуса коллаборации” условие наличие бесплатной коллаборации изменено на “Возможность использования бесплатной коллаборации”
• В “07_3.3.2_1 Процедура создания Сообщения коллаборации” условие наличие бесплатной коллаборации изменено на “Возможность использования бесплатной коллаборации”.
№ 8 Дата: 07.10.25 Автор: Ляшук Андрей RFC: RPL-1411 Версия: 1.4.0
Добавлено:
“07_3.2_10 Процедура изменения Коллаборации внешним методом”.
№ 9 Дата: 07.10.25 Автор: Ляшук Андрей RFC: RPL-1417 Версия: 1.5.0
Изменено:
• “3.3_1 Виды сообщений” добавлен тип “От команды Rippla”
• Параметр “Является ли системным” заменен на “Тип” в: “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_5 Процедура изменения Коллаборации”
• “3.3.1.1 Параметры сообщения коллаборации(collaboration_messages)”
• “07_3.3.2_1 Процедура создания Сообщения коллаборации”.
№ 10 Дата: 09.10.25 Автор: Ляшук Андрей RFC: RPL-1445 Версия: 1.6.0
Изменено:
• В “07_2.2_1 Процедура создания Кампании” добавлены параметры уведомления: “campaignUUID”
• “adminPanelLink”.
№ 16 Дата: 13.10.25 Автор: Ляшук Андрей RFC: RPL-1480 Версия: 1.7.0
Добавлено:
• “07_2.2_5 Процедура изменения Кампании внешним методом”
• “07_2.2_6 Процедура изменения статуса Кампании администратором”
• “07_3.3.2_3 Процедура создания Сообщения коллаборации внешним методом”
• “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”
• “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании”.

Изменено:
• Добавлена отправка сообщения в веб-сокет в процедурах: “07_2.2_3 Процедура изменения Статуса кампании”
• “07_3.2_1 Процедура создания запроса на Коллаборацию”
• “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_4 Процедура просмотра Коллаборации бизнес представителем”
• “07_3.2_10 Процедура изменения Коллаборации внешним методом”
• “07_3.3.2_1 Процедура создания Сообщения коллаборации”
• “07_3.3.2_2 Процедура просмотра Сообщения коллаборации пользователем”.
№ 17 Дата: 17.10.25 Автор: Ляшук Андрей RFC: RPL-1624 Версия: 1.8.0
Изменено:
• Добавлена отправка сообщения с типом “Статус” в веб-сокет в процедурах: “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_5 Процедура изменения Коллаборации”
• “07_3.2_10 Процедура изменения Коллаборации внешним методом”.
• Удалена отправка сообщения с типом “Статус” в веб-сокет в процедуре “07_2.2_3 Процедура изменения Статуса кампании”.
№ 18 Дата: 17.10.25 Автор: Ляшук Андрей RFC: RPL-1540 Версия: 1.9.0
Добавлено:
• “FR_07_3.3.2_4.1”
• “FR_07_3.3.2_5.1”.

Изменено:
• При создании системного сообщения добавлен параметр “Инициатор” в процедурах: “07_2.2_3 Процедура изменения Статуса кампании”
• “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_10 Процедура изменения Коллаборации внешним методом”.
• В “3.3.1.1 Параметры сообщения коллаборации(collaboration_messages)” добавлен параметр “initiator”
• В “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” при учете непрочитанных сообщений добавлено исключения согласно “FR_07_3.3.2_4.1”
• В “07_3.3.2_5 Процедура определения количества непрочитанных сообщений кампании” при учете непрочитанных сообщений добавлено исключение согласно “FR_07_3.3.2_5.1”.
№ 19 Дата: 23.10.25 Автор: Ляшук Андрей RFC: RPL-1673 Версия: 1.10.0
Изменено:
В “3.1.1_1 Даты коллаборации” добавлен новый формат “YYYY-MM-DDTHH:mm:ss”.
№ 20 Дата: 27.10.25 Автор: Ляшук Андрей RFC: RPL-1692 Версия: 1.11.0
Изменено:
• В “3.3_4 Предустановленные шаблоны системного сообщения” добавлен новый шаблон “Communication outside Rippla warning”
• В "07_3.3.2_1 Процедура создания Сообщения коллаборации" добавлено создание системного сообщение идентификатор шаблона которого соответствует “Communication outside Rippla warning”.
№ 21 Дата: 27.10.25 Автор: Ляшук Андрей RFC: RPL-1644 Версия: 1.12.0
Добавлено:
“07_3.2_11 Процедура создание Коллаборации внешним методом”.

Изменено:
• “07_3.2_10 Процедура изменения Коллаборации внешним методом” разделена на две процедуры: “07_3.2_10 Процедура выполнения запроса на изменения Коллаборации внешним методом”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”. без изменения фактического функционала.
№ 22 Дата: 27.10.25 Автор: Ляшук Андрей RFC: RPL-1674 Версия: 1.13.0
Добавлено:
“07_3.2_13 Процедура экспорта файла коллаборации для календаря”.
№ 23 Дата: 28.10.25 Автор: Ляшук Андрей RFC: RPL-1657 Версия: 1.14.0
Добавлено:
“FR_07_1_3”.

Изменено:
• “07_2.2_1 Процедура создания Кампании” добавлена обработка наличия “Возможности управления кампании”
• “07_2.2_3.1 Проверка возможности изменения Статуса кампании” добавлено условие в зависимости от наличия “Возможности управления кампании”.
№ 24 Дата: 07.11.25 Автор: Ляшук Андрей RFC: RPL-1789 Версия: 1.15.0
Добавлено:
• “07_2.2_7 Процедура получения списка Кампаний”
• “07_3.2_14 Получение списка коллабораций”
• “07_3.2_15 Получение коллаборации”.
№ 25 Дата: 20.11.25 Автор: Ляшук Андрей RFC: RPL-1773 Версия: 1.16.0
Изменено:
• “07_2.2_1 Процедура создания Кампании” добавлено проверка на наличие у бизнеса параметра “Возможность создания кампании”
• Добавлена инициации “05_2.3_5 Проверка возможности снятия ограничения с бизнеса” и “05_2.3_4 Процедура снятие ограничения с бизнеса” в процедурах: “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_4 Процедура просмотра Коллаборации бизнес представителем”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”
• “07_3.3.2_2 Процедура просмотра Сообщения коллаборации пользователем”.
№ 25 Дата: 24.11.25 Автор: Ляшук Андрей RFC: RPL-1834 Версия: 1.17.0
Изменено:
• При завершении коллаборации, если для “Пользователя” имеется “Подписка пользователя” и не имеется “Возможности использований бесплатной коллаборации” выполняется добавления сообщения в очередь “3.3.6 Очередь отмены trial-а подписки пользователя” в процедурах: “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”.
№ 26 Дата: 25.11.25 Автор: Ляшук Андрей RFC: RPL-1871 Версия: 1.18.0
Добавлено:
“07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет”

Изменено:
• Добавлена инициация процедуры “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” в процедурах: “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_5 Процедура изменения Коллаборации”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”
• “07_3.3.2_1 Процедура создания Сообщения коллаборации”
• “07_3.3.2_3 Процедура создания Сообщения коллаборации от команды Rippla”.
№ 27 Дата: 27.11.25 Автор: Ляшук Андрей RFC: RPL-1883 Версия: 1.19.0
Изменено:
В “07_3.3.2_3 Процедура создания Сообщения коллаборации от команды Rippla” добавлена возможность создания через “Панель управления”.
№ 28 Дата: 27.11.25 Автор: Ляшук Андрей RFC: RPL-1882 Версия: 1.20.0
Изменено:
• В “3.3_4 Предустановленные шаблоны системного сообщения”, добавлен шаблон “Communication about payment warning”
• В “07_3.3.2_1 Процедура создания Сообщения коллаборации” добавлено создание системного сообщения с Идентификатором “18”, если значения создаваемого сообщения попадает в регулярное выражение.
№ 29 Дата: 02.12.25 Автор: Ляшук Андрей RFC: RPL-1891 Версия: 1.21.0
Добавлено:
• “3.4 Пост”
• “3.4.1.1 Параметры поста коллаборации(collaboration_posts)”
• “3.4.1.2 Параметры файла поста коллаборации (collaboration_post_files)”
• “3.4.1.3 Параметры запроса статистики поста коллаборации (collaboration_post_stats_requests)”
• “3.4.1.4 Параметры связи файла поста коллаборации и запроса обновления статистики поста коллаборации(collaboration_post_stats_request_files)”.
№ 30 Дата: 02.12.25 Автор: Ляшук Андрей RFC: RPL-1892 Версия: 1.22.0
Добавлено:
• “07_3.4.2_1 Процедура создания поста коллаборации”
• “07_3.4.2_2 Процедура создания поста коллаборации внешним методом”
• “07_3.4.2_3 Процедура запроса обновления статистики поста”
• “07_3.4.2_4 Процедура загрузки файлов статистики поста коллаборации”
• “07_3.4.2_5 Процедура обновления поста коллаборации внешним методом”
• “07_3.4.2_6 Процедура обновления поста коллаборации методом ИИ-модели”
• “07_3.3.2_7 Процедура отправки статистики поста коллаборации в веб-сокет”.
№ 31 Дата: 08.12.25 Автор: Ляшук Андрей RFC: RPL-1995 Версия: 1.23.0
Изменено:
В “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” добавлено формирование элемент с типом объекта “all_messages”.
№ 32 Дата: 15.12.25 Автор: Мирзов Орзэмэс RFC: RPL-2033 Версия: 1.24.0
Добавлено:
• Локали для “07_2.2_1.1 Ошибки при выполнении проверки 07_2.2_1”
• Локали для “07_3.2_2.1.1 Ошибки при выполнении проверки 07_3.2_2.1” Локали для “07_2.2_3.1.1 Ошибки при выполнении проверки 07_2.2_3.1”
№ 33 Дата: 15.12.25 Автор: Ляшук Андрей RFC: RPL-2021 Версия: 1.25.0
Изменено:
• Добавлено условие, что у “Подписка пользователя” должен быть параметр “Свойство необходимости отмены триала после завершения бесплатных коллабораций” со значением true при добавление сообщение Подписка пользователя” в очередь “Отмена trial-а подписки пользователя” в процедурах: “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”.
№ 34 Дата: 15.12.25 Автор: Ляшук Андрей RFC: RPL-1982 Версия: 1.26.0
Изменено:
В “2.1.3 Параметры параметра шаблона(template_parameters)” добавлен параметр “counter_type”.
№ 35 Дата: 15.12.25 Автор: Ляшук Андрей RFC: RPL-2026 Версия: 1.27.0
Добавлено:
“07_3.2_16 Процедура установки персонального количества бесплатных коллабораций внешним методом”.
№ 36 Дата: 16.12.25 Автор: Ляшук Андрей RFC: RPL-2053 Версия: 1.28.0
Изменено:
• При отправке сообщения в веб-сокет с type — “collaboration_status_changed” добавлена передача параметра data[ ].campaign_id в процедурах: “07_2.2_3 Процедура изменения Статуса кампании”
• “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_3.2_5 Процедура изменения Коллаборации”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”.
№ 37 Дата: 16.12.25 Автор: Ляшук Андрей RFC: RPL-1675 Версия: 1.29.0
Добавлено:
“3.5 Отзыв”.
№ 38 Дата: 24.12.25 Автор: Ляшук Андрей RFC: RPL-2080 Версия: 1.30.0
Добавлено:
"07_3.3.2_8 Процедура удаления поста коллаборации”.

Изменено:
• В “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации” добавлен запрос “Reopen collaboration”
• В “07_3.2_5 Процедура изменения Коллаборации” при изменении “Даты”, если статус Коллаборации был “Завершена” статус изменяется на “Активная”
• В “07_3.4.2_1 Процедура создания поста коллаборации” при создании первого “Поста коллаборации” отправляется сообщение в сокет с типом “collaboration_status_changed”.
№ 39 Дата: 13.01.26 Автор: Ляшук Андрей RFC: RPL-2129 Версия: 1.31.0
Изменено:
• В “3.4.1.1 Параметры поста коллаборации(collaboration_posts)” добавлен параметр “total_reposts”
• Добавлена обработка параметра total_reposts в процедурах: “07_3.4.2_2 Процедура создания поста коллаборации внешним методом”
• “07_3.4.2_5 Процедура обновления поста коллаборации внешним методом”
• “07_3.4.2_6 Процедура обновления поста коллаборации методом ИИ-модели”.
• В “07_3.3.2_7 Процедура отправки статистики поста коллаборации в веб-сокет” если “Тип” поста коллаборации: “Пост или рилс” добавлена отправка параметра data.total_reposts
• “История” добавлена отправка параметра data.total_reach.
№ 40 Дата: 13.01.26 Автор: Ляшук Андрей RFC: RPL-2124 Версия: 1.32.0
Изменено:
• Добавлена обработка параметра end_date в процедурах: “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_3.2_3 Процедура изменения статуса коллаборации” “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”.
№ 41 Дата: 14.01.26 Автор: Ляшук Андрей RFC: RPL-2162 Версия: 1.33.0
Изменено:
В “07_3.2_3 Процедура изменения статуса коллаборации” при изменение “Статуса” коллаборации на “Активная”, если предыдущий статус “Завершена” выполняется дальнейший этап.
№ 42 Дата: 21.01.26 Автор: Ляшук Андрей RFC: RPL-2224 Версия: 1.34.0
Изменено:
В “07_3.3.2_1 Процедура создания Сообщения коллаборации” из регулярного выражения на этапе “4_b_4” убран OF и WC.
№ 43 Дата: 30.01.26 Автор: Ляшук Андрей RFC: RPL-2284 Версия: 1.35.0
Изменено:
В “07_2.2_1 Процедура создания Кампании”при создании уведомления добавлены параметры “InfluencerCountries”, “InfluencerCities”.
№ 43 Дата: 04.02.26 Автор: Ляшук Андрей RFC: RPL-2321 Версия: 1.36.0
Изменено:
• Убрана отправка сообщения в сокет с типом “collaboration_status_changed”, если для “Коллаборации” имеется “Пост коллаборации” в: “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_2.2_3 Процедура изменения Статуса кампании”
• “07_3.2_5 Процедура изменения Коллаборации”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”.
• В “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” добавлена обработка в зависимости от наличия “Поста коллаборации”
• Добавлен вызов “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” и отправка сообщения в сокет в: 07_3.4.2_1 Процедура создания поста коллаборации
• 07_3.4.2_2 Процедура создания поста коллаборации внешним методом
• 07_3.3.2_8 Процедура удаления поста коллаборации.
№ 44 Дата: 05.02.26 Автор: Ляшук Андрей RFC: RPL-2204 Версия: 1.36.0
Изменено:
• Добавлена обработка “Группы городов” в: “07_1_2 Соответствие инфлюэнсера аудитории кампании”
• “07_2.2_2 Процедура получения Офферов(Кампаний) для отображения в интерфейсе Инфлюэнсера”.
№ 45 Дата: 05.02.26 Автор: Ляшук Андрей RFC: RPL-2002 Версия: 1.37.0
Изменено:
В “2.1.3 Параметры параметра шаблона(template_parameters)” добавлены параметры “pre_filled_value_recommendation_type” и “recommendation_text”.
№ 46 Дата: 05.02.26 Автор: Ляшук Андрей RFC: RPL-2275 Версия: 1.38.0
Изменено:
• Добавлена инициации “02_2.5_1 Процедура создания и обновления сессии пользователя” в: “07_2.2_1 Процедура создания Кампании”
• “07_3.2_1 Процедура создания запроса на Коллаборацию”
• “07_3.2_4 Процедура просмотра Коллаборации бизнес представителем”
• “07_3.3.2_1 Процедура создания Сообщения коллаборации”
• “07_3.3.2_2 Процедура просмотра Сообщения коллаборации пользователем”.
№ 47 Дата: 09.02.26 Автор: Ляшук Андрей RFC: RPL-2348 Версия: 1.39.0
Изменено:
• В “3.3_4 Предустановленные шаблоны системного сообщения” добавлен шаблон системного сообщения “Collaboration created for Business representative”
• В “07_3.2_1 Процедура создания запроса на Коллаборацию” добавлено создание системного сообщения “Collaboration created for Business representative”.
№ 48 Дата: 16.02.26 Автор: Ляшук Андрей RFC: RPL-2392 Версия: 1.40.0
Изменено:
В “07_3.2_3 Процедура изменения статуса коллаборации” если “Дата начала” коллаборации позже “Даты окончания”, “Дата начала” определяется как “Дата окончания”.
№ 49 Дата: 21.02.26 Автор: Ляшук Андрей RFC: RPL-2358 Версия: 1.41.0
Изменено:
• В "07_3.2_3 Процедура изменения статуса коллаборации" удалено добавления сообщения “Подписка пользователя” в очередь “Отмена trial-а подписки пользователя”
• В "07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом" удалено добавления сообщения “Подписка пользователя” в очередь “Отмена trial-а подписки пользователя”
• В "07_3.2_16 Процедура установки персонального количества бесплатных коллабораций внешним методом" удалено добавления сообщения “Подписка пользователя” в очередь “Отмена trial-а подписки пользователя”.
№ 50 Дата: 21.02.26 Автор: Ляшук Андрей RFC: RPL-2043 Версия: 1.42.0
Изменено:
• В "3.3.1.1 Параметры сообщения коллаборации(collaboration_messages)" добавлен параметр "available_for"
• В "3.3_4 Предустановленные шаблоны системного сообщения": Для шаблонов с идентификатором 3, 4, 5, 7 изменен текст
• Добавлены шаблоны с идентификаторами 19, 20, 22, 23, 24, 25, 26, 27.
• В "07_3.2_1 Процедура создания запроса на Коллаборацию": Для системного сообщения с идентификатором 21 добавлено "Свойство доступности" — Представитель бизнеса
• Добавлено создание системного сообщения с идентификатором 19.
• В "07_3.2_3 Процедура изменения статуса коллаборации": Для старых системных сообщений добавлено "Свойство доступности"
• Добавлено создание системных сообщений с идентификаторами 20, 23, 24, 25, 27.
• В "07_3.2_5 Процедура изменения Коллаборации" и "07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом" при создании системного сообщения с идентификатором 3 добавлено “Свойство доступности” — Все В "07_3.3.2_1 Процедура создания Сообщения коллаборации" при создании системных сообщения с идентификатором 17 и 18 добавлено “Свойство доступности” — Все.
• В "07_3.4.2_1 Процедура создания поста коллаборации" и "07_3.4.2_2 Процедура создания поста коллаборации внешним методом" если был создан первый "Пост коллаборации" добавлено: Создание системного сообщения с идентификатором 22 и 26
• Вызов “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет”.
• В "FR_07_3.3.2_4.1" и "FR_07_3.3.2_5.1" добавлено условие согласно “Свойству доступности”.
№ 51 Дата: 21.02.26 Автор: Ляшук Андрей RFC: RPL-2434 Версия: 1.43.0
Изменено:
В “2.1.3 Параметры параметра шаблона(template_parameters)” добавлен параметр “description”.
№ 52 Дата: 25.02.26 Автор: Ляшук Андрей RFC: RPL-2444 Версия: 1.44.0
Добавлено:
• “07_2.2_8 Процедура генерации сопроводительного сообщения для компании”
• “07_2.2_9 Процедура обработки сопроводительного сообщения для кампании”
• “1.3 Буфер сопроводительных сообщений для кампаний”.
№ 53 Дата: 27.02.26 Автор: Ляшук Андрей RFC: RPL-2465 Версия: 1.45.0
Изменено:
• В "3.1.2 Параметры статуса коллаборации(collaboration_statuses)" убрана обязательность у параметра "user_id"
• В "07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом" добавлено создание статуса коллаборации, если не был указан параметр apply_status_side_effects.
№ 54 Дата: 28.02.26 Автор: Ляшук Андрей RFC: RPL-2474 Версия: 1.46.0
Изменено:
• В “2.1.1 Параметры шаблона кампании(campaign_templates)” добавлены параметры: min_duration_d
• duration_recommendation_text
• duration_recommendation_tooltip.
№ 55 Дата: 17.03.26 Автор: Ляшук Андрей RFC: RPL-2528 Версия: 1.47.0
Изменено:
В “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” для “Представителя бизнеса” не учитываются “Непросмотренные коллаборации”.
№ 56 Дата: 20.03.26 Автор: Ляшук Андрей RFC: RPL-2536 Версия: 1.48.0
Изменено:
В “07_3.2_3 Процедура изменения статуса коллаборации” добавлена отправка socket-сообщения с типом “Сообщение”.
№ 57 Дата: 27.03.26 Автор: Ляшук Андрей RFC: RPL-2569 Версия: 1.49.0
Изменено:
• В “FR_07_1_3” изменено условие на наличие активной “Настройки уведомления”
• В “07_2.2_3.1.1 Ошибки при выполнении проверки 07_2.2_3.1” изменен текст для ошибки “0730”.
№ 58 Дата: 31.03.26 Автор: Ляшук Андрей RFC: RPL-2468 Версия: 1.50.0
Добавлено:
“1.4 Очередь “Определения инфлюэнсеров, которые подходят под кампанию”.

Изменено:
• Добавлена отправка push-уведомления в: “07_2.2_1 Процедура создания Кампании”
• “07_3.3.2_1 Процедура создания Сообщения коллаборации”
• “07_3.3.2_3 Процедура создания Сообщения коллаборации от команды Rippla”
• “07_3.2_3 Процедура изменения статуса коллаборации”
• “07_3.4.2_1 Процедура создания поста коллаборации”
• “07_3.4.2_2 Процедура создания поста коллаборации внешним методом”
• В “07_2.2_1 Процедура создания Кампании” добавлена отправка в сообщения в “1.4 Очередь “Определения инфлюэнсеров, которые подходят под кампанию”.
№ 59 Дата: 01.04.26 Автор: Ляшук Андрей RFC: RPL-2507 Версия: 1.51.0
Изменено:
• Для socet-сообщения с типом “collaboration_status_changed” добавлена отправка параметра “collaborations_left” в: “07_2.2_3 Процедура изменения Статуса кампании”
• “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации”
• “07_3.2_5 Процедура изменения Коллаборации”
• “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”
• “07_3.4.2_1 Процедура создания поста коллаборации”
• “07_3.4.2_2 Процедура создания поста коллаборации внешним методом”
• “07_3.3.2_8 Процедура удаления поста коллаборации”.
№ 60 Дата: 03.04.26 Автор: Ляшук Андрей RFC: RPL-2610 Версия: 1.52.0
Изменено:
В “07_2.2_3 Процедура изменения Статуса кампании” при изменении кампании в статус “Завершена” выполняется изменение всех коллабораций в статусе “Активная”, “Новая” или “Подтверждена” на “Отклонена”.
№ 61 Дата: 03.04.26 Автор: Ляшук Андрей RFC: RPL-2613 Версия: 1.53.0
Изменено:
В “1.4 Очередь “Определения инфлюэнсеров, которые подходят под кампанию” убрана повторная отправка.
№ 62 Дата: 07.04.26 Автор: Ляшук Андрей RFC: RPL-2626 Версия: 1.54.0
Изменено:
• Для socet-сообщения с типом “campaign_status_changed” добавлена отправка параметра “campaigns_left” в: “07_2.2_3 Процедура изменения Статуса кампании”
• “07_2.2_5 Процедура изменения Кампании внешним методом”
• “07_2.2_6 Процедура изменения статуса Кампании администратором”.
№ 63 Дата: 13.04.26 Автор: Ляшук Андрей RFC: RPL-2652 Версия: 1.55.0
Изменено:
В “3.4.1.1 Параметры поста коллаборации(collaboration_posts)” изменен формат параметра “link” на “text”.
№ 64 Дата: 13.04.26 Автор: Ляшук Андрей RFC: RPL-2646 Версия: 1.56.0
Добавлено:
• “07_2.2_10 Процедура проверки кампаний бизнесов”
• “07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса”.

Изменено:
• В "1.1.1 Параметры кампании(campaigns)" добавлен параметр change_source Добавлена проверка кампаний относительно наличия “Доступных откликов” и "Доступных коллабораций" в: "07_2.2_1 Процедура создания Кампании"
• "07_2.2_3.1 Проверка возможности изменения Статуса кампании".
• Добавлен источник изменения статуса в: "07_2.2_6 Процедура изменения статуса Кампании администратором"
• "07_2.2_5 Процедура изменения Кампании внешним методом"
• "07_2.2_3 Процедура изменения Статуса кампании".
• Добавлена инициация "07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса" в: "07_3.2_1 Процедура создания запроса на Коллаборацию"
• "07_3.2_3 Процедура изменения статуса коллаборации"
• "07_3.2_5 Процедура изменения Коллаборации"
• "07_3.4.2_1 Процедура создания поста коллаборации".
№ 65 Дата: 14.04.26 Автор: Ляшук Андрей RFC: RPL-2664 Версия: 1.57.0
Изменено:
В “07_3.2_1 Процедура создания запроса на Коллаборацию” добавлено socket-сообщение “collaboration_created”.
№ 66 Дата: 16.04.26 Автор: Ляшук Андрей RFC: RPL-2677 Версия: 1.58.0
Изменено:
В “07_3.4.2_1 Процедура создания поста коллаборации” добавлены проверки относительно наличия скриншотов статистики и настройки.

Добавлено:
“07_3.2_17 Процедура изменения Коллаборации при вызове внешним методом”.
№ 67 Дата: 16.04.26 Автор: Ляшук Андрей RFC: RPL-2683 Версия: 1.59.0
Изменено:
• В “ FR_07_1_3” изменено на “Ограничение на создание первой кампании”
• В “1.1.1 Параметры кампании(campaigns)” добавлен тип 4 для параметра change_source
• В “07_2.2_1 Процедура создания Кампании”: Убрана ошибку “0723”
• Добавлено определение "Статус" и "Источник изменения статуса" создаваемой кампании согласно FR_07_1_3.
• В “07_2.2_3.1 Проверка возможности изменения Статуса кампании” убрана проверка согласно “FR_07_1_3”.
№ 68 Дата: 21.04.26 Автор: Ляшук Андрей RFC: RPL-2699 Версия: 1.60.0
Изменено:
В “07_2.2_1 Процедура создания Кампании” добавлено условие перед добавлением в “1.4 Очередь “Определения инфлюэнсеров, которые подходят под кампанию”.
№ 69 Дата: 07.07.26 Автор: Ляшук Андрей RFC: RPL-2825 Версия: 1.61.0
Добавлено:
В “3.4.1.1 Параметры поста коллаборации(collaboration_posts)” параметр “published_at”.

Изменено:
• В “07_3.2_1 Процедура создания запроса на Коллаборацию” добавлена проверка наличия “Доступного отклика” у Инфлюэнсера, ошибка “0739”
• В “07_3.4.2_1 Процедура создания поста коллаборации” убрана обязательная загрузка скриншотов статистики при создании поста, загрузка файлов статистики теперь выполняется только если указан параметр “file_stats_ids”
• В “07_3.4.2_2 Процедура создания поста коллаборации внешним методом” добавлен параметр “skip_apify_sync”
• В “07_3.4.2_4 Процедура загрузки файлов статистики поста коллаборации” добавлена проверка минимального возраста поста/сторис для загрузки статистики согласно “6.22 Политика загрузки статистики поста коллаборации”, ошибка “0740”.
№ 70 Дата: 21.07.26 Автор: Ляшук Андрей RFC: RPL-2825 Версия: 1.62.0
Добавлено:
• В “3.1.1 Параметры коллаборации(collaborations)” параметры “required_posts_count” и “required_stories_count”
• В “3.4.1.1 Параметры поста коллаборации(collaboration_posts)” параметр “is_stats_required”.

Изменено:
• В “07_3.2_3 Процедура изменения статуса коллаборации” добавлены параметры “Количество постов к загрузке”/“Количество сторис к загрузке”, их установка при изменении Коллаборации и вызов “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” / “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера”
• В “07_3.2_10 Процедура выполнения запроса на изменения Коллаборации внешним методом” добавлены параметры “posts_count” и “stories_count”
• В “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом” добавлены параметры “posts_count”/“stories_count”, их проброс в “07_3.2_3 Процедура изменения статуса коллаборации” и установка/вызов “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” / “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” в ветке прямого изменения параметров Коллаборации
• В “07_3.4.2_1 Процедура создания поста коллаборации” и “07_3.4.2_2 Процедура создания поста коллаборации внешним методом” добавлено уменьшение “Количества постов к загрузке”/“Количества сторис к загрузке” коллаборации и вызов “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” / “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера”
• В “07_3.4.2_6 Процедура обновления поста коллаборации методом ИИ-модели” при успешной обработке статистики добавлено снятие “Статуса необходимости загрузки статистики” поста и вызов “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” / “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера”
• В “07_3.4.2_5 Процедура обновления поста коллаборации внешним методом” добавлен параметр “is_stats_required” и вызов “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” / “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” при его снятии.
№71 Дата: 24.07.26 Автор:Ляшук Андрей RFC: RPL-2849 Версия: 1.63.0
Добавлено:
• “3.3.1.4 Параметры файла сообщения коллаборации (collaboration_message_files)”
• “FR_07_3.3.1.4_1”.

Изменено:
• В “07_3.2_3 Процедура изменения статуса коллаборации” добавлено создание сообщения “Webhook event” с типом события “Изменение статуса коллаборации”
• В “3.3.1.1 Параметры сообщения коллаборации(collaboration_messages)” параметр “message” стал необязательным
• В “07_3.3.2_1 Процедура создания Сообщения коллаборации” добавлен параметр “file_ids” и создание “Файла сообщения коллаборации”
• В “07_3.3.2_3 Процедура создания Сообщения коллаборации от команды Rippla” добавлены параметры “file_urls” (внешний метод) / “file_ids” (Администратор) и создание “Файла сообщения коллаборации”
• В “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” в socket-сообщение “collaboration_message_created” добавлены параметры “data.files” и “data.files_count”.
№72 Дата: 28.07.26 Автор:Ляшук Андрей RFC: RPL-2825 Версия: 1.64.0
Добавлено:
• В “3.1.1 Параметры коллаборации(collaborations)” параметры “required_posts_upload_at” и “required_stories_upload_at”
• В “3.4.1.1 Параметры поста коллаборации(collaboration_posts)” параметр “required_stats_upload_at”.

Изменено:
• В “07_3.2_3 Процедура изменения статуса коллаборации” добавлены параметры “Ожидаемая дата загрузки постов”/“Ожидаемая дата загрузки сторис” и их установка при изменении Коллаборации
• В “07_3.2_10 Процедура выполнения запроса на изменения Коллаборации внешним методом” добавлены параметры “posts_upload_at” и “stories_upload_at”
• В “07_3.2_11 Процедура создание Коллаборации внешним методом” добавлены параметры “posts_count”/“stories_count”/“posts_upload_at”/“stories_upload_at” и их установка при создании Коллаборации
• В “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом” добавлены параметры “posts_upload_at”/“stories_upload_at” и их проброс в “07_3.2_3 Процедура изменения статуса коллаборации” / установка в ветке прямого изменения параметров Коллаборации
• В “07_3.4.2_2 Процедура создания поста коллаборации внешним методом” добавлены параметры “stats_upload_at”/“is_stats_required”/“published_at”
• В “07_3.4.2_5 Процедура обновления поста коллаборации внешним методом” добавлен параметр “stats_upload_at”.
№73 Дата: 13.08.26 Автор:Ляшук Андрей RFC: RPL-2859 Версия: 1.65.0
Добавлено:
“07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера”.

Изменено:
В “07_3.2_1 Процедура создания запроса на Коллаборацию” проверки наличия “Доступного отклика” и наличия Коллаборации объединены в этап “2_b_ii”, этапы ошибок “0739” и “0703” изменены на “2_b_ii_1” и “2_b_ii_2_a”, добавлен возврат параметра “has_pending_content_requirements”.
№74 Дата: 18.08.26 Автор:Ляшук Андрей RFC: RPL-2859 Версия: 1.66.0
Добавлено:
• “FR_07_3_2” — определение “Статуса коллаборации «Добавлен результат»”
• “FR_07_3_3” — определение “Загруженной статистики” поста коллаборации.
№75 Дата: 31.08.26 Автор:Ляшук Андрей RFC: RPL-2888 Версия: 1.67.0
Изменено:
• В “07_3.2_1 Процедура создания запроса на Коллаборацию” добавлено выполнение “02_3.2_11 Процедура установки ограничения откликов инфлюэнсера” при наличии “Долгов”
• В “07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации” для запроса “Reapply collaboration” добавлено выполнение “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера”, возврат информации о Кампании в том же составе, что и на запрос “Create collaboration”, с параметром “has_pending_content_requirements”, и выполнение “02_3.2_11 Процедура установки ограничения откликов инфлюэнсера” при наличии “Долгов”.
№76 Дата: 08.09.26 Автор:Ляшук Андрей RFC: RPL-2897 Версия: 1.68.0
Изменено:
• В “07_2.2_1 Процедура создания Кампании” условие наличия “Подписки на уведомление” заменено на условие наличия “FCM токена”
• Во всех вызовах “01_2.1.11_5 Процедура отправки push-уведомления” значение параметра “template_id” указано строковым идентификатором шаблона согласно “01_2.1.11_3 Шаблоны push-уведомлений”.

1. Кампания

Кампанией является предложение по сотрудничеству от Бизнес-представителя, Инфлюэнсерам сервиса.

Кампания создается для определенной Локации, к которой имеет доступ Бизнес-представитель.

Параметры Кампании, определяются Шаблоном кампании, при создании Кампании.

Параметры шаблона кампании определяются Администратором сервиса, согласно Типу локации.

07_1_1 Статусная модель кампании
Статус Описание Следующий статус
Активная Устанавливается при создании Кампании. Приостановлена; Завершена.
Приостановлена Устанавливается при приостановки активности Кампании представителем бизнеса. Активная; Завершена.
Завершена Устанавливается при завершении Кампании представителем бизнеса.
07_1_2 Соответствие инфлюэнсера аудитории кампании

Инфлюэнсер соответствует аудитории кампании если:

  1. Для “Кампании” имеется “Аудитория” и:
    1. В “Аудитории” кампании имеется “Массив стран инфлюэнсера” и для “Инфлюэнсера” имеется “Город инфлюэнсера” аккаунта который относятся к одной из “Стран”, которая указана в “Массиве стран” аудитории кампании;
    2. В “Аудитории” кампании имеется “Массив городов инфлюэнсера” и для “Инфлюэнсера” имеется “Город инфлюэнсера” аккаунта который:
      1. Указан в “Массиве городов” аудитории кампании;
        или
      2. Относится к одному из “Городов”, который относится к “Группе городов” со статусом активности true, к которой относится минимум один из “Городов”, который был указан при инициации данной процедуры
    1. В “Аудитории” кампании имеется “Массив стран” и для “Инфлюэнсера” имеется “Аккаунт” для которого имеются “Аудитории аккаунта по стране”:

      1. Которые относятся к одной из “Стран”, которая указана в “Массиве стран” аудитории кампании;
      2. Сумма “Долей” которых больше или равна значению параметра “countries” настройки “settings_for_influencers_filter”.

      или

    2. В “Аудитории” имеется “Массив городов” и для “Инфлюэнсера” имеется “Аккаунт” для которого имеются “Аудитории аккаунта по городу”:

        1. Которые относятся к одному из “Городов”, который указан в Массиве городов аудитории кампании;
          или
        2. Которые относятся к одному из “Городов”, который относится к “Группе городов” со статусом активности true, к которой относится минимум один из “Городов”, который был указан при инициации данной процедуры;
      1. Сумма “Долей” которых больше или равна значению параметра “cities” настройки “settings_for_influencers_filter”.
    3. В “Аудитории” имеется “Массив возрастных групп” и для “Инфлюэнсера” имеется “Аккаунт” для которого имеются “Аудитории аккаунта по возрастной группе”:
    4. Которые относится к одной из “Возрастных групп”, которая указана в “Массиве возрастных групп” аудитории кампании;
    5. Сумма “Доля” которых больше или равна значению параметра “age_ranges_audience” настройки “settings_for_influencers_filter”.
    6. В “Аудитории” имеется “Идентификатор пола аудитории” и:
    7. Для “Инфлюэнсера” имеется “Аккаунт” для которого имеется “Аудитория аккаунта по полу”:
      1. Которая относится к тому же “Полу аудитории”, который имеется в “Аудитории”;
      2. “Доля” которой больше или равна значению параметра “gender_audience” настройки “settings_for_influencers_filter”.

        или

  2. Название “Пола аудитории”, идентификатор которого имеется в “Аудитории” — “Any”.

  3. В “Аудитории” имеется “Массив идентификаторов диапазонов количества подписчиков” и для “Инфлюэнсера” имеется “Аккаунт” для которого значение параметра “Количество подписчиков” входит в диапазон от “Подписчиков от” до “Подписчиков до” одного из “Диапазонов количества подписчиков”, который имеется в “Массиве идентификаторов диапазонов количества подписчиков”;
  4. В “Аудитории” имеется “Идентификатор показателя вовлеченности” и для “Инфлюэнсера” имеется “Аккаунт” для которого значение параметра “Показатель вовлеченности аудитории” больше или равно значению параметра “Показатель”, “Показателя вовлеченности аудитории”, который имеется в “Аудитории”.
  5. Для “Кампании” не имеется “Аудитории”.

FR_07_1_3

  1. Для “Представителя бизнеса” имеется “Ограничение на создание первой кампании” если для данного “Представителя бизнеса” не имеется:
  2. “Активной подписки пользователя”;
    и
  3. “Кампании”.

1.1 Данные кампании

1.1.1 Параметры кампании(campaigns)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор uuid uuid да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Аудитория audience json да нет Структура данных в формате JSON “01_4.2.1_1”
Статус status enum да нет Возможны следующие статусы: 1 — Активная; 2 — Приостановлена; 3 — Завершена.
Идентификатор автора creator_id bigint да нет Пользователь который создал Кампанию.
Идентификатор локации location_id bigint да нет
Начало периода проведения start_date date да нет
Окончание периода проведения end_date date нет нет
Описание description text да нет
Свойства properties json да нет Массив параметров которые были указаны пользователем согласно шаблону кампании. Элементом массива является объект “07_1.1.1.1 Свойство кампании”.
Источник изменения статуса change_source enum да нет Возможны следующие источники изменения статуса: 1 — Пользователь; 2 — Система; 3 — Rippla; 4 — Отсутствие контакта. По умолчанию 1.

07_1.1.1.1 Свойство кампании

Параметр Описание Значение
id Идентификатор параметра шаблона
value Значение указанное пользователем. Если Тип параметра шаблона “Селект” или “Мультиселект”, значением является “Идентификатор” варианта параметра кампании. Если Тип параметра шаблона “Счетчик” или “Поле ввода”, значением является строка.

1.1.2 Параметры связи кампании и сервиса(campaign_service)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор кампании campaign_uuid uuid да нет
Идентификатор сервиса service_id int да нет

1.2 CRUD Кампании

07_2.2_1 Процедура создания Кампании

API: POST /private/campaigns

  1. Клиентской частью сервиса выполняется запрос “Create campaign” с телом запроса:
  2. audience — объект который содержит информацию, о настройках фильтра которые были установленные пользователем. Структура данных в формате JSON “01_4.2.1_1”;
  3. location_id;
  4. start_date;
  5. end_date;
  6. description;
  7. properties — массив который содержит Параметры шаблона кампании, и значения которые указал пользователь.
  8. Выполняется проверка активности Локации, которая была указана при инициации данной процедуры:
    1. Если для Локации имеется “Дата архивации” на запрос “Create campaign” возвращается ошибка “0712”;
    2. Если для Локации не имеется “Даты архивации” выполняется этап “2_b” данной процедуры;
  9. Если “Возможность создания кампании” бизнеса, к которому относится “Представитель бизнеса”, который инициировал выполнение данной процедуры:
    1. false, на запрос “Create campaign” возвращается ошибка “0725”;
    2. true, выполняется этап “2_c” данной процедуры.
  10. Выполняется проверка возможности изменения “Статуса” кампании относительно наличия “Доступных откликов”. Если для “Представителя бизнеса” который инициировал выполнение данной процедуры:
    1. Не имеется “Доступного отклика” на запрос “Create campaign” возвращается ошибка “0735”;
    2. Имеется “Доступный отклик” выполняется этап “2_d” данной процедуры.
  11. Выполняется проверка возможности изменения “Статуса” кампании относительно наличия “Доступных коллабораций”. Если для “Представителя бизнеса” который инициировал выполнение данной процедуры:
    1. Не имеется “Доступной коллаборации” на запрос “Create campaign” возвращается ошибка “0736”;
    2. Имеется “Доступная коллаборация” выполняется этап “3” данной процедуры.
  12. Выполняется:
  13. Создание “Кампании” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Аудитория — согласно значению объекта “audience”;
    3. Статус — Если у “Пользователя” который инициировал выполнение данной процедуры:
      1. Не имеется “Ограничение на создание первой кампании” — Приостановленная;
      2. Имеется “Ограничение на создание первой кампании“ — Активная;
    4. Идентификатор автора — пользователь который инициировал данную процедуру;
    5. Идентификатор локации — согласно значению параметра “location_id”;
    6. Начало периода проведения — согласно значению параметра “start_date”;
    7. Окончание периода проведения — согласно значению параметра “end_date”;
    8. Описание — согласно значению параметра “description”;
    9. Свойства — согласно значению параметра “properties”;
    10. Источник изменения статуса:
      1. Не имеется “Ограничение на создание первой кампании” — Пользователь;
      2. Имеется “Ограничение на создание первой кампании“ — Отсутствие контакта.
  14. Создание “Уведомления” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. email — team@rippla.com;
    3. Тип — email;
    4. Идентификатор динамического шаблона — 5;
    5. Параметры уведомления:
      1. “LocationName” : “Заголовок локации, идентификатор которой был указан при инициации процедуры”;
      2. “BusinessUserFullName” : “Полное имя пользователя, который инициировал данную процедуру”;
      3. “CampaignCreateDate” : формируется как строка которая содержит текущую дату в формате “YYYY-MM-DD hh:mm”;
      4. “CampaignDates” :
        1. Если при выполнении запрос “Create campaing”:
        2. Не был указан параметр “end_date” определяется как строка “Start date:{start_date}, always on”.
        3. Был указан параметр “end_date” определяется как строка “{start_date} — {end_date}”;
      5. “BusinessUserEmail” : “Email пользователя, который инициировал данную процедуру”;
      6. “WebLink” : “Ссылка на локацию в web-сервисе” локации которая была указана при инициации данной процедуры.
      7. “Parameters” : согласно 02_2.2_1.2 и “Предпочитаемой локали” пользователя, для которого выполняется создание уведомления ;
      8. “AudienceCitiesList” : формируется как строка которая содержит Названия городов, которые были указаны в объекте “audience” при инициации данной процедуры, разделенные запятой;
      9. “AudienceCountriesList” : формируется как строка которая содержит Названия стран, которые были указаны в объекте “audience” при инициации данной процедуры, разделенные запятой;
      10. “AgeGroupsList” : формируется как строка которая содержит Названия возрастных групп, которые были указаны в объекте “audience” при инициации данной процедуры, разделенные запятой;
      11. “Gender” :
        1. “Название пола аудитории”, если Пол аудитории был указан в объекте “audience” при инициации данной процедуры;
        2. “Any”, если Пол аудитории не был указан в объекте “audience” при инициации данной процедуры.
      12. “FollowersCountList” : формируется как строка которая содержит Названия диапазонов количества, которые были указаны в объекте “audience” при инициации данной процедуры, разделенные запятой;
      13. “EngagementRate” : “Название показателя вовлеченности аудитории” который был указан в объекте “audience” при инициации данной процедуры;
      14. “Comment” : согласно значению параметра “description”, который был указан при инициации данной процедуры;
      15. “campaignUUID” — Идентификатор кампании, которая была создана на этапе “4_a” данной процедуры;
      16. “adminPanelLink” — Ссылка на кампанию, которая была создана на этапе “4_a” данной процедуры, в панели управления;
      17. “InfluencerCountries”:формируется как строка которая содержит Названия стран, которые были указаны в объекте “audience” при инициации данной процедуры, разделенные запятой;
      18. “InfluencerCities”: формируется как строка которая содержит Названия городов, которые были указаны в объекте “audience” при инициации данной процедуры, разделенные запятой.
    6. Статус — new;
  15. В очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
    1. Идентификатор уведомления — идентификатор уведомления которое было создано на этапе “4_b” данной процедуры.
  16. Создание связи кампании и сервиса с параметрами:
    1. Идентификатор кампании — Идентификатор кампании которая была создана на этапе “4_a” данной процедуры;
    2. Идентификатор сервиса — 1.
  17. Если “Кампания”, которая была создана на этапе “4_a” данной процедуры, является единственной, которая относится к одной из “Локаций”, которые относятся к “Бизнесу” к которому относится “Бизнес представитель” к которому относится “Пользователь”, который инициировал данную процедуру в очередь “Запросы к сервису Trackdesk” добавляется сообщение “Конверсия пользователя” с параметрами:
    1. Email пользователя — “Email пользователя” который инициировал данную процедуру;
    2. Тип — freetrial.
  18. “02_2.5_1 Процедура создания и обновления сессии пользователя” с параметрами:
    1. session_id — “X-Session-Id”, который был указан в заголовке запроса;
    2. user_id — Идентификатор пользователя который инициировал данную процедуру;
    3. action — Создание кампании.
  19. Если “Статус кампании”, которая была создана на этапе “4_a” данной процедуры “Активная” и значение параметра “email” пользователя, который инициировал выполнение данной процедуры, не содержит ни одного из строковых значений, указанных в настройке “6.20 Список почт офферы с которых не учитываются при создании push-уведомления”, выполняется добавление сообщения “Кампания” в очередь “Определения инфлюэнсеров, которые подходят под кампанию” с параметрами:
    1. campaign_id — Идентификатор кампании, которая была создана на этапе “4_a” данной процедуры.
  20. Выполняется добавление сообщения в очередь “Отправки событий в Make” с параметрами:
    1. event_type — Создание кампании;
    2. entity_id — Идентификатор коллаборации которая была создана на этапе “3_a” данной процедуры.
  21. Этап “5” данной процедуры.
  22. На запрос “Create campaing” возвращается информация об успешном создании Кампании.

07_2.2_1.1 Ошибки при выполнении проверки 07_2.2_1

Код ошибки Этап Локаль Текст ошибки
0712 2_a_i en “Location is archived (code: 0712)”
es "La propiedad está archivada (código: 0712)"
pt “A localização está arquivada (código: 0712)”
de
0725 2_b_i en “Campaign creation is not allowed (code: 0725)”
es "No se permite la creación de campañas (código: 0725)"
pt "Não é permitida a criação de campanhas (código: 0725)"
de
0735 2_с_i en "Unable to create campaign. You have no available applications (code: 0735)"
es "No se puede crear la campaña. No tienes solicitudes disponibles (código: 0735)"
pt "Não foi possível criar a campanha. Você não tem candidaturas disponíveis (código: 0735)"
de "Kampagne kann nicht erstellt werden. Sie haben keine verfügbaren Bewerbungen (Code: 0735)"
0736 2_d_i en "Unable to create campaign. You have no available collaborations (code: 0736)"
es "No se puede crear la campaña. No tienes colaboraciones disponibles (código: 0736)"
pt "Não foi possível criar a campanha. Você não tem colaborações disponíveis (código: 0736)"
de "Kampagne kann nicht erstellt werden. Sie haben keine verfügbaren Kooperationen (Code: 0736)"

07_2.2_1.2 Определение параметра уведомления Parameters

Параметр уведомления “Parameters” формируется как строка которая содержит вложенный ненумерованный список в формате HTML.

Первый уровень списка состоит из уникальных Заголовков шаблона кампании, к которым относятся Параметры шаблона кампании, которые были указаны в массиве “parameters”.

Второй уровень списка состоит из Параметров шаблона кампании и их значений, которые относятся к одной и той же Секции шаблона кампании.

Пример:

\<p>Parameters:\</p>

\<ul>

\<li>

Offer

\<ul>

 **\<li\>Max guests: 1\</li\>**

 **\<li\>Nights: 1\</li\>**

 **\<li\>Meals: Breakfast, Lunch\</li\>**

\</ul>

\</li>

\<li>

Requirements

\<ul>

 **\<li\>Stories: 1\</li\>**

 **\<li\>Reels/Posts: 1\</li\>**

\</ul>

\</li>

\</ul>

07_2.2_2 Процедура получения Офферов(Кампаний) для отображения в интерфейсе Инфлюэнсера

API: GET /private/campaigns/offers

  1. Клиентской частью сервиса выполняется запрос “Get campaigns for offers page” с параметрами:
  2. “tail_item” — последний элемент списка, который был получен ранее;
  3. “per_page” — количество элементов на странице;
  4. "countries" — Массив кодов стран;
  5. “cities” — Массив идентификаторов городов;
  6. “dateFrom” — Дата начала периода;
  7. “dateTo” — Дата окончания периода;
  8. “locationType” — Массив идентификаторов типов локации.
  9. Определяются Кампании которые удовлетворяют условиям запроса. Кампания удовлетворяет условиям запроса если:
  10. “Статус” кампании — “Активная”;
  11. Для “Локации”, к которой относится “Кампания”, не имеется “Даты архивации”;
  12. Если при выполнении запроса не были указаны “Дата начала периода” и “Дата окончания периода” и:
    1. Текущая дата ранее “Окончания периода проведения” кампании;
      или
    2. У “Кампании” не имеется “Окончания периода проведения”.
  13. Инфлюэнсер, который инициировал запрос, соответствует аудитории кампании согласно “07_1_2 Соответствие инфлюэнсера аудитории кампании”.
  14. Кампания удовлетворяет условиям запроса “Get campaigns for offers page”. Кампания удовлетворяет условиям запроса если:
    1. Был указан один из фильтров и:
      1. Был указан “Массив кодов стран” и “Локация”, к которой относится “Кампания” относится к “Городу”, “Код страны” которого соответствует, одному из кодов “Массива кодов стран”;
      2. Был указан “Массив идентификаторов городов” и “Локация”, к которой относится “Кампания”, относится к:
        1. Одному из “Городов”, который указан в “Массиве идентификаторов городов”;
          или
        2. Одному из “Городов”, который относится к “Группе городов” со статусом активности true, к которой относится минимум один из “Городов”, который указан в “Массиве идентификаторов городов”.
      3. Были указаны “Дата начала периода” и “Дата окончания периода” и для Кампании:
        1. Не имеется “Окончание периода проведения” и “Начало периода проведения” кампании меньше или равно “Дате окончания периода”;
        2. “Начало периода проведения” меньше или равно “Дате окончания периода” и “Окончание периода проведения” больше или равно “Дата начала периода”.
      4. Был указан “Массив идентификаторов типов локации” и “Кампания” относится к “Локации”, “Тип” которой соответствует одному из “Типов локаций”, который указан в “Массиве идентификаторов типов локации”;
  15. Не был указан ни один из фильтров.
  16. На запрос “Get campaigns for offers page” возвращается список “Кампаний” которые удовлетворяют условиям запроса.
07_2.2_3 Процедура изменения Статуса кампании

API: PATCH /private/campaigns/{id}

  1. Клиентской частью сервиса выполняется один из запросов:
    1. “Hide campaign”;
    2. “Activate campaign”;
    3. “Finish campaign”.
  2. Или выполняется инициация данной процедуры с параметрами:
    1. id;
    2. status.
  3. Выполняется “07_2.2_3.1 Проверка возможности изменения Статуса кампании”.
  4. Если “07_2.2_3.1 Проверка возможности изменения Статуса кампании” не выполнена на запрос, который инициировал выполнение данной процедуры, возвращается информация об ошибке по причине которой проверка не была выполнена. Дальнейшие этапы процедуры не выполняются.
  5. Если “07_2.2_3.1 Проверка возможности изменения Статуса кампании” выполнена успешно выполняется этап “4” данной процедуры.
  6. Выполняется:
  7. Если “Статус” кампании, для которой была инициирована данная процедура, должен быть изменен на “Завершена” для каждой Коллаборации, которая относится к данной Кампании и “Статус” которой “Активная”, “Новая” или “Подтверждена”, выполняется “07_3.2_3 Процедура изменения статуса коллаборации” с параметрами:
    1. Коллаборация — идентификатор коллаборации для которой должна быть инициирована процедура 07_3.2_3;
    2. Статус — Отклонена;
    3. Пользователь — идентификатор пользователя который инициировал выполнение данной процедуры;
    4. Инициатор — Представитель бизнеса.
  8. “Статус” кампании, для которой была инициирована данная процедура изменяется на:
    1. Приостановлена — если выполнение процедуры было инициировано запросом “Hide campaign”;
    2. Активная — если выполнение процедуры было инициировано запросом “Activate campaign”;
    3. Завершена — если выполнение процедуры было инициировано запросом “Finish campaign”.
  9. “Источник изменения статуса” кампании, для которой была инициирована данная процедура изменяется на Пользователь.
  10. Для каждого “Представителя бизнеса”, который относится к “Кампании” статус которой был изменен на этапе “4_b” данной процедуры и для которого имеется подключение к веб-сокету выполняется:
    1. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
      1. type — “campaign_status_changed”;
      2. data[ ].id — Идентификатор кампании, для которой инициирована данная процедура;
      3. data[ ].previous_status — Статус кампании, который был до выполнения этапа “4_b” данной процедуры;
      4. data[ ].new_status — “Статус”, который был указан при инициации данной процедуры;
      5. data[ ].campaigns_left — Количество доступных кампаний.
      1. “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании” с параметрами:
        1. Пользователь — Идентификатор пользователя, для которого выполняется этап “4_c” данной процедуры.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании”.
  11. Для каждого “Представителя бизнеса”, который относится к “Коллаборации”, статус которой был изменен на этапе “4_a” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
    1. type — “collaboration_status_changed”;
    2. data[ ].id — Идентификатор коллаборации, для которой выполняется этап “4_a” данной процедуры;
    3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “4_a” данной процедуры;
    4. data[ ].new_status — Статус коллаборации, после выполнения этапа “4_a” данной процедуры;
    5. data[ ].campaign_id — Идентификатор кампании, для которой инициирована данная процедура;
    6. data[ ].campaigns_left — Количество доступных кампаний.
  12. Для “Инфлюэнсера”, который относится к “Коллаборации”, статус которой был изменен на этапе “4_a” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
    1. type — “collaboration_status_changed”;
    2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
    3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “4_a” данной процедуры;
    4. data[ ].new_status — Статус коллаборации, после выполнения этапа “4_a” данной процедуры;
    5. data[ ].campaign_id — Идентификатор кампании, для которой инициирована данная процедура;
    6. data[ ].campaigns_left — Количество доступных кампаний.
07_2.2_3.1 Проверка возможности изменения Статуса кампании
  1. Выполняется проверка существования Кампании. Если:
  2. Не имеется Кампании, “Идентификатор” которой соответствует “Идентификатору кампании”, который был указан при выполнении запроса на изменение Статуса кампании, проверка возможности изменения статуса кампании является не выполненной. Дальнейшие этапы проверки не выполняются;
  3. Если имеется Кампания, Идентификатор которой соответствует, “Идентификатору кампании” который был указан при инициации выполняется этап “2” данной проверки.
  4. Выполняется проверка возможности изменения ”Статуса” кампании пользователем который инициировал запрос на изменение. ”Статус” кампании может быть изменен если для Пользователя который инициировал запрос, имеется Бизнес представитель, который относится к тому же “Бизнесу”, к которому относится “Локация” к которой относится “Кампания”, для которой была инициирована данная процедура.
  5. Выполняется проверка возможности изменения ”Статуса” кампании относительно текущего “Статуса” кампании. ”Статус” кампании может быть изменен если статус, который должен быть установлен для Кампании соответствует “07_1_1 Статусной модели кампании”.
  6. Выполняется проверка возможности изменения ”Статуса” кампании относительно “Локации” к которой относится “Кампания”. ”Статус” кампании может быть изменен на “Активную” если для “Локации”:
  7. Не имеется “Даты удаления”;
  8. Не имеется “Даты архивации”;
  9. “Статус активности” — true.
  10. Выполняется проверка возможности изменения “Статуса” кампании относительно наличия “Доступных откликов”. “Статус” кампании может быть изменен на “Активную”, если для данного “Представителя бизнеса” имеется “Доступный отклик”;
  11. Выполняется проверка возможности изменения “Статуса” кампании относительно наличия “Доступных коллабораций”. “Статус” кампании может быть изменен на “Активную”, если для данного “Представителя бизнеса” имеется “Доступная коллаборация”.

07_2.2_3.1.1 Ошибки при выполнении проверки 07_2.2_3.1

Код ошибки Этап Локаль Текст ошибки
0707 1 en “Campaign not found (code: 0707)”
es "Campaña no encontrada (código: 0707)"
pt “Campanha não encontrada (código: 0707)”
de “Kampagne nicht gefunden (Code: 0707)”
0708 2 en “You cannot change campaign status, please reload the page (code: 0708)”
es "No puedes cambiar el estado de la campaña, recarga la página (código: 0708)"
pt “Não é possível alterar o estado da campanha, recarregue a página (código: 0708)”
de “Du kannst den Kampagnenstatus nicht ändern, bitte lade die Seite neu (Code: 0708)”
0709 3 en “Campaign status cannot be changed. Campaign status is {Name of the current status of the collaboration}, please reload the page (code: 0709)”
es "No se puede cambiar el estado de la campaña. El estado actual es {Name of the current status of the collaboration}; recarga la página (código: 0709)"
pt "O estado da campanha não pode ser alterado. O estado da campanha é {Name of the current status of the collaboration}, recarregue a página (código: 0709)"
de "Kampagnenstatus kann nicht geändert werden. Kampagnenstatus ist {Name of the current status of the collaboration}, bitte lade die Seite neu (Code: 0709)"
0719 4 en “Campaign status cannot be changed. Campaign location is archived or deleted (сode: 0719)”
es "No se puede cambiar el estado de la campaña. La propiedad de la campaña está archivada o ha sido eliminada (código: 0719)"
pt "O estado da campanha não pode ser alterado. O local da campanha foi arquivado ou eliminado (código: 0719)"
de "Kampagnenstatus kann nicht geändert werden. Kampagnen-Standort ist archiviert oder gelöscht (Code: 0719)"
0733 5 en "Unable to change status. You have no available applications (code: 0733)"
es "No se puede cambiar el estado. No tienes solicitudes disponibles (código: 0733)"
pt "Não foi possível alterar o estado. Você não tem candidaturas disponíveis (código: 0733)"
de "Status kann nicht geändert werden. Sie haben keine verfügbaren Bewerbungen (Code: 0733)"
0734 6 en "Unable to change status. You have no available collaborations (code: 0734)"
es "No se puede cambiar el estado. No tienes colaboraciones disponibles (código: 0734)"
pt "Não foi possível alterar o estado. Você não tem colaborações disponíveis (código: 0734)"
de "Status kann nicht geändert werden. Sie haben keine verfügbaren Kooperationen (Code: 0734)"
07_2.2_4 Процедура получения кампании

API: GET /private/campaigns/offers/{id}

  1. Клиентской частью сервиса выполняется запрос “Get campaign details for offers page” с параметрами:
  2. “id” — идентификатор кампании.
  3. Если запрос “Get campaign details for offers page” был инициирован Пользователем:
  4. Роль которого “Бизнес представитель” на запрос “Get campaign details for offers page” возвращается ошибка “0720”;
  5. Роль которого “Инфлюэнсер” выполняется этап “3” данной процедуры.
  6. Если для “Бизнеса” к которому относится “Локация” к которой относится “Кампания”, идентификатор которой был указан при выполнении запроса, “Статус активности” — false, на запрос “Get campaign details for offers page” возвращается ошибка “0721”;
  7. Если для “Локации” к которой относится “Кампания”, идентификатор которой был указан при выполнении запроса:

    1. Имеется “Дата архивации”
      или
    2. Имеется “Дата удаления”
      или
    3. Статус активности — false.

      на запрос “Get campaign details for offers page” возвращается ошибка “0722”;

  8. Если:

  9. Для “Кампании”, идентификатор которой был указан при выполнении запроса:

    1. Статус — Приостановлена или Завершена;

        1. Не имеется “Коллаборации” которая относится к “Аккаунту пользователя”, который относится к пользователю который инициировал данную процедуру.
          или
        2. Имеется “Коллаборация” которая относится к “Аккаунту пользователя”, который относится к пользователю который инициировал данную процедуру и “Статус” данной коллаборации “Завершена” или “Отклонена”.

      или

    2. “Пользователь”, который инициировал данную процедуру не соответствует аудитории кампании, согласно “07_1_2 Соответствие инфлюэнсера аудитории кампании”.

    на запрос “Get campaign details for offers page” возвращается информация о кампании, идентификатор которой был указан при выполнении запроса и информация о том что кампания не доступна для Пользователя, который инициировал запрос.

  10. Если:

    1. Для “Бизнеса” к которому относится “Локация” к которой относится “Кампания”, идентификатор которой был указан при выполнении запроса, “Статус активности” — true.
    2. Для “Локации” к которой относится “Кампания”, идентификатор которой был указан при выполнении запроса:
      1. Не имеется “Даты архивации”;
      2. Не имеется “Даты удаления”;
      3. Статус активности — true.
    3. Для “Кампании”, идентификатор которой был указан при выполнении запроса:
      1. Статус — “Активная”
        или
        1. Статус — “Приостановлена” или “Завершена”;
        2. Имеется “Коллаборация” которая относится к “Аккаунту пользователя”, который относится к пользователю который инициировал данную процедуру и “Статус” данной коллаборации “Новая”/“Подтверждена”/”Активная”.

    на запрос “Get campaign details for offers page” возвращается информация о кампании, идентификатор которой был указан при выполнении запроса.

07_2.2_4.1 Ошибки при выполнении процедуры 07_2.2_4

Код ошибки Этап Локаль Текст ошибки
0720 2_a en “Access denied! Only influencers can see this page.(code: 0720)”
es "¡Acceso denegado! Solo los influencers pueden ver esta página (código: 0720)"
pt "Acesso negado! Só os influenciadores podem ver esta página (código: 0720)"
fr
0721 3_a en “This location no longer exists! You cannot view the offer because the location has been deleted or is inactive.(code: 0721)”
es "¡Esta propiedad ya no existe! No puedes ver la oferta porque la propiedad se ha eliminado o está inactiva (código: 0721)"
pt "Esta localização já não existe! Não é possível visualizar a oferta porque a localização foi eliminada ou está inativa (código: 0721)"
fr
0722 3_b en “This location no longer exists! You cannot view the offer because the location has been deleted or is inactive.(code: 0722)”
es "¡Esta propiedad ya no existe! No puedes ver la oferta porque la propiedad se ha eliminado o está inactiva (código: 0722)"
pt "Esta localização já não existe! Não é possível visualizar a oferta porque a localização foi eliminada ou está inativa (código: 0722)"
fr
07_2.2_5 Процедура изменения Кампании внешним методом

API: PATCH /campaigns/{campaign_uuid}

  1. Выполняется запрос “Update campaign”.
  2. Выполняется:
  3. Изменение “Кампании” согласно параметрам, которые были указаны при инициации данной процедуры;
  4. “Источник изменения статуса” кампании, для которой была инициирована данная процедура изменяется на Rippla.
    1. Для каждого “Представителя бизнеса”, который относится к “Кампании” статус которой был изменен на этапе “2_a” данной процедуры и для которого имеется подключение к веб-сокету выполняется:
      1. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “campaign_status_changed”;
        2. data[ ].id — Идентификатор кампании, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус кампании, который был до выполнения этапа “2_a” данной процедуры;
        4. data[ ].new_status — “Статус”, который был указан при инициации данной процедуры;
        5. data[ ].campaigns_left — Количество доступных кампаний.
        1. “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании” с параметрами:
        2. Пользователь — Идентификатор пользователя, для которого выполняется этап “2_b” данной процедуры.
        3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        4. type — “messages_counters_changed”;
        5. data — массив “data” который был получен в результате выполнения “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании”.
  5. На запрос “Update campaign” возвращается информация об успешном выполнении запроса.
07_2.2_6 Процедура изменения статуса Кампании администратором
  1. Администратор инициирует изменение статуса кампании.
  2. Выполняется:
  3. Изменение “Статуса” кампании согласно статусу, который был указан при инициации данной процедуры.
  4. “Источник изменения статуса” кампании, для которой была инициирована данная процедура изменяется на Rippla.
    1. Для каждого “Представителя бизнеса”, который относится к “Кампании” статус которой был изменен на этапе “2_a” данной процедуры и для которого имеется подключение к веб-сокету выполняется:
      1. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “campaign_status_changed”;
        2. data[ ].id — Идентификатор кампании, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус кампании, который был до выполнения этапа “2_a” данной процедуры;
        4. data[ ].new_status — “Статус”, который был указан при инициации данной процедуры;
        5. data[ ].campaigns_left — Количество доступных кампаний.
        1. “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании” с параметрами:
        2. Пользователь — Идентификатор пользователя, для которого выполняется этап “2_b” данной процедуры.
        3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        4. type — “messages_counters_changed”;
        5. data — массив “data” который был получен в результате выполнения “07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании”.
07_2.2_7 Процедура получения списка Кампаний

API: GET /private/campaigns

  1. Клиентской частью сервиса выполняется запрос “Get campaigns”.
  2. Если для “Пользователя” который инициировал выполнение данной процедуры не имеется “Активной подписки пользователя” и “Возможности использования бесплатной коллаборации” и для каждого “Инфлюнсера” данные которого должна вернуться на запрос “Get campaigns”, для которого не имеется “Коллаборации”, которая относится к “Бизнесу” к которому относится “Представитель бизнеса”, который инициировал выполнение данной процедуры в “Статусе” — завершена и не имеется “Поста коллаборации”, выполняется:
  3. Определение значения параметра “Полное имя”. Значение определяется как результат выполнения “02_3.2_9 Процедура скрытия контактных данных” с параметрами:
    1. value — “Полное имя” аккаунта, для которого инициирован этап “2” данной процедуры;
    2. full_replace.
  4. Определение значения параметра “Имя в сервисе”. Значение определяется как результат выполнения “02_3.2_9 Процедура скрытия контактных данных” с параметрами:
    1. value — “Имя в сервисе” аккаунта, для которого инициирован этап “2” данной процедуры;
    2. full_replace.
  5. На запрос “Get campaigns” возвращается список Аккаунтов которые удовлетворяют условиям запроса.
07_2.2_8 Процедура генерации сопроводительного сообщения для компании
  1. Выполняется запрос “Generate AI accompanying message for campaign” с телом запроса:
  2. accompanying_message;
  3. campaign_id.
  4. “01.1.10_1.10_2 Процедура добавления записи в буфер отслеживания пользователей, для которых генерируется ответ от ИИ-модели” с параметрами:
    1. user_id — Идентификатор пользователя, который инициировал выполнение данной процедуры.
  5. Если “01.1.10_1.10_2 Процедура добавления записи в буфер отслеживания пользователей, для которых генерируется ответ от ИИ-модели” была выполнена:
    1. Не успешно, на запрос “Generate AI accompanying message for campaign” возвращается ошибка “0608”.
    2. Успешно, выполняется добавление сообщения “Пользователь” в очередь “Создания сопроводительного сообщения ИИ-моделью OpenAI” с параметрами:
      1. user_id — Идентификатор пользователя, который инициировал выполнение данной процедуры;
      2. accompanying_message — “accompanying_message”, который был указан при инициации данной процедуры;
      3. campaign_id — “campaign_id”, который был указан при инициации данной процедуры.

07_2.2_8.1 Ошибки при выполнении процедуры 07_2.2_8

Код ошибки Этап Локаль Текст ошибки
0608 2_b_i en “Accompanying message generation is already in progress. Please wait.(code: 0608)”
es “La generación del mensaje de acompañamiento ya está en curso. Por favor, espere. (código: 0608)”
pt “A geração da mensagem de acompanhamento já está em andamento. Por favor, aguarde. (código: 0608)”
de “Die Generierung der Begleitnachricht ist bereits im Gange. Bitte warten Sie. (Code: 0608)”
07_2.2_9 Процедура обработки сопроводительного сообщения для кампании
  1. Выполняется запрос “Processing of a campaign accompanying message”:
  2. С телом запроса:
    1. user_id;
    2. accompanying_message;
    3. campaign_id.
  3. Если в теле запроса:
  4. Не был указан параметр “campaign_id” выполняется изменение пользователя со следующими параметрами:
    1. Сопроводительное сообщение — “accompanying_message”, который был указан при инициации данной процедуры.
  5. Был указан параметр “campaign_id”, выполняется:
    1. “07_1.3_3 Процедура добавления записи в буфер сопроводительных сообщений для кампаний” с параметрами:
      1. user_id — “user_id”, который был указан при инициации данной процедуры;
      2. accompanying_message — “accompanying_message”, который был указан при инициации данной процедуры;
      3. campaign_id.
  6. Для “Инфлюэнсера”:

    1. Который относится к “Пользователю”, которой был указан при инициации данной процедуры инициирована данная процедура;
    2. Для которого имеется подключение к веб-сокету.

    выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя который указан в теле запроса}” с параметрами:

     1. type — “accompanying\_message\_for\_campaign\_generated”;  
        1. data.id — “campaign\_id”, который был указан при инициации данной процедуры.  
        2. data.accompanying\_message — “accompanying\_message”, который был указан при инициации данной процедуры.
    
    1. Выполняется удаление записи из буфера “Отслеживания пользователей, для которых генерируется ответ от ИИ-модели” ключ, которой соответствует значению параметра “user_id”, который был указан при инициации данной процедуры.
07_2.2_10 Процедура проверки кампаний бизнесов

Процедура должна выполняться каждый день в 03:01 UTC+0.

Процедура:

  1. Выполняется определение “Бизнесов”, для которых выполняется данная процедура. Бизнес попадает под условие если:
  2. “Статус активности” бизнеса — true;
  3. Для бизнеса имеется минимум одна “Кампания” статус, которой “Активная” или “Приостановлена” и “Источник изменения статуса” — Система.
  4. Для каждого “Бизнеса” который был определен на этапе “1” данной процедуры выполняется “07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса” с параметрами:
  5. Идентификатор бизнеса — Идентификатор бизнеса, который был определен на этапе ”1” данной процедуры.
07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса
  1. Выполняется инициация данной процедуры с параметрами:
  2. Идентификатор бизнеса.
  3. Если для “Бизнеса” для которого был инициирована данная процедура:
  4. Не имеется “Доступного отклика” или “Доступной коллаборации” для каждой “Кампании”, которая относится к бизнесу, для которого выполняется этап “2” данной процедуры, “Статус” которой “Активная” выполняется:
    1. Изменение согласно следующим параметрам:
      1. “Статус” — Приостановлена;
        1. “Источник изменения статуса” — Система.
      2. Выполняется этап “3” данной процедуры.
  5. Имеется “Доступный отклик” и “Доступная коллаборации” для каждой “Кампании”, которая относится к бизнесу, для которого выполняется этап “2” данной процедуры, “Статус” которой “Приостановлена” и “Источник изменения статуса” которой “Система” выполняется:
    1. Изменение согласно следующим параметрам:
      1. “Статус” — Активная;
      2. “Источник изменения статуса” — Система.
    2. Выполняется этап “3” данной процедуры.
  6. Для каждого “Представителя бизнеса”, который относится к “Кампании” статус которой был изменен на этапе “2” данной процедуры и для которого имеется подключение к веб-сокету выполняется:
  7. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
    1. type — “campaign_status_changed”;
    2. data[ ].id — Идентификатор кампании;
    3. data[ ].previous_status — “Статус кампании”, который был до выполнения этапа “2” данной процедуры;
    4. data[ ].new_status — “Статус кампании”;
    5. data[ ].campaigns_left — Количество доступных кампаний.

1.3 Буфер сопроводительных сообщений для кампаний

Буфер предназначен для сохранения сопроводительных сообщений для кампании.

Запись в буфере отслеживания локаций представляет собой запись “Ключ”:”Значение” где:

  • Ключ:
  • Идентификатор аккаунта для которого создается запись;
  • Идентификатор кампании для которой создается запись.
  • Значение — Структура данных в формате JSON “07_1.3_1”.

07_1.3_1

Параметр Описание Значение
accompanying_message Сопроводительное сообщение

FR_07_1.3_2 Срок хранения записи в буфере сопроводительных сообщений для кампаний
Срок хранения записи в буфере отслеживания локаций, для которых генерируется ответ от ИИ-модели — 2 дня.

07_1.3_3 Процедура добавления записи в буфер сопроводительных сообщений для кампаний

  1. Инициируется данная процедура с параметрами:
  2. account_id;
  3. accompanying_message;
  4. campaign_id.
  5. Если в Буфере сопроводительных сообщений для кампании, имеется запись, значение ключа которой соответствует значению параметра “account_id” и “campaign_id” выполняется изменение значения согласно следующим параметрам:
    1. accompanying_message — “accompanying_message”,который был указан при инициации данной процедуры.
  6. Если в Буфере сопроводительных сообщений для кампании, не имеется записи, значение ключа которой соответствует значению параметра “account_id”, выполняется:
    1. Создание записи в “Буфере сопроводительных сообщений для кампании”, с параметрами:
      1. Ключ:
        1. “account_id”, который был указан при инициации данной процедуры;
        2. “campaign_id”, который был указан при инициации данной процедуры;
      2. Значение:
        1. accompanying_message — “accompanying_message”,который был указан при инициации данной процедуры.
  7. Инициатору данной процедуры возвращается информация об успешном выполнении данной процедуры.

1.4 Очередь “Определения инфлюэнсеров, которые подходят под кампанию”

1.4.1 Параметры сообщения “Кампания”

Название Ключ Значение
Идентификатор кампании campaign_id

1.4_1 Процедура обработки сообщения “Кампания”

  1. Наступает время обработки сообщения, брокер отправляет сообщение обработчику сообщений.
  2. Обработчик получает сообщение “Кампания”.
  3. Выполняется логирование события с Payload:
  4. event — "received";
  5. title — “Identification of influencers who match the campaign criteria.”;
  6. data.campaign_id — Идентификатор кампании, для которого выполняется данная процедура.
  7. Для каждого “Пользователь”, для которого имеется хотя бы один “FCM токен” и значение “push” “Настройки уведомления” — true и для которого имеется минимум один “Аккаунт”, который соответствует аудитории “Кампании” согласно “07_1_2 Соответствие инфлюэнсера аудитории кампании” выполняется:
  8. “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
    1. template_id — New offer available;
    2. campaign_id — “Идентификатор кампании”, который указан в сообщении;
    3. user_id — Идентификатор пользователя, для которого выполняется этап “4” данной процедуры.
  9. Брокеру сообщений возвращается информация о том что сообщение было обработано.

2. Шаблон кампании

NFR_07_2_1 Активность шаблона кампании
Для одного “Типа” локации должен быть только один активный Шаблон кампании.

2.1 Данные шаблона кампании

2.1.1 Параметры шаблона кампании(campaign_templates)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id serial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Статус активности is_active boolean да нет
Идентификатор типа локации location_type_id int да нет
Минимальная длительность кампании min_duration_d int нет нет Указывается в днях.
Текст рекомендации по длительности кампании duration_recommendation_text varchar(255) нет нет Является переводимым.
Тултип рекомендации по длительность кампании duration_recommendation_tooltip varchar(255) нет нет Является переводимым.
Индексы Параметры
Уникальный индекс is_active, location_type_id
2.1.1.1 Предустановленные шаблоны кампании
Тип локации Параметры
Отель Идентификатор — 1; Статус активности — true; Идентификатор типа локации — 1.
Ресторан Идентификатор — 2; Статус активности — true; Идентификатор типа локации — 2.
Бар Идентификатор — 3; Статус активности — true; Идентификатор типа локации — 3.

NFR_07_2.1.1.1_1 Запрет на удаление предустановленных шаблонов кампании Администратор не должен иметь возможности удалить предустановленные шаблоны кампании.

2.1.2 Параметры секции шаблона кампании(template_sections)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id serial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор шаблона кампании campaign_template_id int да нет
Заголовок title varchar(255) да нет Является переводимым.
Порядковый номер position smallint да нет
Индексы Параметры
Уникальный индекс campaign_template_id, position

2.1.3 Параметры параметра шаблона(template_parameters)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id serial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор секции шаблона кампании template_section_id int да нет
Заголовок title varchar(255) да нет Является переводимым.
Порядковый номер position smallint да нет
Тип type enum да нет Возможны следующие типы: 1 — Счетчик; 2 — Селект; 3 — Мультиселект; 4 — Поле ввода.
Является ли обязательным is_required boolean да нет
Идентификатор иконки icon_id bigint нет нет
Отображать ли на карточке оффера is_show_offer_card boolean да нет По умолчанию “false”.
Предзаполненное значение pre_filled_value varchar(255) нет нет
Минимальное значение min_value int нет нет Обязателен если тип: 1 — Счетчик;
Максимальное значение max_value int нет нет Обязателен если тип: 1 — Счетчик;
Размер size enum да нет Обязателен если тип: 2 — Селект; 3 — Мультиселект. Возможны следующие варианты ширины: 1- dynamic; 2 — small; 3 — half-width.
Тип счетчика counter_type enum да нет Возможны следующие типы счетчиков: 1 — Нет; 2 — Пост или рилс; 3 — История. По умолчанию 1. Не может быть 2 или 3, если “Тип” параметра шаблона не 1.
Тип рекомендации для предзаполненного значения pre_filled_value_recommendation_type enum да нет Возможны следующие типы рекомендации для предзаполненного значения: 1 — Нет; 2 — Увеличить до предзаполненного; 3 — Уменьшить до предзаполненного. По умолчанию 1.
Текст рекомендации recommendation_text varchar(255) нет нет Является переводимым.
Текст тултипа рекомендации recommendation_tooltip_text varchar(255) нет нет Является переводимым.
Описание description varchar(255) нет нет Является переводимым.
Индексы Параметры
Уникальный индекс template_section_id, position

2.1.4 Параметры варианта параметра кампании(parameters_options)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id serial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор параметра кампании template_parameter_id int нет нет
Наименование title varchar(255) да нет Является переводимым.
Порядковый номер position smallint да нет
Иконка icon_id bigint нет нет
Индексы Параметры
Уникальный индекс template_parameter_id, position

3. Коллаборация

Коллаборацией является процесс сотрудничества между Инфлюэнсером и Бизнесом в рамках определенной Кампании.

07_3_1 Статусная модель коллаборации

Статус Описание Следующий статус
Новая Устанавливается: При создании Коллаборации, инфлюэнсером; При повторном запросе на Коллаборацию, если Коллаборация была отменена инфлюэнсером; При отмене отклонения Коллаборации представителем бизнеса. Подтверждена Отклонена; Завершена; Активная; Отменена.
Подтверждена Устанавливается при подтверждении Коллаборации представителем бизнеса. Активная; Отклонена; Завершена; Отменена.
Активная Устанавливается при указании периода проведения Коллаборации представителем бизнеса. Завершена; Отклонена; Отменена.
Завершена Устанавливается при подтверждении выполнения Коллаборации представителем бизнеса. Активная.
Отклонена Устанавливается при отклонении Коллаборации представителем бизнеса. Новая.
Отменена Устанавливается при отмене Коллаборации инфлюэнсером. Новая.

FR_07_3_2
Для “Коллаборации” имеется “Статус коллаборации «Добавлен результат»”, если для данной “Коллаборации” значение параметров “Количество постов к загрузке” и “Количество сторис к загрузке” — 0 и:

  1. Если имеется “Ожидаемая дата загрузки постов” — к данной “Коллаборации” относится минимум один не удалённый “Пост коллаборации” “Вида” “Пост или рилс”, для которого имеется “Загруженная статистика”;
  2. Если имеется “Ожидаемая дата загрузки сторис” — к данной “Коллаборации” относится минимум один не удалённый “Пост коллаборации” “Вида” “История”, для которого имеется “Загруженная статистика”;
  3. Если не имеется “Ожидаемой даты загрузки постов” и “Ожидаемой даты загрузки сторис” — к данной “Коллаборации” относится минимум один не удалённый “Пост коллаборации”.

FR_07_3_3
Для “Поста коллаборации” имеется “Загруженная статистика”, если для данного “Поста коллаборации”:

  1. Имеется минимум один “Файл поста коллаборации” “Типа” “Статистика”;

или

  1. Имеется значение параметра “Охват”.

3.1 Данные коллаборации

3.1.1 Параметры коллаборации(collaborations)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор кампании campaign_uuid uuid да нет
Идентификатор аккаунта инфлюэнсера account_id bigint да нет
Статус status enum да нет Возможны следующие статусы: 1 — Новая; 2 — Подтверждена; 3 — Активная; 4 — Завершена; 5 — Отклонена; 6 — Отменена.
Даты коллаборации collab_dates json нет нет Структура данных “3.1.1_1 Даты коллаборации”
Сопроводительное сообщение accompanying_message text да нет
Статус возможности загрузки поста is_post_upload_allowed boolean да нет По умолчанию false.
Количество постов к загрузке required_posts_count smallint да нет По умолчанию 0.
Количество сторис к загрузке required_stories_count smallint да нет По умолчанию 0.
Ожидаемая дата загрузки постов required_posts_upload_at timestamp нет нет
Ожидаемая дата загрузки сторис required_stories_upload_at timestamp нет нет
Индексы Параметры
Уникальный индекс campaign_id, account_id

3.1.1_1 Даты коллаборации

Параметр “Даты коллаборации” предназначен для хранения структуры данных в формате JSON:

Параметр Описание Значение
date_from Дата начала Строка которая содержит дату и время в одном из форматов: “YYYY-MM-DD”; “YYYY-MM-DDTHH:mm:ss”.
date_to Дата окончания Строка которая содержит дату и время в одном из форматов: “YYYY-MM-DD”; “YYYY-MM-DDTHH:mm:ss”.

3.1.2 Параметры статуса коллаборации(collaboration_statuses)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Идентификатор коллаборации collaboration_id bigint да нет
Идентификатор пользователя user_id bigint нет нет Пользователь который инициировал изменение статуса.
Статус status smallint да нет
Предыдущий статус previos_status smallint да нет

3.1.3 Параметры просмотра коллаборации(collaboration_views)

Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Идентификатор коллаборации collaboration_id bigint да нет
Идентификатор бизнес представителя user_id bigint да нет

3.2 CRUD Коллаборации

07_3.2_1 Процедура создания запроса на Коллаборацию

API: POST /private/campaigns/{id}/apply

  1. Клиентской частью сервиса выполняется запрос “Create collaboration”:
  2. С параметрами:
    1. campaign_id;
  3. С телом запроса:
    1. accompanying_message.
  4. Если “Роль” пользователя, который выполнил запрос:
  5. “business_representative”, на запрос “Create collaboration” возвращается ошибка “0701”;
  6. Не “business_representative” и:
    1. В теле запроса не имеется одного из обязательных параметров на запрос “Create collaboration” возвращается ошибка “0702”;
    2. В теле запроса имеются все обязательные параметры и для пользователя, который инициировал данную процедуру:
      1. Не имеется “Доступного отклика”, на запрос “Create collaboration” возвращается ошибка “0739”;
      2. Имеется “Доступный отклик”, и к Кампании, которая указана в запросе:
        1. Относится Коллаборация, ”Идентификатор аккаунта инфлюэнсера” которой, соответствует значению параметра “account_id”, который был указан в запросе, на запрос “Create collaboration” возвращается ошибка “0703”;
        2. Не относится Коллаборация, ”Идентификатор аккаунта инфлюэнсера” которой, соответствует значению параметра “account_id”, который был указан в запросе выполняется этап “3” данной процедуры.
  7. Выполняется:
  8. Создание Коллаборации с параметрами:
    1. Дата создания — согласно текущий дате;
    2. Идентификатор кампании — согласно значению параметра “campaign_id”, который был указан в запросе;
    3. Идентификатор аккаунта инфлюэнсера — согласно значению параметра “account_id”, который был указан в запросе.
    4. Статус — Новая;
    5. Сопроводительное сообщение — согласно значению параметра “accompanying_message”, который был указан в запросе.
  9. Если не имеется другой “Коллаборации”, которая относится к одному из “Аккаунтов инфлюэнсера”, которые относятся к тому же “Пользователю”, к которому относится “Аккаунт инфлюэнсера”, к которому относится “Коллаборация” которая была создана на этапе “3_a” данной процедуры, в очередь “Запросы к сервису Trackdesk” добавляется сообщение “Конверсия пользователя” с параметрами:
    1. Email пользователя — “Email пользователя” который инициировал данную процедуру;
    2. Тип — freetrial.
  10. Выполняется добавление сообщения в очередь “Отправки событий в Make” с параметрами:
    1. event_type — Создание коллаборации;
    2. entity_id — Идентификатор коллаборации которая была создана на этапе “3_a” данной процедуры.
  11. Для каждого “Представителя бизнеса”, который относится к “Коллаборации” которая был создана на этапе “3_a” данной процедуры выполняется и для которого имеется подключение к веб-сокету:
    1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
      1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации, которая была создана на этапе “3_a” данной процедуры;
      2. Пользователь — Идентификатор пользователя для которого выполняется “3_d” данной процедуры;
      3. Тип — Сообщение.
    2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
      1. type — “messages_counters_changed”;
    3. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
  12. Создание “Сообщения коллаборации” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор коллаборации — Идентификатор коллаборации, которая была создана на этапе “3_а” данной процедуры;
    3. Тип — Системное;
    4. Идентификатор шаблона — 19;
    5. Инициатор — “Инфлюэнсер”;
    6. Свойство доступности — Инфлюэнсер.
  13. “02_2.5_1 Процедура создания и обновления сессии пользователя” с параметрами:
    1. session_id — “X-Session-Id”, который был указан в заголовке запроса;
    2. user_id — Идентификатор пользователя который инициировал данную процедуру;
    3. action — Создание коллаборации.
  14. Выполняется создание “Сообщения коллаборации” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор коллаборации — Идентификатор коллаборации, которая была создана на этапе “3_a” данной процедуры;
    3. Тип — Системное;
    4. Идентификатор шаблона — 21;
    5. Инициатор — Инфлюэнсер;
    6. Свойство доступности — Представитель бизнеса.
  15. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
    1. template_id — New collaboration application;
    2. collaboration_id — “Идентификатор коллаборации”, которая была создана на этапе “3_a” данной процедуры;
  16. Выполняется “07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса” с параметрами:
    1. Идентификатор бизнеса — Идентификатор бизнеса, который относится к “Кампании” для которой инициирована данная процедура.
  17. Для каждого “Представителя бизнеса”, который относится к “Кампании” для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету выполняется:
    1. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
      1. type — “collaboration_created”;
      2. data[ ].active_collaborations_left — Количество доступных откликов.
  18. Выполняется “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера” с параметрами:
    1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который инициировал данную процедуру.
  19. Если результат выполнения “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера”, которая была выполнена на этапе “3_k” данной процедуры, содержит минимум один “Долг”, выполняется “02_3.2_11 Процедура установки ограничения откликов инфлюэнсера” с параметрами:
    1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который инициировал данную процедуру;
    2. free_active_collabs — 0.
  20. На запрос “Create collaboration” возвращается информация об успешном создании Коллаборации с параметром “has_pending_content_requirements” — true, если результат выполнения “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера”, которая была выполнена на этапе “3_k” данной процедуры, содержит минимум один “Долг”.

07_3.2_1.1 Ошибки при выполнении процедуры 07_3.2_1

Код ошибки Этап Локаль Текст ошибки
0701 2_a en “Businesses cannot submit collaboration requests, please reload the page (code: 0701)”
es "Los negocios no pueden enviar solicitudes de colaboración, recarga la página (código: 0701)"
pt “As empresas não podem apresentar pedidos de colaboração, recarregue a página (código: 0701)”
de "Businesses können keine Zusammenarbeitsanfragen stellen, bitte lade die Seite neu (Code: 0701)"
0702 2_b_i en “Please fill in all required fields and try again (code: 0702)”
es "Rellena todos los campos obligatorios e inténtalo de nuevo (código: 0702)"
pt “Preencha todos os campos obrigatórios e tente novamente (código: 0702)”
de "Bitte fülle alle Pflichtfelder aus und versuche es erneut (Code: 0702)"
0703 2_b_ii_2_a en “The collaboration has already been created, please reload the page (code: 0703)”
es "La colaboración ya se ha creado, recarga la página (código: 0703)"
pt “A colaboração já foi criada, recarregue a página (código: 0703)”
de "Die Zusammenarbeit wurde bereits erstellt, bitte lade die Seite neu (Code: 0703)"
0739 2_b_ii_1 en "You've reached your response limit. If you think this is a mistake, please contact support (code: 0739)"
es "Has alcanzado tu límite de respuestas. Si crees que es un error, contacta con soporte (código: 0739)"
pt "Você atingiu seu limite de respostas. Se acha que isso é um erro, entre em contato com o suporte (código: 0739)"
de "Du hast dein Antwortlimit erreicht. Wenn du denkst, dass dies ein Fehler ist, wende dich bitte an den Support (Code: 0739)"
07_3.2_2 Процедура выполнения запроса на изменение статуса коллаборации

API: POST /private/collaborations/{id}/reject · POST /private/collaborations/{id}/cancel_rejection · POST /private/collaborations/{id}/confirm · POST /private/collaborations/{id}/complete · POST /private/collaborations/{id}/cancel · POST /private/collaborations/{id}/reapply · POST /private/collaborations/{id}/reopen

  1. Клиентской частью сервиса выполняется один из запросов:
  2. “Confirm collaboration”;
  3. “Complete collaboration”;
  4. “Reject collaboration”;
  5. “Cancel collaboration rejection”;
  6. “Cancel collaboration”;
  7. “Reopen collaboration”;
  8. “Reapply collaboration”.
  9. Выполняется “07_3.2_2.1 Проверка возможности изменения статуса коллабораци”.
  10. Если “07_3.2_2.1 Проверка возможности изменения статуса коллабораци” не выполнена на запрос, который инициировал выполнение данной процедуры,возвращается информация об ошибке по причине которой проверка не была выполнена. Дальнейшие этапы процедуры не выполняются.
  11. Если “07_3.2_2.1 Проверка возможности изменения статуса коллабораци” выполнена успешно, выполняется “07_3.2_3 Процедура изменения статуса коллаборации” с параметрами:
    1. Коллаборация — идентификатор коллаборации для которой была инициирована данная процедура;
    2. Статус — статус который был указан пользователем при инициации запроса;
    3. Пользователь — идентификатор пользователя который инициировал запрос;
    4. Дата окончания — “end_date” который был указан при инициации данной процедуры;
    5. Инициатор:
      1. Если инициацию данной процедуры выполнил:
        1. “Представитель бизнеса” — Представитель бизнеса;
        2. “Инфлюэнсер” — Инфлюэнсер.
  12. Если “07_3.2_3 Процедура изменения статуса коллаборации” не выполнена, на запрос, который инициировал выполнение данной процедуры, возвращается информация об ошибке по причине которой проверка не была выполнена. Дальнейшие этапы процедуры не выполняются.
  13. Если “07_3.2_3 Процедура изменения статуса коллаборации” выполнена успешно:
      1. Для каждого “Представителя бизнеса”:
        1. Который относится к “Коллаборации”, для которой было создано сообщение при выполнении “07_3.2_3 Процедура изменения статуса коллаборации;
        2. Для которого имеется подключение к веб-сокету.

      выполняется:

      1. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
         1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
         2. Пользователь — Идентификатор пользователя для которого выполняется “2\_b\_i\_1” данной процедуры;  
         3. Тип — Статус.  
      2. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Представитель бизнеса”](05-business.md#3.1-параметры-представителя-бизнеса(business_representatives))}” с параметрами:  
         1. type — “messages\_counters\_changed”;  
         2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
      
      1. Для “Инфлюэнсера”:
        1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении “07_3.2_3 Процедура изменения статуса коллаборации”;
        2. Для которого имеется подключение к веб-сокету.

      выполняется:

      1. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
         1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
         2. Пользователь — Идентификатор пользователя для которого выполняется “2\_b\_i\_1” данной процедуры;  
         3. Тип — Статус.  
      2. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Аккаунт”](02-user.md#3.1.1-параметры-аккаунта-пользователя(accounts))}” с параметрами:  
         4. type — “messages\_counters\_changed”;  
         5. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
      
      1. Для каждого “Представителя бизнеса”, который относится к “Коллаборации”, статус которой был изменен на этапе “4_b” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации” и для которого имеется подключение к веб-сокету выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “4_b” данной процедуры;
        4. data[ ].new_status — Статус, который был указан при инициации данной процедуры;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
      2. Для “Инфлюэнсера”, который относится к “Коллаборации”, статус которой был изменен на этапе “4_b” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “4_b” данной процедуры;
        4. data[ ].new_status — Статус, который был указан при инициации данной процедуры;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
        7. Если данная процедура была инициирована запросом “Reapply collaboration”:
      3. Выполняется “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера” с параметрами:
        1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который инициировал данную процедуру.
      4. Если результат выполнения “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера”, которая была выполнена на этапе “4_b_ii_1” данной процедуры, содержит минимум один “Долг”, выполняется “02_3.2_11 Процедура установки ограничения откликов инфлюэнсера” с параметрами:
        1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который инициировал данную процедуру;
        2. free_active_collabs — 0.
        3. На запрос, который инициировал выполнение данной процедуры, возвращается информация об успешном изменении “Статуса” коллаборации. На запрос “Reapply collaboration” возвращается информация о “Кампании”, к которой относится “Коллаборация”, для которой инициирована данная процедура, в том же составе, в котором она возвращается на запрос “Create collaboration”, с параметром “has_pending_content_requirements” — true, если результат выполнения “07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера”, которая была выполнена на этапе “4_b_ii_1” данной процедуры, содержит минимум один “Долг”.
07_3.2_2.1 Проверка возможности изменения статуса коллаборации
  1. Выполняется проверки наличия доступной коллаборации. Если для “Пользователя”, который инициировал выполнение данной процедуры:
  2. Не имеется “Доступной коллаборация” проверка возможности изменения статуса коллабораци является не выполненной. Дальнейшие этапы проверки не выполняются;
  3. Имеется “Доступная коллаборация” выполняется этап “2” данной процедуры.
  4. Выполняется проверка существования коллабораци. Если:
  5. Не имеется Коллаборации, “Идентификатор” которой соответствует “Идентификатору коллаборации”, который был указан при выполнении запроса на изменение статуса коллаборации, проверка возможности изменения статуса коллабораци является не выполненной. Дальнейшие этапы проверки не выполняются;
  6. Если имеется Коллаборация, Идентификатор которой соответствует, “Идентификатору коллаборации” который был указан при инициации выполняется этап “3” данной проверки.
  7. Выполняется проверка возможности изменения ”Статуса” коллабораци пользователем который инициировал запрос на изменение ”Статуса” коллабораци может быть изменен если:
  8. “Роль” пользователя, который выполнил запрос “influencer” и “Статус” коллаборации должен быть изменен на:
    1. “Отменена”;
    2. “Новая”.
  9. “Роль” пользователя, который выполнил запрос “business_representative” и “Статус” коллаборации должен быть изменен на:
    1. “Подтверждена”;
    2. “Запланирована”
    3. “Завершена”;
    4. “Отклонена”
    5. “Новая”.
  10. “Роль” пользователя, который выполнил запрос “support” и “Статус” коллаборации должен быть изменен на:
    1. Подтверждена”;
    2. “Запланирована”
    3. “Завершена”;
    4. “Отклонена”
    5. “Новая”;
    6. “Отменена”.
  11. Выполняется проверка возможности изменения ”Статуса” коллаборации относительно текущего “Статуса” коллаборации. ”Статус” коллабораци может быть изменен если статус, который должен быть установлен для Коллаборации соответствует “07_3_1 Статусной модели коллаборации”.
  12. Выполняется проверка возможности изменения ”Статуса” коллаборации относительно “Статуса верификации” аккаунта инфлюэнсера. ”Статус” коллабораци может быть изменен если:
  13. “Статус” коллаборации не “Новая”;
  14. “Статуса верификации” аккаунта инфлюэнсера “Verified”.

07_3.2_2.1.1 Ошибки при выполнении проверки 07_3.2_2.1

Код ошибки Этап Локаль Текст ошибки
0715 1_a en “There is no available collaboration (code: 0715)”
es "No hay una colaboración disponible (código: 0715)"
pt "Não há uma colaboração disponível (código: 0715)"
de "Es ist keine verfügbare Zusammenarbeit vorhanden (Code: 0715)"
0704 2 en “Collaboration not found, please reload the page (code: 0704)”
es "Colaboración no encontrada, por favor recargue la página (código: 0704)"
pt "Colaboração não encontrada, por favor recarregue a página (código: 0704)"
fr
0705 3 en “You cannot change collaboration status, please reload the page (code: 0705)”
es "No puede cambiar el estado de la colaboración, por favor recargue la página (código: 0705)"
pt Não pode alterar o estado da colaboração, por favor recarregue a página (código: 0705)"
fr
0706 4 en “Сollaboration status cannot be changed. Сollaboration status is {Name of the current status of the collaboration}, please reload the page (code: 0706)”
es "No se puede cambiar el estado de la colaboración. El estado de la colaboración es {Nombre del estado actual de la colaboración}, por favor recargue la página (código: 0706)"
pt "Não é possível alterar o estado da colaboração. O estado da colaboração é {Nome do estado atual da colaboração}, por favor recarregue a página (código: 0706)"
fr
0724 5 en “The influencer's account has not been verified (code: 0724)”
es "La cuenta del influencer no ha sido verificada (código: 0724)"
pt "A conta do influenciador não foi verificada (código: 0724)"
fr
07_3.2_3 Процедура изменения статуса коллаборации
  1. Выполняется инициация создания статуса коллаборации с параметрами:
  2. Коллаборация;
  3. Статус;
  4. Пользователь;
  5. Даты коллаборации;
  6. Дата окончания;
  7. Инициатор;
  8. Количество постов к загрузке;
  9. Количество сторис к загрузке;
  10. Ожидаемая дата загрузки постов;
  11. Ожидаемая дата загрузки сторис.
  12. Выполняется:
  13. Изменение параметров Коллаборации, для которой была инициирована данная процедура:
    1. Дата изменения — согласно текущий дате;
    2. Статус — согласно “Статусу” который был указан при инициации данной процедуры;
    3. Дата окончания — “Дата окончания” которая была указана при инициации данной процедуры;
    4. Дата начала — Если при инициации данной процедуры была указана “Дата окончания”и для “Коллаборации”:
      1. Не имеется “Даты начала” определяется как “Дата окончания” которая была указана при инициации данной процедуры;
      2. Имеется “Дата начала” и она позднее “Даты окончания” которая была указана при инициации данной процедуры — “Дата окончания” которая была указана при инициации данной процедуры.
    5. Количество постов к загрузке — согласно значению параметра “Количество постов к загрузке”, если он был указан при инициации данной процедуры;
    6. Количество сторис к загрузке — согласно значению параметра “Количество сторис к загрузке”, если он был указан при инициации данной процедуры;
    7. Ожидаемая дата загрузки постов — согласно значению параметра “Ожидаемая дата загрузки постов”, если он был указан при инициации данной процедуры;
    8. Ожидаемая дата загрузки сторис — согласно значению параметра “Ожидаемая дата загрузки сторис”, если он был указан при инициации данной процедуры.
  14. Создание “Статуса коллаборации” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор коллаборации — Идентификатор коллаборации для которой была инициирована данная процедура;
    3. Идентификатор пользователя — Идентификатор пользователя который инициировал выполнение данной процедуры;
    4. Статус — согласно “Статусу” который был указан при инициации данной процедуры;
    5. Предыдущий статус — Предыдущий статус коллаборации.
    1. Если “Статус” коллаборации изменяется на “Подтверждена”, выполняется:
      1. Создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициациирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 1;
        5. Параметры сообщения:
        6. influencer.full_name — “Полное имя” инфлюэнсера к которому относится “Аккаунт”, к которому относится “Коллаборация” для которой была инициирована данная процедура.
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Инфлюэнсер.
      2. Выполняется создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, которая была создана на этапе “3_a” данной процедуры;
        3. Тип — Системное;
        4. Идентификатор шаблона — 23;
        5. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        6. Свойство доступности — Представитель бизнеса.
      3. Создание “Уведомления” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор пользователя — Идентификатор пользователя, к которому относится “Аккаунт инфлюнсера”, к которому относится “Коллаборация” которая была изменена;
        3. Тип — email;
        4. Идентификатор динамического шаблона — 30;
        5. Параметры уведомления:
        6. “BusinessLocationName” : “Заголовок” локации, к которой относится “Кампания” к которой относится “Коллаборация” для которой выполняется создание уведомления;
        7. “ripplaCollaborationLink” : “https://rippla.com/collabs”.
        8. Статус — “new”;
        9. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры.
      4. Для “Уведомления” которое было создано на этапе “2_с_i_2” данной процедуры, в очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
        1. Идентификатор уведомления — идентификатор уведомления для которого выполняется добавление сообщения в очередь.
      5. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — Selected for collaboration;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
    2. Если “Статус” коллаборации изменяется на “Активная” и предыдущий статус коллаборации:
      1. Не “Завершена”, выполняется:
        1. Создание “Сообщения коллаборации” с параметрами:
        2. Дата создания — согласно текущей дате;
        3. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        4. Тип — Системное;
        5. Идентификатор шаблона — 2;
        6. Параметры сообщения:
          1. influencer.full_name — “Полное имя” инфлюэнсера к которому относится “Аккаунт”, к которому относится “Коллаборация” для которой была инициирована данная процедура;
          2. collaboration.collab_dates — согласно “Датам” коллаборации” которые были изменены на этапе “2_a” данной процедуры.
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Инфлюэнсер.
        9. Создание “Сообщения коллаборации” с параметрами:
        10. Дата создания — согласно текущей дате;
        11. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        12. Тип — Системное;
        13. Идентификатор шаблона — 24;
        14. Параметры сообщения:
          1. collaboration.collab_dates — согласно “Датам” коллаборации” которые были изменены на этапе “2_a” данной процедуры.
        15. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        16. Свойство доступности — Представитель бизнеса.
        17. Создание “Уведомления” с параметрами:
        18. Дата создания — согласно текущей дате;
        19. Идентификатор пользователя — Идентификатор пользователя, к которому относится “Аккаунт инфлюнсера”, к которому относится “Коллаборация” которая была изменена;
        20. Тип — email;
        21. Идентификатор динамического шаблона — 31;
        22. Параметры уведомления:
          1. “BusinessLocationName” : “Заголовок” локации, к которой относится “Кампания” к которой относится “Коллаборация” для которой выполняется создание уведомления;
          2. “CollaborationDates” : {Период проведения коллаборации} для которой выполняется создание уведомления. Возможны следующие форматы “Периода проведения кампании”:
            1. 1-10/01/2025 — если “Дата начала” и “Дата окончания” коллаборации в одном календарном месяце;
            2. 31/01/2025 — 10/02/2025 — если “Дата начала” и “Дата окончания” коллаборации не в одном календарном месяце.
          3. “ripplaCollaborationLink” : “https://rippla.com/collabs”.
        23. Статус — “new”.
        24. Для “Уведомления” которое было создано на этапе “2_с_iii_2” данной процедуры, в очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
        25. Идентификатор уведомления — идентификатор уведомления для которого выполняется добавление сообщения в очередь.
        26. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        27. template_id — Collaboration dates confirmed;
        28. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
      2. “Завершена”, выполняется:
        1. Создание “Сообщения коллаборации” с параметрами:
        2. Дата создания — согласно текущей дате;
        3. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        4. Тип — Системное;
        5. Параметры сообщения:
          1. collaboration.collab_dates — согласно “Датам” коллаборации, для которой инициирована данная процедура.
        6. Идентификатор шаблона — 28;
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Инфлюэнсер.
        9. Этап “3” данной процедуры.
    3. Если “Статус” коллаборации изменяется на “Завершена”:
      1. Выполняется создание“Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 4;
        5. Параметры сообщения:
        6. business_representative.full_name — “Полное имя” пользователя который инициировал выполнение данной процедуры.
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Инфлюэнсер.
      2. Выполняется создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 25;
        5. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        6. Свойство доступности — Представитель бизнеса.
      3. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — Collaboration completed — upload content;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
    4. Если “Статус” коллаборации изменяется на “Отклонена”, выполняется:
      1. Создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 5;
        5. Параметры сообщения:
        6. business_representative.full_name — “Полное имя” пользователя который инициировал выполнение данной процедуры.
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Инфлюэнсер.
      2. Создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 27;
        5. Параметры сообщения:
        6. business_representative.full_name — “Полное имя” пользователя который инициировал выполнение данной процедуры.
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Представитель бизнеса.
      3. Создание “Уведомления” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор пользователя — Идентификатор пользователя, к которому относится “Аккаунт инфлюнсера”, к которому относится “Коллаборация” которая была изменена;
        3. Тип — email;
        4. Идентификатор динамического шаблона — 32;
        5. Параметры уведомления:
        6. “BusinessLocationName” : “Заголовок” локации, к которой относится “Кампания” к которой относится “Коллаборация” для которой выполняется создание уведомления;
        7. “ripplaOffersLink” : “https://rippla.com/offers”.
        8. Статус — “new”.
      4. Для “Уведомления” которое было создано на этапе “2_с_iv_2” данной процедуры, в очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
        1. Идентификатор уведомления — идентификатор уведомления для которого выполняется добавление сообщения в очередь.
      5. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — Application not selected;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
    5. Если “Статус” коллаборации изменяется на “Новая”, а предыдущий “Статус” коллаборации “Отклонена”, выполняется:
      1. Cоздание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 6;
        5. Параметры сообщения:
        6. business_representative.full_name — “Полное имя” пользователя который инициировал выполнение данной процедуры.
        7. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        8. Свойство доступности — Инфлюэнсер.
    6. Если “Статус” коллаборации изменяется на “Отменена”, выполняется:
      1. Создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 7;
        5. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        6. Свойство доступности — Представитель бизнеса.
      2. Создание “Сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        3. Тип — Системное;
        4. Идентификатор шаблона — 20;
        5. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        6. Свойство доступности — Инфлюэнсер.
      3. Для каждого “Пользователя”:

        1. Для которого имеется “Бизнес представитель”, который относится к тому же “Бизнесу”, к которому относится “Кампания”, к которой относится “Коллаборация” которая была изменена;
        2. Для которого “Статус блокировки” — false;

        выполняется создание “Уведомления” с параметрами:

        1. Дата создания — согласно текущей дате;
        2. Идентификатор пользователя — Идентификатор пользователя, для которого выполняется создание уведомления;
        3. Тип — email;
        4. Идентификатор динамического шаблона — 16;
        5. Параметры уведомления:
        6. “ripplaInfluencersLink” : “https://rippla.com/influencers”;
        7. “InfluencerUserFullName” : “Полное имя пользователя” к которому относится “Аккаунт”, к которому относится “Коллаборация” которая была изменена.
        8. Статус — “new”.
          4. Для каждого “Уведомления” которое было создано на этапе “2” данной процедуры, в очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
        9. Идентификатор уведомления — идентификатор уведомления которое было создано на этапе “2” данной процедуры.
          5. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        10. template_id — Application withdrawn by creator;
        11. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
          1. Если “Статус” коллаборации изменяется на “Новая”, а предыдущий “Статус” коллаборации “Отменена”, выполняется:
            1. Cоздание “Сообщения коллаборации” с параметрами:
        12. Дата создания — согласно текущей дате;
        13. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
        14. Тип — Системное;
        15. Идентификатор шаблона — 8;
        16. Параметры сообщения:
        17. influencer.full_name — “Полное имя” инфлюэнсера к которому относится “Аккаунт”, к которому относится “Коллаборация” для которой была инициирована данная процедура.
        18. Инициатор — Согласно “Инициатору”, который был указан при инициации данной процедуры;
        19. Свойство доступности — Представитель бизнеса.
          1. Если “Коллаборация”, для которой инициирована данная процедуры относится к “Бизнесу”, для которого “Возможность создания кампании” — false, выполняется “05_2.3_5 Процедура проверки возможности снятия ограничения с бизнеса” с параметрами:
            1. Идентификатор бизнеса — Идентификатор бизнеса, к которому относится “Коллаборация” для которой инициирована данная процедура.
          2. Если “05_2.3_5 Проверка возможности снятия ограничения с бизнеса” выполнена успешно, выполняется “05_2.3_4 Процедура снятие ограничения с бизнеса”.
        20. Выполняется “07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса” с параметрами:
          1. Идентификатор бизнеса — Идентификатор бизнеса, который относится к “Кампании” для которой инициирована данная процедура.
        21. Если при изменении “Коллаборации” были изменены “Даты коллаборации” выполняется:
        22. Создание “Уведомления” с параметрами:
          1. Дата создания — согласно текущей дате;
          2. Идентификатор пользователя — Идентификатор пользователя, к которому относится “Аккаунт инфлюнсера”, к которому относится “Коллаборация” которая была изменена;
          3. Тип — email;
          4. Идентификатор динамического шаблона — 33;
          5. Параметры уведомления:
            1. “CollaborationDates” : {Период проведения коллаборации} для которой выполняется создание уведомления. Возможны следующие форматы “Периода проведения кампании”:
        23. 1-10/01/2025 — если “Дата начала” и “Дата окончания” коллаборации в одном календарном месяце;
        24. 31/01/2025 — 10/02/2025 — если “Дата начала” и “Дата окончания” коллаборации не в одном календарном месяце.
          2. “ripplaCollaborationLink” : “https://rippla.com/collabs”.
          1. Статус — “new”.
        25. Для “Уведомления” которое было создано на этапе “3_a” данной процедуры, в очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
          1. Идентификатор уведомления — идентификатор уведомления для которого выполняется добавление сообщения в очередь.
        26. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
        27. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “2” данной процедуры.
        28. Для каждого “Представителя бизнеса”:
          1. Который относится к “Коллаборации”, для которой было создано сообщение при выполнении этапа “2” данной процедуры;
            или
            и
          2. Для которого имеется подключение к веб-сокету.

выполняется:

  1. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
     1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
     2. Пользователь — Идентификатор пользователя для которого выполняется “5\_a” данной процедуры;  
     3. Тип — Сообщение.  
  1. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Представитель бизнеса”](05-business.md#3.1-параметры-представителя-бизнеса(business_representatives))}” с параметрами:  
     1. type — “messages\_counters\_changed”;  
     2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
  1. Для “Инфлюэнсера”:
    1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении при выполнении этапа “2” данной процедуры;
    2. Для которого имеется подключение к веб-сокету.

выполняется:

  1. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
     1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
     2. Пользователь — Идентификатор пользователя для которого выполняется “3\_b” данной процедуры;  
     3. Тип — Сообщение.  
  2. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Аккаунт”](02-user.md#3.1.1-параметры-аккаунта-пользователя(accounts))}” с параметрами:  
     1. type — “messages\_counters\_changed”;  
     2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
  1. Если при инициации данной процедуры был указан параметр “Количество постов к загрузке” или “Количество сторис к загрузке” и для “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура, имеется “Персональное количество бесплатных откликов”:
  2. Выполняется “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” с параметрами:
    1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, для которой инициирована данная процедура.
  3. Если “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” выполнена успешно, выполняется “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” с параметрами:
    1. user_id — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура.
  4. Выполняется добавление сообщения в очередь “Отправки событий в Make” с параметрами:
  5. event_type — Изменение статуса коллаборации;
  6. entity_id — Идентификатор коллаборации, для которой была инициирована данная процедура.
07_3.2_4 Процедура просмотра Коллаборации бизнес представителем

API: POST /private/collaborations/{id}/message_views

  1. Клиентской частью сервиса выполняется запрос “Get collaboration”.
  2. Если для Коллаборации, для которой была инициирована данная процедура, и Бизнес представителя, к которому относится Пользователь, который инициировал выполнение данной процедуры:
  3. Не имеется “Просмотра коллаборации”, выполняется:

    1. Создание “Просмотра коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации для которой была инициирована данная процедура;
      3. Идентификатор бизнес представителя — Идентификатор бизнес представителя, к которому относится Пользователь, который инициировал выполнение данной процедуры.
    2. Для каждого “Представителя бизнеса”:
      1. Который относится к “Коллаборации”, для которой был создан просмотр коллаборации на этапе “2_a” данной процедуры;
      2. Для которого имеется подключение к веб-сокету.

    выполняется:

     1. 07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой был создан просмотр коллаборации на этапе “2\_a” данной процедуры;  
        2. Пользователь — Идентификатор пользователя для который выполнил инициацию данной процедуры;  
        3. Тип — Сообщение.  
     2. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Представитель бизнеса”](05-business.md#3.1-параметры-представителя-бизнеса(business_representatives))}” с параметрами:  
        1. type — “messages\_counters\_changed”;  
        2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
    
      1. Если “Коллаборация”, для которой выполняется этап “2_a” данной процедуры относится к “Бизнесу”, для которого “Возможность создания кампании” — false, выполняется “05_2.3_5 Процедура проверки возможности снятия ограничения с бизнеса” с параметрами:
        1. Идентификатор бизнеса — Идентификатор бизнеса, к которому относится “Коллаборация” для которой инициирована данная процедура.
      2. Если “05_2.3_5 Проверка возможности снятия ограничения с бизнеса” выполнена успешно, выполняется “05_2.3_4 Процедура снятие ограничения с бизнеса”.
    1. “02_2.5_1 Процедура создания и обновления сессии пользователя” с параметрами:
      1. session_id — “X-Session-Id”, который был указан в заголовке запроса;
      2. user_id — Идентификатор пользователя который инициировал данную процедуру;
      3. action — Просмотр коллаборации.
    2. Этап “3” данной процедуры.
    3. Имеется “Просмотр коллаборации” выполняется этап “3” данной процедуры.
    4. На запрос “Get collaboration” возвращается информация о Коллаборации.
07_3.2_5 Процедура изменения Коллаборации

API: PATCH /private/collaborations/{id}

  1. Клиентской частью сервиса выполняется запрос “Edit collaboration” с параметрами:
  2. dates — объект, который содержит структуру данных “3.1.1_1 Даты коллаборации”.
  3. Если “Статус” коллаборации “Подтверждена” или “Завершена” и при инициации процедуры был указан объект “dates” выполняется:
    1. “07_3.2_2.1 Проверка возможности изменения статуса коллабораци”.
      1. Если “07_3.2_2.1 Проверка возможности изменения статуса коллабораци” не выполнена на запрос, который инициировал выполнение данной процедуры, возвращается информация об ошибке по причине которой проверка не была выполнена. Дальнейшие этапы процедуры не выполняются;
      2. Если “07_3.2_2.1 Проверка возможности изменения статуса коллабораци” выполнена успешно, выполняется “07_3.2_3 Процедура изменения статуса коллаборации” с параметрами:
        1. Коллаборация — идентификатор коллаборации для которой была инициирована данная процедура;
        2. Статус — Активная;
        3. Пользователь — идентификатор пользователя который инициировал запрос.
    2. Этап “3” данной процедуры.
  4. Выполняется:
  5. Изменение параметров Коллаборации:
    1. Дата обновления — согласно текущей дате;
    2. Даты коллаборации — согласно объекту “dates”, который был указан при инициации процедуры.
  6. Если при изменении параметров Коллаборации, были изменены “Даты коллаборации” и при выполнении этапа “2” данной процедуры не был изменен “Статус” коллаборации выполняется:
    1. Создание “Сообщения коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации, для который была инициациирована данная процедура;
      3. Тип — Системное;
      4. Идентификатор шаблона — 3;
      5. Параметры сообщения:
        1. collaboration.collab_dates — согласно “Датам” коллаборации” которые были изменены на этапе “3_a” данной процедуры.
      6. Инициатор — Представитель бизнеса;
      7. Свойство доступности — Все.
  7. Выполняется “07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса” с параметрами:
    1. Идентификатор бизнеса — Идентификатор бизнеса, к которой относится “Коллаборация” для которой инициирована данная процедура.
  8. Для каждого “Представителя бизнеса”, который относится к “Коллаборации”, статус которой был изменен на этапе “2_a_i_2” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
    1. type — “collaboration_status_changed”;
    2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
    3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “2_a_i_2” данной процедуры;
    4. data[ ].new_status — Статус коллаборации после выполнения этапа “2_a_i_2” данной процедуры;
    5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
    6. data[ ].collaborations_left — Количество доступных коллабораций.
  9. Для “Инфлюэнсера”, который относится к “Коллаборации”, статус которой был изменен на этапе “2_a_i_2” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
    1. type — “collaboration_status_changed”;
    2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
    3. data[ ].previous_status — Статус коллаборации который был до выполнения этапа “2_a_i_2” данной процедуры;
    4. data[ ].new_status — Статус коллаборации после выполнения этапа “2_a_i_2” данной процедуры;
    5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
    6. data[ ].collaborations_left — Количество доступных коллабораций.
  10. Для “Инфлюэнсера”:
    1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении при выполнении этапа “2_a_i_2” или “3_b_i” данной процедуры;
    2. Для которого имеется подключение к веб-сокету.

выполняется:

  3. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
     1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
     2. Пользователь — Идентификатор пользователя для которого выполняется “3\_b” данной процедуры;  
     3. Тип — Статус.  
  4. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Аккаунт”](02-user.md#3.1.1-параметры-аккаунта-пользователя(accounts))}” с параметрами:  
     1. type — “messages\_counters\_changed”;  
     2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
  1. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
  2. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “3” данной процедуры.
  3. На запрос “Edit collaboration” возвращается информация об успешном выполнении запроса.
07_3.2_10 Процедура выполнения запроса на изменения Коллаборации внешним методом

API: PATCH /collaborations/{id}

  1. Инициируется выполнение запроса “Update collaboration”:
  2. С параметрами:
    1. id — Идентификатор коллаборации, для которой инициирована данная процедура.
  3. С телом запроса:
    1. dates — Объект, который содержит информацию о датах коллаборации:
      1. start_date — Дата начала коллаборации;
      2. end_date — Дата окончания коллаборации;
    2. status — Статус коллаборации;
    3. accompanying_message — Сопроводительное сообщение;
    4. apply_status_side_effects — Статус применения побочных эффектов статуса;
    5. posts_count — Количество постов, которое необходимо загрузить;
    6. stories_count — Количество сторис, которое необходимо загрузить;
    7. posts_upload_at — Ожидаемая дата загрузки постов;
    8. stories_upload_at — Ожидаемая дата загрузки сторис.
  4. Выполняется “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”:
    1. id — “id”, который был указан при инициации данной процедуры;
    2. dates — Объект, который содержит информацию о датах коллаборации:
      1. start_date — “start_date”, который был указан при инициации данной процедуры;
      2. end_date — “end_date”, который был указан при инициации данной процедуры;
    3. status — “status”, который был указан при инициации данной процедуры;
    4. apply_status_side_effects — “apply_status_side_effects”, который был указан при инициации данной процедуры;
    5. posts_count — “posts_count”, который был указан при инициации данной процедуры;
    6. stories_count — “stories_count”, который был указан при инициации данной процедуры;
    7. posts_upload_at — “posts_upload_at”, который был указан при инициации данной процедуры;
    8. stories_upload_at — “stories_upload_at”, который был указан при инициации данной процедуры.
  5. Выполняется изменение “Сопроводительного сообщение” коллаборации, для которой инициирована данная процедура — “accompanying_message”, который был указан при инициации данной процедуры.
  6. На запрос “Update collaboration” возвращается информация об успешном выполнении запроса.
07_3.2_11 Процедура создание Коллаборации внешним методом

API: POST /collaborations

  1. Инициируется выполнение запроса “Create collaboration”:
  2. С телом запроса:
    1. account_id — Идентификатор аккаунта;
    2. campaign_id — Идентификатор кампании;
    3. dates — Объект, который содержит информацию о датах коллаборации:
      1. start_date — Дата начала коллаборации;
      2. end_date — Дата окончания коллаборации;
    4. status — Статус коллаборации;
    5. accompanying_message — Сопроводительное сообщение;
    6. apply_status_side_effects — Статус применения побочных эффектов статуса;
    7. posts_count — Количество постов, которое необходимо загрузить;
    8. stories_count — Количество сторис, которое необходимо загрузить;
    9. posts_upload_at — Ожидаемая дата загрузки постов;
    10. stories_upload_at — Ожидаемая дата загрузки сторис.
  3. Выполняется создание “Коллаборации” с параметрами:
  4. Идентификатор кампании — “campaign_id”, который был указан при инициации данной процедуры;
  5. Идентификатор аккаунта инфлюэнсера — “account_id”, который был указан при инициации данной процедуры;
  6. Сопроводительное сообщение — “accompanying_message”, которое было указано при инициации данной процедуры;
  7. Статус — “Новая”;
  8. Количество постов к загрузке — согласно значению параметра “posts_count”, если он был указан при инициации данной процедуры;
  9. Количество сторис к загрузке — согласно значению параметра “stories_count”, если он был указан при инициации данной процедуры;
  10. Ожидаемая дата загрузки постов — согласно значению параметра “posts_upload_at”, если он был указан при инициации данной процедуры;
  11. Ожидаемая дата загрузки сторис — согласно значению параметра “stories_upload_at”, если он был указан при инициации данной процедуры.
  12. Если при инициации данной процедуры:
  13. Был указан параметр “status” и его значение не “Новая”:
    1. Выполняется “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”:
      1. id — Идентификатор коллаборации, которая была создана на этапе “2” данной процедуры;
      2. dates — Объект, который содержит информацию о датах коллаборации:
        1. start_date — “start_date”, который был указан при инициации данной процедуры;
        2. end_date — “end_date”, который был указан при инициации данной процедуры;
      3. status — “status”, который был указан при инициации данной процедуры;
      4. apply_status_side_effects — “apply_status_side_effects”, который был указан при инициации данной процедуры.
  14. Не был указан параметр “status” и был указан параметр “dates”, выполняется:
    1. “07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом”:
      1. id — Идентификатор коллаборации, которая была создана на этапе “2” данной процедуры;
      2. dates — Объект, который содержит информацию о датах коллаборации:
        1. start_date — “start_date”, который был указан при инициации данной процедуры;
        2. end_date — “end_date”, который был указан при инициации данной процедуры.
  15. На запрос “Create collaboration” возвращается информация об успешном выполнении запроса.
07_3.2_12 Процедура изменения Коллаборации при вызове внешним методом
  1. Выполняется инициации данной процедуры с параметрами:
  2. id — Идентификатор коллаборации, для которой инициирована данная процедура;
  3. dates — Объект, который содержит информацию о датах коллаборации:
    1. start_date — Дата начала коллаборации;
    2. end_date — Дата окончания коллаборации;
  4. status — Статус коллаборации;
  5. apply_status_side_effects — Статус применения побочных эффектов статуса;
  6. posts_count — Количество постов, которое необходимо загрузить;
  7. stories_count — Количество сторис, которое необходимо загрузить;
  8. posts_upload_at — Ожидаемая дата загрузки постов;
  9. stories_upload_at — Ожидаемая дата загрузки сторис;
  10. Если при инициации данной процедуры:
    1. Был указан параметр “apply_status_side_effects” и его значение — true:
      1. Выполняется “07_3.2_3 Процедура изменения статуса коллаборации” с параметрами:
        1. Коллаборация — идентификатор коллаборации для которой была инициирована данная процедура;
        2. Статус — “status”, который был указан при инициации данной процедуры;
        3. Пользователь — если значение параметра “status”:
        4. “Подтверждена” / “Активная” / “Завершена” / “Отклонена” / “Новая” определяется как “Идентификатор пользователя” к которому относится “Представитель бизнеса”, который относится к “Бизнесу”, к которому относится “Локации”, которая относится к “Кампании”, к которой относится “Коллаборации”, для которой инициирована данная процедура.
        5. “Отменена” определяется как “Идентификатор пользователя”, к которому относится “Аккаунт инфлюнсера”, к которому относится “Коллаборация” для которой была инициирована данная процедура;
        6. Даты коллаборации — “dates”, если были указаны при инициации данной процедуры;
        7. Инициатор — Команда Rippla;
        8. Количество постов к загрузке — “posts_count”, который был указан при инициации данной процедуры;
        9. Количество сторис к загрузке — “stories_count”, который был указан при инициации данной процедуры;
        10. Ожидаемая дата загрузки постов — “posts_upload_at”, который был указан при инициации данной процедуры;
        11. Ожидаемая дата загрузки сторис — “stories_upload_at”, который был указан при инициации данной процедуры.
      2. Для каждого “Представителя бизнеса”, который относится к “Коллаборации”, статус которой был изменен на этапе “2_i_a_1” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “2_i_a_1” данной процедуры;
        4. data[ ].new_status — Статус, который был указан при инициации данной процедуры;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
      3. Для “Инфлюэнсера”, который относится к “Коллаборации”, статус которой был изменен на этапе “2_i_a_1” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “2_i_a_1” данной процедуры;
        4. data[ ].new_status — Статус, который был указан при инициации данной процедуры;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
    2. Не был указан параметр “apply_status_side_effects” или был указан и его значение false выполняется:
      1. Изменение параметров Коллаборации:
        1. Статус — “status”, который был указан при инициации данной процедуры;
        2. Дата обновления — согласно текущей дате;
        3. Даты коллаборации — согласно объекту “dates”, если он был указан при инициации процедуры;
        4. Дата окончания — “end_date” который был указан при инициации данной процедуры;
        5. Количество постов к загрузке — согласно значению параметра “posts_count”, если он был указан при инициации данной процедуры;
        6. Количество сторис к загрузке — согласно значению параметра “stories_count”, если он был указан при инициации данной процедуры;
        7. Ожидаемая дата загрузки постов — согласно значению параметра “posts_upload_at”, если он был указан при инициации данной процедуры;
        8. Ожидаемая дата загрузки сторис — согласно значению параметра “stories_upload_at”, если он был указан при инициации данной процедуры.
        1. Для каждого “Представителя бизнеса”, который относится к “Коллаборации”, статус которой был изменен на этапе “2_a_ii_1” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        2. type — “collaboration_status_changed”;
        3. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        4. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “2_a_ii_1” данной процедуры;
        5. data[ ].new_status — “status”, который был указан при инициации данной процедуры;
        6. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        7. data[ ].collaborations_left — Количество доступных коллабораций.
        8. Для “Инфлюэнсера”, который относится к “Коллаборации”, статус которой был изменен на этапе “2_a_ii_1” данной процедуры и к данной “Коллаборации” не относится ни один “Пост коллаборации и для которого имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        9. type — “collaboration_status_changed”;
        10. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        11. data[ ].previous_status — Статус коллаборации, который был до выполнения этапа “2_a_ii_1” данной процедуры;
        12. data[ ].new_status — “status”, который был указан при инициации данной процедуры;
        13. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        14. data[ ].collaborations_left — Количество доступных коллабораций.
      2. Если при изменении параметров Коллаборации, были изменены “Даты коллаборации” выполняется:
        1. Создание “Сообщения коллаборации” с параметрами:
        2. Дата создания — согласно текущей дате;
        3. Идентификатор коллаборации — Идентификатор коллаборации, для который была инициациирована данная процедура;
        4. Тип — Системное;
        5. Идентификатор шаблона — 3;
        6. Параметры сообщения:
          1. influencer.full_name — “Полное имя” инфлюэнсера к которому относится “Аккаунт”, к которому относится “Коллаборация” для которой была инициирована данная процедура;
          2. collaboration.collab_dates — согласно “Датам” коллаборации” которые были изменены на этапе “2_a_ii_1” данной процедуры.
        7. Инициатор — Команда Rippla;
        8. Свойство доступности — Все.
      3. Создание “Статуса коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации для которой была инициирована данная процедура;
        3. Статус — согласно “Статусу” который был указан при инициации данной процедуры;
        4. Предыдущий статус — Предыдущий статус коллаборации.
      4. Если при инициации данной процедуры был указан параметр “posts_count” или “stories_count” и для “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура, имеется “Персональное количество бесплатных откликов”:
        1. Выполняется “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” с параметрами:
        2. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, для которой инициирована данная процедура.
        3. Если “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” выполнена успешно, выполняется “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” с параметрами:
        4. user_id — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура.
  11. Если при изменении параметров Коллаборации был изменен “Статус” и для “Коллаборации” для которой инициирована данная процедура не имеется “Просмотра коллаборации”, выполняется создание “Просмотра коллаборации” с параметрами:
  12. Дата создания — согласно текущей дате;
  13. Идентификатор коллаборации — Идентификатор коллаборации для которой была инициирована данная процедура;
  14. Идентификатор бизнес представителя — Идентификатор бизнес представителя, который относится к “Бизнесу”, к которому относится “Локации”, которая относится к “Кампании”, к которой относится “Коллаборации”, для которой инициирована данная процедура.
  15. Для каждого “Представителя бизнеса”:
    1. Который относится к “Коллаборации”, для которой было создано сообщение при выполнении этапа “2” данной процедуры;
      или
    2. Который относится к “Коллаборации”, для которой был создан “Просмотр коллаборации” на этапе “3” данной процедуры;
      и
    3. Для которого имеется подключение к веб-сокету.

выполняется:

  2. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
     1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
     2. Пользователь — Идентификатор пользователя для которого выполняется “3\_a” данной процедуры;  
     3. Тип — Статус.  
  2. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Представитель бизнеса”](05-business.md#3.1-параметры-представителя-бизнеса(business_representatives))}” с параметрами:  
     3. type — “messages\_counters\_changed”;  
     4. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
  1. Для “Инфлюэнсера”:
    1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении при выполнении этапа “2” данной процедуры;
    2. Для которого имеется подключение к веб-сокету.

выполняется:

  5. “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
     1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
     2. Пользователь — Идентификатор пользователя для которого выполняется “3\_b” данной процедуры;  
     3. Тип — Статус.  
  6. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Аккаунт”](02-user.md#3.1.1-параметры-аккаунта-пользователя(accounts))}” с параметрами:  
     1. type — “messages\_counters\_changed”;  
     2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
  1. Если “Коллаборация”, для которой инициирована данная процедуры относится к “Бизнесу”, для которого “Возможность создания кампании” — false, выполняется “05_2.3_5 Процедура проверки возможности снятия ограничения с бизнеса” с параметрами:
    1. Идентификатор бизнеса — Идентификатор бизнеса, к которому относится “Коллаборация” для которой инициирована данная процедура.
  2. Если “05_2.3_5 Проверка возможности снятия ограничения с бизнеса” выполнена успешно, выполняется “05_2.3_4 Процедура снятие ограничения с бизнеса”.
  3. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
  4. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “2” данной процедуры.
  5. Инициатору данной процедуры возвращается информация об успешном выполнении данной процедуры.
07_3.2_13 Процедура экспорта файла коллаборации для календаря
  1. Пользователь инициирует “Экспорт файла коллаборации для календаря”;
  2. Клиентской частью сервиса выполняется:
  3. Создание файла:
    1. Содержание:
      1. BEGIN — “VCALENDAR”;
      2. VERSION — “2.0”;
      3. PRODID — “-//Rippla//Collaboration Export 1.0//EN”
      4. BEGIN — “VEVENT”;
      5. UID — {Идентификатор коллаборации, для которой инициирована данная процедура};
      6. DTSTAMP — {текущая дата и время в формате YYYYMMDDTHHMMSSZ}
      7. SUMMARY — Если пользователь, который инициировала данную процедуры:
        1. “Инфлюэнсер”, определяется как строка “Collaboration × {Название локации, которая относится к “Кампании”, к которой относится “Коллаборация”, для которой инициирована данная процедура}”;
        2. “Представитель бизнеса”, определяется как строка “Collaboration × {“Полное имя” инфлюэнсера, который относится к Коллаборации, для которой инициирована данная процедура}”;
      8. DTSTART;VALUE=DATE — {Дата начала коллаборации, для которой инициирована данная процедура в формате YYYYMMDD};
      9. DTEND;VALUE=DATE — Если для “Коллаборация”, для которой инициирована данная процедура:
        1. Имеется “Дата окончания” — {Дата окончания коллаборации, для которой инициирована данная процедура в формате YYYYMMDD};
        2. Не имеется “Даты окончания” — {Дата начала коллаборации, для которой инициирована данная процедура в формате YYYYMMDD}.
      10. LOCATION — {“Адрес” локации, которая относится к “Кампании”, к которой относится “Коллаборация”, для которой инициирована данная процедура, запятые необходимо экранировать через /};
      11. END — “VEVENT”;
      12. END — “VCALENDAR”.
    2. Название — collaboration-{Дата начала коллаборация}-{Дата окончания коллаборации};
    3. Расширение — “.ics”.
    4. Выполняется инициация скачивания файла, сформированного на этапе “2_a” данной процедуры.
07_3.2_14 Процедура получение списка коллабораций

API: GET /private/collaborations · GET /private/collaborations/my

  1. Клиентской частью сервиса выполняется запрос “Get collaborations”.
  2. Если для “Пользователя” который инициировал выполнение данной процедуры не имеется “Доступной коллаборации” для каждой “Коллаборация” статус которой не “Завершена” и не имеется “Поста коллаборации” выполняется:
  3. Определение значения параметра “Полное имя”. Значение определяется как результат выполнения “02_3.2_9 Процедура скрытия контактных данных” с параметрами:
    1. value — “Полное имя” аккаунта, для которого инициирован этап “2_a” данной процедуры;
    2. full_replace.
  4. Определение значения параметра “Имя в сервисе”. Значение определяется как результат выполнения “02_3.2_9 Процедура скрытия контактных данных” с параметрами:
    1. value — “Имя в сервисе” аккаунта, для которого инициирован этап “2_a” данной процедуры;
    2. full_replace.
  5. Определение значения параметра “Информация о пользователе”. Значение определяется как результат выполнения “02_3.2_9 Процедура скрытия контактных данных” с параметрами:
    1. value — “Информация о пользователе” аккаунта, для которого инициирован этап “2_a” данной процедуры;
  6. На запрос “Get collaborations” возвращается список Аккаунтов которые удовлетворяют условиям запроса.
07_3.2_15 Процедура получение коллаборации

API: GET /private/collaborations/{id}

  1. Клиентской частью сервиса выполняется запрос “Get collaboration”.
  2. Если для “Пользователя” который инициировал выполнение данной процедуры не имеется “Доступной коллаборации” и “Коллаборация” в статусе не “Завершена” и для нее не имеется “Поста коллаборации” выполняется:
  3. Определение значения параметра “Полное имя”. Значение определяется как результат выполнения “02_3.2_9 Процедура скрытия контактных данных” с параметрами:
    1. value — “Полное имя” аккаунта, для которого инициирован этап “2_a” данной процедуры;
    2. full_replace.
  4. На запрос “Get collaboration” возвращается список Аккаунтов которые удовлетворяют условиям запроса.
07_3.2_16 Процедура установки персонального количества бесплатных коллабораций внешним методом

API: PUT /personal_free_collabs

  1. Выполняется запрос “Set personal free collaborations count” с телом запроса:
  2. user_id;
  3. business_id;
  4. free_collabs.
  5. Если для пользователя, который был указан при инициации данной процедуры:
    1. Не имеется “Персонального количества бесплатных коллабораций”, выполняется создание “Персонального количества бесплатных коллабораций” с параметрами:
      1. Идентификатор инфлюэнсера — “user_id”, который был указан при инициации данной процедуры;
      2. Количество бесплатных коллабораций — “free_collabs”, который был указан при инициации данной процедуры.
    2. Имеется “Персональное количества бесплатных коллабораций”, выполняется изменение “Персонального количества бесплатных коллабораций” согласно параметрам:
      1. Количество бесплатных коллабораций — “free_collabs”, который был указан при инициации данной процедуры.
  6. Если для бизнеса, который был указан при инициации данной процедуры:
    1. Не имеется “Персонального количества бесплатных коллабораций”, выполняется создание “Персонального количества бесплатных коллабораций” с параметрами:
      1. Идентификатор бизнеса — “business_id”, который был указан при инициации данной процедуры;
      2. Количество бесплатных коллабораций — “free_collabs”, который был указан при инициации данной процедуры.
    2. Имеется “Персональное количества бесплатных коллабораций”, выполняется изменение “Персонального количества бесплатных коллабораций” согласно параметрам:
      1. Количество бесплатных коллабораций — “free_collabs”, который был указан при инициации данной процедуры.
  7. На запрос “Set personal free collaborations count” возвращается информация об успешном выполнении запроса.
07_3.2_17 Процедура изменения Коллаборации при вызове внешним методом

API: PATCH /collaborations/{id}/manage_permissions

  1. Выполняется инициации данной процедуры:
  2. C параметрами:
    1. id;
  3. С телом запроса:
    1. is_post_creation_available;
    2. create_push_notification;
    3. create_system_message.
  4. Выполняется:
  5. Изменение “Коллаборации”, для которой инициирована данная процедура согласно следующим параметрам:
    1. Статус возможности создания поста — “is_post_creation_available”;
  6. Если значение параметра “is_post_creation_available”, который был указан при инициации данной процедуры — true и
  7. Значение параметра “create_system_message”, который был указан при инициации данной процедуры — true выполняется:
    1. Создание “Сообщения коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации, который был указан при инициации данной процедуры;
      3. Тип — Системное;
      4. Идентификатор шаблона — 29;
      5. Инициатор — Команда Rippla;
      6. Свойство доступности — Инфлюэнсер.
    2. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
      1. Идентификаторы сообщений коллабораций — Идентификаторы сообщения коллаборации, которое было создано на этапе “2_b_1_i” данной процедуры;
    3. Для “Инфлюэнсера”:
      1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении этапа “2_b_1_i” данной процедуры;
      2. Для которого имеется подключение к веб-сокету.
        выполняется:
      3. 07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор пользователя для которого выполняется “2_b_1_iii” данной процедуры;
        3. Тип — Сообщение.
      4. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
  8. Значение параметра “create_push_notification”, который был указан при инициации данной процедуры — true выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
    1. template_id — It's time to upload the results of the collaboration;
    2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
07_3.2_18 Процедура определения требований к загрузке контента инфлюэнсера
  1. Выполняется инициация данной процедуры с параметрами:
  2. Идентификатор инфлюэнсера.
  3. Для каждой “Коллаборации”, которая относится к “Аккаунту”, к которому относится Инфлюэнсер, для которого инициирована данная процедура, и “Статус” которой “Завершена”, выполняется определение “Требований к загрузке контента”:
  4. Если “Статус возможности создания поста” данной “Коллаборации” — true и “Количество постов к загрузке” больше 0:
    1. content_type — post_or_reel;
    2. category — content;
    3. count — “Количество постов к загрузке”;
    4. due_at — “Ожидаемая дата загрузки постов”. Если для данной “Коллаборации” не имеется “Ожидаемой даты загрузки постов”, параметр “due_at” не определяется.
  5. Если “Статус возможности создания поста” данной “Коллаборации” — true и “Количество сторис к загрузке” больше 0:
    1. content_type — story;
    2. category — content;
    3. count — “Количество сторис к загрузке”;
    4. due_at — “Ожидаемая дата загрузки сторис”. Если для данной “Коллаборации” не имеется “Ожидаемой даты загрузки сторис”, параметр “due_at” не определяется.
  6. Для каждого “Поста коллаборации”, который относится к данной “Коллаборации”, “Вид” которого “Пост или рилс” и “Статус необходимости загрузки статистики” которого — true, определяется “Дата открытия загрузки статистики” как сумма “Даты публикации” данного “Поста коллаборации” и “post_min_age_h” настройки “Политика загрузки статистики поста коллаборации”. Если имеется минимум один данный “Пост коллаборации”, “Дата открытия загрузки статистики” которого:
    1. Не больше текущей даты:
      1. content_type — post_or_reel;
      2. category — stats;
      3. count — количество данных “Постов коллаборации”;
      4. due_at — наименьшая “Ожидаемая дата загрузки статистики” данных “Постов коллаборации”. Если ни для одного из данных “Постов коллаборации” не имеется “Ожидаемой даты загрузки статистики”, параметр “due_at” не определяется.
    2. Больше текущей даты:
      1. content_type — post_or_reel;
      2. category — stats;
      3. count — количество данных “Постов коллаборации”;
      4. due_at — наименьшая “Ожидаемая дата загрузки статистики” данных “Постов коллаборации”. Если ни для одного из данных “Постов коллаборации” не имеется “Ожидаемой даты загрузки статистики”, параметр “due_at” не определяется;
      5. available_at — наименьшая “Дата открытия загрузки статистики” данных “Постов коллаборации”.
  7. Для каждого “Поста коллаборации”, который относится к данной “Коллаборации”, “Вид” которого “История” и “Статус необходимости загрузки статистики” которого — true, определяется “Дата открытия загрузки статистики” как сумма “Даты публикации” данного “Поста коллаборации” и “story_min_age_h” настройки “Политика загрузки статистики поста коллаборации”. Если имеется минимум один данный “Пост коллаборации”, “Дата открытия загрузки статистики” которого:
    1. Не больше текущей даты:
      1. content_type — story;
      2. category — stats;
      3. count — количество данных “Постов коллаборации”;
      4. due_at — наименьшая “Ожидаемая дата загрузки статистики” данных “Постов коллаборации”. Если ни для одного из данных “Постов коллаборации” не имеется “Ожидаемой даты загрузки статистики”, параметр “due_at” не определяется.
    2. Больше текущей даты:
      1. content_type — story;
      2. category — stats;
      3. count — количество данных “Постов коллаборации”;
      4. due_at — наименьшая “Ожидаемая дата загрузки статистики” данных “Постов коллаборации”. Если ни для одного из данных “Постов коллаборации” не имеется “Ожидаемой даты загрузки статистики”, параметр “due_at” не определяется;
      5. available_at — наименьшая “Дата открытия загрузки статистики” данных “Постов коллаборации”.
  8. Если “Статус возможности создания поста” данной “Коллаборации” — true и разность количества постов или рилс, которое указано в “Свойствах” “Кампании”, к которой относится данная “Коллаборация”, количества “Постов коллаборации” “Вида” “Пост или рилс”, которые относятся к данной “Коллаборации”, и “Количества постов к загрузке” данной “Коллаборации” больше 0:
    1. content_type — post_or_reel;
    2. category — content;
    3. count — данная разность.
  9. Если “Статус возможности создания поста” данной “Коллаборации” — true и разность количества сторис, которое указано в “Свойствах” “Кампании”, к которой относится данная “Коллаборация”, количества “Постов коллаборации” “Вида” “История”, которые относятся к данной “Коллаборации”, и “Количества сторис к загрузке” данной “Коллаборации” больше 0:
    1. content_type — story;
    2. category — content;
    3. count — данная разность.
  10. Инициатору данной процедуры возвращаются “Требования к загрузке контента”, которые были определены на этапе “2” данной процедуры, для каждой “Коллаборации”, для которой они были определены. “Долгами” являются только требования, которые были определены на этапах “2_a”, “2_b”, “2_c_i” и “2_d_i” данной процедуры.

3.3 Чат

Чат является средством коммуникации между Инфлюэнсером и Бизнесом в рамках Коллаборации.

Реализация чата представляет собой последовательность текстовых сообщений, сгруппированных по календарным дням.

3.3_1 Виды сообщений

Класс Описание
Пользовательское Сообщение созданное пользователем: Инфлюэнсером; Бизнес представителем.
Системное Автоматически сгенерированное сообщение, которое создается системой для информирования Пользователей о событиях, изменениях или действиях в системе.
От команды Rippla Сообщение созданное командой Rippla.

3.3_3 Ограничения возможности создания сообщения согласно статусу Коллаборации

Статус Описание
Новая Инфлюэнсер не должен иметь возможность создать сообщение если для Коллаборации не имеется ни одного сообщения, которое было создано Бизнес представителем.
Отклонена Пользователь не должен иметь возможность создать сообщение.

3.3_4 Предустановленные шаблоны системного сообщения

Шаблон Параметры
Collaboration confirmed for Influencer ID — 1; Название — Collaboration confirmed for Influencer; Текст шаблона — {influencer.full_name}, you’ve been selected as a collaborator for this campaign. Feel free to reach out to the host in chat for more details or with any questions.
Collaboration dates specified for Influencer ID — 2; Название — Collaboration dates specified for Influencer; Текст шаблона — {influencer.full_name}, the dates for your campaign are now confirmed by the host: {collaboration.collab_dates}. Feel free to reach out to the host in chat if you have any questions or need additional details.
Collaboration dates changed ID — 3; Название — Collaboration dates changed; Текст шаблона — The collaboration dates have been changed. {collaboration.collab_dates}.
Collaboration completed for Influencer ID — 4; Название — Collaboration completed for Influencer; Текст шаблона — {business_representative.full_name} has marked this collaboration as completed. Please upload the results of the collaboration. If you have any questions, feel free to reach out to each other here.
Collaboration rejected for Influencer ID — 5; Название — Collaboration rejected for Influencer; Текст шаблона — {influencer.full_name}, the host has declined your application for this campaign. Explore Rippla and you'll find many other exciting offers that might be a perfect match for you!
Rejected collaboration activated ID — 6; Название — Rejected collaboration activated; Текст шаблона — {business_representative.full_name} has reopened this collaboration. The application status has been updated, and both sides can review the details and proceed accordingly.
Collaboration canceled ID — 7; Название — Collaboration canceled; Текст шаблона — Collaboration has been canceled by influencer.
Canceled collaboration activated ID — 8; Название — Canceled collaboration activated; Текст шаблона — {influencer.full_name} has reapplied for this campaign. If you’d like to reconnect or discuss future opportunities, feel free to message directly in the chat.
Influencer account verification status changed to “Suspended” ID — 9; Название — Influencer account verification status changed to “Suspended”; Текст шаблона — {influencer.full_name}'s account is temporarily frozen. They won’t see new messages or be able to respond until their account is reactivated. We’ll notify you once the status changes.
Influencer account verification status changed from “Suspended” to “Verified” ID — 10; Название — Influencer account verification status changed from “Suspended” to “Verified”; Текст шаблона — {influencer.full_name} is back! Their account has been reactivated, and messaging is now available again.
Influencer has been blocked ID — 11; Название — Influencer has been blocked; Текст шаблона — {influencer.full_name} no longer has access to Rippla due to a policy violation. We do not recommend direct communication outside the platform, but the decision is up to you.
Influencer has been unblocked ID — 12; Название — Influencer has been unblocked; Текст шаблона — {influencer.full_name} has been reinstated on Rippla. The situation has been reviewed, and access has been fully restored.
Influencer has been deleted ID — 13; Название — Influencer has been deleted; Текст шаблона — {influencer.full_name} no longer has access to Rippla as they left the platform permanently
Business has been deactivated ID — 14; Название — Business has been deactivated; Текст шаблона — Business no longer has access to Rippla due to a policy violation. We do not recommend direct communication outside the platform, but the decision is up to you.
Business has been activated ID — 15; Название — Business has been activated; Текст шаблона — Business has been reinstated on Rippla. The situation has been reviewed, and access has been fully restored.
Business has been deleted ID — 16; Название — Business has been deleted; Текст шаблона — Business no longer has access to Rippla as they left the platform permanently.
Communication outside Rippla warning ID — 17; Название — Communication outside Rippla warning; Текст шаблона — We recommend keeping your conversation here on Rippla. All your campaign details, dates, and agreements are connected within the platform, making it easier to track everything in one place. If discussions move outside Rippla, we won't be able to assist if any issues come up along the way.
Communication about payment warning ID — 18; Название — Communication about payment warning; Текст шаблона — Just a heads up: Rippla is built for barter collaborations, not paid partnerships. Feel free to keep chatting, but any paid deals would need to happen outside the platform.
Collaboration created for Influencer ID — 19; Название — Collaboration created for Influencer Текст шаблона — You have sent your request. Wait for the host's response.
Collaboration canceled for Influencer ID — 20; Название — Collaboration canceled for Influencer; Текст шаблона — You've cancelled this collaboration
Collaboration created for Business representative ID — 21; Название — Collaboration created for Business representative; Текст шаблона — It’s time to decide if you want to collaborate with the influencer, please choose the option below.
Added results for Influencer ID — 22; Название — Added results for Influencer; Текст шаблона — You've uploaded results of collaboration.
Collaboration confirmed for Business representative ID — 23; Название — Collaboration confirmed for Business representative; Текст шаблона — Influencer selected. Next: once you agree on the date and time, schedule the Collab
Collaboration dates specified for Business representative ID — 24; Название — Collaboration dates specified for Business representative; Текст шаблона — Collaboration scheduled for {collaboration.collab_dates}.
Collaboration completed for Business representative ID — 25; Название — Collaboration completed for Business representative; Текст шаблона — Collaboration has been completed. If this was done by mistake, undo complete.
Added results for Business representative ID — 26; Название — Added results for Business representative; Текст шаблона — Influencer added results.
Collaboration rejected for Business representative ID — 27; Название — Collaboration rejected for Business representative; Текст шаблона — Influencer has been rejected.
Collaboration completion canceled and rescheduled for Influencer ID — 28; Название — Collaboration completion canceled and rescheduled for Influencer; Текст шаблона — The host has moved this collaboration back to scheduled: {collaboration.collab_dates}. Feel free to reach out in chat if you have any questions.
It's time to upload the results of the collaboration ID — 29; Название — It's time to upload the results of the collaboration; Текст шаблона — It's time to upload the results of the collaboration. If you have any questions, feel free to reach out to each other here.

3.3.1 Данные сообщения коллаборации

3.3.1.1 Параметры сообщения коллаборации(collaboration_messages)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор коллаборации collaboration_id bigint да нет
Тип type enum да нет Возможны следующие типы сообщений коллаборации: 1 — Пользовательское; 2 — Системное; 3 — От команды Rippla.
Идентификатор пользователя author_id bigint нет нет
Текст сообщения message varchar(4096) нет нет Обязательно, если для сообщения не имеется “Файла сообщения коллаборации”.
Идентификатор шаблона system_massage_template_id varchar(255) нет нет Обязательно если сообщение является системным
Параметры сообщения params json нет нет Структура данных в формате JSON “07_3.3.1.1_1”
Инициатор ​​initiator enum нет нет Возможны следующие инициаторы: 1 — Инфлюэнсер; 2 — Представитель бизнеса; 3 — Администратор; 4 — Команда Rippla. Обязательно если сообщение является системным.
Свойство доступности available_for  enum да нет Возможны следующие инициаторы: 1- Все; 2 — Инфлюэнсер; 3 — Представитель бизнеса. По умолчанию “Все”.

07_3.3.1.1_1

Объект который содержит значения переменных которые должны использоваться при формирования системного сообщения.

Параметр Описание Значение
influencer.full_name Полное имя инфлюэнсера.
collaboration.collab_dates Период проведения коллаборации Возможны следующие форматы “Периода проведения кампании”: 1-10/01/2025 — если “Дата начала” и “Дата окончания” коллаборации в одном календарном месяце; 31/01/2025 — 10/02/2025 — если “Дата начала” и “Дата окончания” коллаборации не в одном календарном месяце.
business_representative.full_name Полное имя бизнес представителя.
3.3.1.2 Параметры просмотра сообщения пользователем (message_views)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Идентификатор сообщения коллаборации collaboration_message_id bigint да нет
Идентификатор пользователя author_id bigint да нет
3.3.1.3 Параметры шаблона системного сообщения (system_message_templates)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор шаблона id varchar(255) да да
Текст шаблона text text да нет Является переводимым.
3.3.1.4 Параметры файла сообщения коллаборации (collaboration_message_files)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата удаления deleted_at timestamp нет нет
Идентификатор сообщения коллаборации collaboration_message_id bigint да нет
Идентификатор файла file_id bigint да нет

FR_07_3.3.1.4_1
“Файлы сообщения коллаборации”, которые относятся к одному “Сообщению коллаборации”, возвращаются отсортированными по “Дате создания” по возрастанию (сначала более старые).

3.3.2 CRUD Сообщения коллаборации

07_3.3.2_1 Процедура создания Сообщения коллаборации

API: POST /private/collaborations/{id}/messages

  1. Клиентской частью сервиса выполняется запрос “Create collaboration message”:
  2. С параметрами:
    1. collaboration_id;
  3. С телом запроса:
    1. message — текст сообщения;
    2. file_ids — массив идентификаторов файлов.
  4. Если запрос “Create collaboration message” был инициирован Пользователем:
  5. Роль которого “Инфлюэнсер” и:
    1. Для инфлюэнсера не имеется “Активной подписки пользователя” и:
      1. Не имеется “Возможности использования бесплатной коллаборации” на запрос “Create collaboration message” возвращается ошибка “0713”;
      2. Имеется “Возможность использования бесплатной коллаборации” выполняется этап “3” данной процедуры.
    2. Для инфлюэнсера имеется “Активная подписка пользователя” выполняется этап “3” данной процедуры.
  6. Роль которого “Бизнес представитель” и для “Бизнеса”, к которому относится “Бизнес представитель”, к которому относится данный “Пользователь”:
    1. Не имеется “Активной подписки пользователя” и:
      1. Не имеется “Возможности использования бесплатной коллаборации” на запрос “Create collaboration message” возвращается ошибка “0714”;
      2. Имеется “Возможность использования бесплатной коллаборации” выполняется этап “3” данной процедуры.
    2. Имеется “Активная подписка пользователя” выполняется этап “3” данной процедуры.
  7. Если запрос “Create collaboration message” был инициирован Пользователем, роль которого “Инфлюэнсер” и для “Коллаборации”, которая была указана при инициации данной процедуры:
    1. Статус “Новая” и не имеется “Сообщения коллаборации”, которое относится к “Пользователю“ для которого имеется “Бизнес представитель” который относится к тому же “Бизнесу”, к которому относится “Локация”, к которой относится “Кампания”, к которой относится данная “Коллаборация” на запрос “Create collaboration message” возвращается ошибка “0710”. Дальнейшие этапы процедуры не выполняются;
  8. Если “Статус” коллаборации ”Отклонена” на запрос “Create collaboration message” возвращается ошибка “0711”. Дальнейшие этапы процедуры не выполняются.
  9. Выполняется:
  10. Создание “Сообщения коллаборации” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
    3. Тип — Пользовательское;
    4. Идентификатор пользователя — идентификатор пользователя, который инициировал выполнение данной процедуры;
    5. Текст сообщения — согласно значению параметра “message”, который был указан при инициации запроса.
  11. Для каждого идентификатора файла, который был указан в параметре “file_ids” при инициации данной процедуры, выполняется создание “Файла сообщения коллаборации” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор сообщения коллаборации — Идентификатор сообщения коллаборации, которое было создано на этапе “4_a” данной процедуры;
    3. Идентификатор файла — идентификатор файла, для которого выполняется данный этап.
  12. Если значение параметра “message” который был указан при инициации данной процедуры содержит подстроку которая соответствует одному из регулярных выражений:

      1. “\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b”;
      2. “(?\<!\w)@[A-Za-z0-9._]{2,50}\b”;
      3. “(?:(?:\+|00)\d{1,3}[\s-]?)?(?:\(?\d{2,4}\)?[\s-]?)?\d{3,4}[\s-]?\d{2,4}(?:[\s-]?\d{2,4})?”;
      4. “\b(?:TikTok|TikT|TT|YouTube|YT|Instagram|Insta|IG|FB|Facebook|Whatsapp|WhatsApp|WA|Telegram|Tele|Tg|Twitch|TW|LinkedIn|Linkedin|LI|OnlyFans|Twitter|X|Threads|Snapchat|Snap|SC|Discord|Disc|DC|Reddit|RD|Pinterest|Pin|Viber|VB|WeChat|Skype|SK|Zoom|ZM|Signal|SG|Clubhouse|CH|BeReal|BR|Mastodon|Masto|Bluesky|BS)\b[\s:.\-—]*”;
      5. “\b((?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9-]+(?:\.[a-zA-Z]{2,})(?:\/[^\s]*)?)\b”.

    выполняется создание “Сообщения коллаборации” с параметрами:

    1. Дата создания — согласно текущей дате;
    2. Идентификатор коллаборации — Идентификатор коллаборации, для которой должно быть создано сообщение;
    3. Тип — Системное;
    4. Идентификатор шаблона — 17;
    5. Инициатор — Если данную процедуру инициировал:
      1. “Инфлюэнсер” — Инфлюэнсер;
        1. “Представитель бизнеса” — Представитель бизнеса;
      2. Свойство доступности — Все.
    6. “(?i)\b(pay(?:ment|ing|ed|s|out)?|payout(?:s)?|paid|money|cash|salary|wage(?:s)?|deposit(?:s)?|pag(?:amento|ar|o|a|amos|uei|ando|ado|os|as)?|pago(?:s|a|as)?|pre[cç]?o(?:s)?|precio(?:s)?|cost(?:o|e|os|es|s)?|fee(?:s)?|charge(?:d|s)?|taxa(?:s)?|tarifa(?:s)?|comiss[aã]o(?:ões)?|comisi[oó]n(?:es)?|rate(?:s)?|budget(?:s)?|or[cç]amento(?:s)?|presupuest(?:o|a|os|as)?|invoice(?:s|d)?|fatura(?:s)?|factura(?:s)?|cobran[cç]a(?:s)?|cobro(?:s)?|nota\s+fiscal|adiantamento(?:s)?|anticipo(?:s)?|se[nñ]al|advance(?:\s+payment)?|prepay|pre-paid|quote(?:s|d)?|valor(?:es)?|transfer(?:ência|encia|s|ing|red)?|wire(?:\s+transfer)?|bank(?:\s+transfer)?|pix|card(?:s)?|cart[aã]o(?:ões)?|visa|mastercard|cr[eé]dito|d[eé]bito|paypal|crypto|cript(?:o|omoeda|omoneda|omoedas|omonedas)?|usdt|btc|eth|sol|ton)\b|\b(?:usd|eur|gbp|mxn|ars|clp|cop|pen|brl|rub|uah|kzt|try|inr|usdt|btc|eth|sol|ton|\$|€|£|₽|₿)\b|(?:\b(?:usd|eur|gbp|mxn|ars|clp|cop|pen|brl|rub|uah|kzt|try|inr|usdt|btc|eth|sol|ton)\b|[$€£₽₿])”, выполняется создание “Сообщения коллаборации” с параметрами:
    7. Дата создания — согласно текущей дате;
    8. Идентификатор коллаборации — Идентификатор коллаборации, для которой должно быть создано сообщение;
    9. Тип — Системное;
    10. Идентификатор шаблона — 18;
    11. Инициатор — Если данную процедуру инициировал:
      1. “Инфлюэнсер” — Инфлюэнсер;
        1. “Представитель бизнеса” — Представитель бизнеса;
      2. Свойство доступности — Все.
    12. Если запрос “Create collaboration message” был инициирован Пользователем, роль которого:
    13. “Инфлюэнсер” для каждого “Представителя бизнеса”:

        1. Который относится к “Коллаборации”, для которой было создано сообщение при выполнении этапа “4_a” данной процедуры;
        2. Для которого имеется подключение к веб-сокету.

        выполняется:

      1. 07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:

        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор пользователя для которого выполняется “2_b_i” данной процедуры;
        3. Тип — Сообщение.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — New message from creator;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура;
        3. collaboration_message_id — “Идентификатор сообщения коллаборации”, которое было создано на этапе “4_a” данной процедуры.
      4. “Представитель бизнеса” для “Инфлюэнсера”:
        1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении этапа “4_a” данной процедуры;
        2. Для которого имеется подключение к веб-сокету.

      выполняется:

      1. 07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор пользователя для которого выполняется “2_b_ii” данной процедуры;
        3. Тип — Сообщение.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — New message;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура;
        3. collaboration_message_id — “Идентификатор сообщения коллаборации”, которое было создано на этапе “4_a” данной процедуры.
      4. “02_2.5_1 Процедура создания и обновления сессии пользователя” с параметрами:
        1. session_id — “X-Session-Id”, который был указан в заголовке запроса;
        2. user_id — Идентификатор пользователя который инициировал данную процедуру;
        3. action — Создание сообщения.
      5. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
      6. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “4” данной процедуры.
      7. На запрос “Create collaboration message” возвращается информация об успешном выполнении запроса.

07_3.3.2_1.1 Ошибки при выполнении процедуры 07_3.3.2_1

Код ошибки Этап Локаль Текст ошибки
0710 3_a en “The chat has not been activated yet”
es "El chat aún no se ha activado"
pt “A conversação ainda não foi ativada”
fr
0711 3_b en “The collaboration was rejected”
es "La colaboración ha sido rechazada"
pt “A colaboração foi rejeitada”
fr
0713 2_a_i_1 en “Free collabs is over (code: 0713)”
es "Se han agotado las colaboraciones gratuitas (código: 0713)"
pt “As colaborações gratuitas acabaram (código: 0713)”
fr
0714 2_b_i_1 en “Free collabs is over (code: 0714)”
es "Se han agotado las colaboraciones gratuitas (código: 0714)"
pt “As colaborações gratuitas acabaram (código: 0714)”
fr
07_3.3.2_2 Процедура просмотра Сообщения коллаборации пользователем

API: POST /private/collaborations/{id}/message_views

  1. Клиентской частью сервиса выполняется запрос “Read messages”:
  2. С параметрами:
    1. collaboration_id;
  3. С телом запроса:
    1. messages — массив идентификаторов сообщений коллаборации, которые просмотрел пользователь.
  4. Если в заголовках запроса “Read messages” не имеется параметра “X-Switch-User”, для каждого “Сообщения коллаборации”, которое было указано в массиве “messages” выполняется создание “Просмотра сообщения пользователем” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор сообщения коллаборации — идентификатор сообщения коллаборации, для которого выполняется этап “2_a” данной процедуры;
    3. Идентификатор пользователя — идентификатор пользователя, который инициировал выполнение данной процедуры.
  5. Если запрос “Read messages” был инициирован Пользователем, роль которого:
    1. “Инфлюэнсер”, для данного инфлюэнсера имеется подключение к веб-сокету выполняется:
      1. 07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор пользователя для которого выполняется “2_b_i” данной процедуры;
        3. Тип — Сообщение.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
    2. “Представитель бизнеса” и для данного представителя бизнеса имеется подключение к веб-сокету, выполняется:
      1. 07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор пользователя для которого выполняется “2_b_ii” данной процедуры;
        3. Тип — Сообщение.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
        1. Если “Коллаборация”, к которой относятся “Сообщения коллаборации” для которых инициирована данная процедура, относится к “Бизнесу”, для которого “Возможность создания кампании” — false, выполняется “05_2.3_5 Процедура проверки возможности снятия ограничения с бизнеса” с параметрами:
        2. Идентификатор бизнеса — Идентификатор бизнеса, к которому относится “Коллаборация” для которой инициирована данная процедура.
        3. Если “05_2.3_5 Проверка возможности снятия ограничения с бизнеса” выполнена успешно, выполняется “05_2.3_4 Процедура снятие ограничения с бизнеса”.
  6. “02_2.5_1 Процедура создания и обновления сессии пользователя” с параметрами:
    1. session_id — “X-Session-Id”, который был указан в заголовке запроса;
    2. user_id — Идентификатор пользователя который инициировал данную процедуру;
    3. action — Просмотр сообщения коллаборации.
  7. На запрос “Read messages” возвращается информация об успешном выполнении запроса.
07_3.3.2_3 Процедура создания Сообщения коллаборации от команды Rippla

API: POST /collaborations/{id}/messages

  1. Клиентской частью сервиса выполняется запрос “Create collaboration message from the Rippla team” с телом запроса:
    1. message — текст сообщения;
    2. file_urls — массив ссылок на файлы;
      или
  2. Администратор инициирует выполнение данной процедуры:
    1. С параметрами:
      1. collaboration_id;
    2. С телом запроса:
      1. message — текст сообщения;
      2. file_ids — массив идентификаторов файлов.
  3. Выполняется:
  4. Создание “Сообщения коллаборации” с параметрами:
    1. Дата создания — согласно текущей дате;
    2. Идентификатор коллаборации — Идентификатор коллаборации, для которой была инициирована данная процедура;
    3. Тип — От команды Rippla;
    4. Текст сообщения — согласно значению параметра “message”, который был указан при инициации запроса.
    1. Для каждого “Представителя бизнеса”:

        1. Который относится к “Коллаборации”, для которой было создано сообщение при выполнении этапа “2_a” данной процедуры;
        2. Для которого имеется подключение к веб-сокету.

      выполняется:

      3. 07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:  
         1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;  
         2. Пользователь — Идентификатор пользователя для которого выполняется “2\_b\_i” данной процедуры;  
         3. Тип — Сообщение.  
      4. Отправка сообщения в веб\-сокет “Уведомления от сервиса Centrifugo” для канала “notification\_{Идентификатор пользователя к которому относится [“Представитель бизнеса”](05-business.md#3.1-параметры-представителя-бизнеса(business_representatives))}” с параметрами:  
         1. type — “messages\_counters\_changed”;  
         2. data — массив “data” который был получен в результате выполнения “07\_3.3.2\_4 Процедура определения количества непрочитанных сообщений пользователя”.
      
      1. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — Message from Rippla admin in collab chat for business;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура;
        3. collaboration_message_id — “Идентификатор сообщения коллаборации”, которое было создано на этапе “2_a” данной процедуры.
        4. Для “Инфлюэнсера”:
        1. Который относится к “Коллаборации”, для которой было создано сообщение, при выполнении этапа “2_a” данной процедуры;
        2. Для которого имеется подключение к веб-сокету.

      выполняется:

      1. 07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор пользователя для которого выполняется “2_b_ii” данной процедуры;
        3. Тип — Сообщение.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
        1. template_id — Message from Rippla admin in collab chat for Influencer;
        2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура;
        3. collaboration_message_id — “Идентификатор сообщения коллаборации”, которое было создано на этапе “2_a” данной процедуры.
      4. Если данная процедура была инициирована:
        1. запросом “Create collaboration message from the Rippla team”:
      5. Для каждой ссылки, которая была указана в параметре “file_urls” при инициации данной процедуры, выполняется “01_2.1.8.2.2 Процедура сохранения файла” с параметрами:
        1. Ссылка на файл — ссылка на файл, для которой выполняется данный этап.
      6. Для каждого файла, который был создан на этапе “2_c_i_1” данной процедуры, выполняется создание “Файла сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор сообщения коллаборации — Идентификатор сообщения коллаборации, которое было создано на этапе “2_a” данной процедуры;
        3. Идентификатор файла — Идентификатор файла, для которого выполняется данный этап.
        4. Администратором:
      7. Для каждого идентификатора файла, который был указан в параметре “file_ids” при инициации данной процедуры, выполняется создание “Файла сообщения коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор сообщения коллаборации — Идентификатор сообщения коллаборации, которое было создано на этапе “2_a” данной процедуры;
        3. Идентификатор файла — идентификатор файла, для которого выполняется данный этап.
      8. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
      9. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “2” данной процедуры.
      10. Если данная процедура была инициирована запросом “Create collaboration message from the Rippla team”, на запрос “Create collaboration message from the Rippla team” возвращается информация об успешном выполнении запроса.
07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя
  1. Инициируется выполнение данной процедуры с параметрами:
  2. Массив коллабораций;
  3. Пользователь;
  4. Тип.
  5. Выполняется формирования массива “data”:
  6. Если “Тип” который был указан при инициации данной процедуры — Сообщение:

    1. Если Пользователь, который был указан, при инициации данной процедуры “Представитель бизнеса”, для каждой “Кампании”, к которой относится минимум одна Коллаборация, из “Коллабораций”, которые были указаны при инициации данной процедуры формируется элемент:

      1. object_type — campaign;
      2. id — Идентификатор кампании, к которой относится “Коллаборация”, для которой выполняется этап “2_a_i” данной процедуры;
      3. value — Количество непрочитанных сообщений, которые относятся к:

        1. “Коллаборациям”, которые относятся к “Кампании”, к которой относится “Коллаборация”, которая была указана при инициации данной процедуры;
        2. Пользователю, который указан при инициации данной процедуры.

        за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

    2. Если Пользователь, который был указан, при инициации данной процедуры “Представитель бизнеса” и “Кампания”, к которой относится минимум одна “Коллаборация”, которая была указана при инициации данной процедуры, в статусе:

      1. “Активная”, формируется элемент:

        1. object_type — active_campaign;
        2. value — Сумма:
        3. Непрочитанных сообщений, которые относятся:

          1. К “Коллаборациям”, которые относятся к “Кампаниям” в статусе “Активная”;
          2. Пользователю, который указан при инициации данной процедуры.

          за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

      2. “Приостановленная”, формируется элемент:

        1. object_type — hidden_campaign;
        2. value — Сумма:
        3. Непрочитанных сообщений, которые относятся:

          1. К “Коллаборациям”, которые относятся к “Кампаниям” в статусе “Приостановленная”;
          2. Пользователю, который указан при инициации данной процедуры.

          за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

      3. “Завершенная”, формируется элемент:

        1. object_type — finished_campaign;
        2. value — Сумма:
        3. Непрочитанных сообщений, которые относятся:

          1. К “Коллаборациям”, которые относятся к “Кампаниям” в статусе “Завершенная”;
          2. Пользователю, который указан при инициации данной процедуры.

          за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

    3. Если пользователь который указан при инициации данной процедуры:

      1. “Представитель бизнеса” для каждой “Кампании”, к которой относится минимум одна “Коллаборация” которая была указана при инициации данной процедуры и к ней:

        1. Относится минимум один “Пост коллаборации” формируется элемент:
        2. object_type — results_added_collaboration;
        3. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
        4. value — Определяется как сумма:

          1. Непрочитанных сообщений которые относятся к:
            1. “Коллаборациям” в статусе “Новая”;
            2. Пользователю, который указан при инициации данной процедуры.

          за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        5. Не относится ни один “Пост коллаборации которая была и “Статус” данной коллаборации:

        6. “Новая”, формируется элемент:

          1. object_type — new_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Определяется как сумма:

            1. Непрочитанных сообщений которые относятся к:
              1. “Коллаборациям” в статусе “Новая”;
              2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        7. “Подтверждена”, формируется элемент:

          1. object_type — confirmed_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Подтверждена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        8. “Активная”, формируется элемент:

          1. object_type — scheduled_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Активная”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        9. “Завершена”, формируется элемент:

          1. object_type — pending_results_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Завершена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        10. “Отклонена”, формируется элемент:

          1. object_type — rejected_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Отклонена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        11. “Отменена”, формируется элемент:

          1. object_type — canceled_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Отменена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

      2. “Инфлюэнсер” и минимум одна “Коллаборация”, которая была указана при инициации данной процедуры и к ней:

        1. Относится минимум один “Пост коллаборации” формируется элемент:
        2. object_type — results_added_collaboration;
        3. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
        4. value — Определяется как сумма:

          1. Непрочитанных сообщений которые относятся к:
            1. “Коллаборациям” в статусе “Новая”;
            2. Пользователю, который указан при инициации данной процедуры.

          за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        5. Не относится ни один “Пост коллаборации которая была и “Статус” данной коллаборации:

        6. “Новая”, формируется элемент:

          1. object_type — new_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Определяется как сумма:

            1. Непрочитанных сообщений которые относятся к:
              1. “Коллаборациям” в статусе “Новая”;
              2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        7. “Подтверждена”, формируется элемент:

          1. object_type — confirmed_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Подтверждена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        8. “Активная”, формируется элемент:

          1. object_type — scheduled_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Активная”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        9. “Завершена”, формируется элемент:

          1. object_type — pending_results_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Завершена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        10. “Отклонена”, формируется элемент:

          1. object_type — rejected_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Отклонена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        11. “Отменена”, формируется элемент:

          1. object_type — canceled_collaboration;
          2. id — Идентификатор кампании, для которой выполняется этап “2_a_iii” данной процедуры;
          3. value — Количество непрочитанных сообщений которые относятся к:

            1. “Коллаборациям” в статусе “Отменена”;
            2. Пользователю, который указан при инициации данной процедуры.

            за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

    4. Для каждой “Коллаборации”, которая была указана при инициации данной процедуры формируется элемент:

      1. object_type — collaboration;
      2. id — Идентификатор коллаборации;
      3. value — Количество непрочитанных сообщений:

        1. Которые относятся к “Коллаборации”;
        2. Пользователю, который указан при инициации данной процедуры.

        за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

  7. Если “Тип” который был указан при инициации данной процедуры — Статус:

    1. 1-й элемент:

      1. object_type — Если к “Коллаборации”, которая была указана при инициации данной процедуры:
        1. Относится минимум один “Пост коллаборации” — results_added_collaboration;
        2. Не относится ни один “Пост коллаборации”:
        3. Новая — new_collaboration;
        4. Подтверждена — confirmed_collaboration;
        5. Активная — scheduled_collaboration;
        6. Завершена — pending_results_collaboration;
        7. Отклонена — rejected_collaboration;
        8. Отменена — canceled_collaboration.
      2. id — Если пользователь который указан при инициации данной процедуры “Представитель бизнеса” определяется как идентификатор кампании, к которой относится коллаборация, которая была указана при инициации данной процедуры;
      3. value — Если пользователь который указан при инициации данной процедуры:

        1. “Представитель бизнеса” определяется как количество непрочитанных сообщений которые относятся к:
        2. “Коллаборациям”:
          1. Которые относятся к “Кампании”, к которой относится “Коллаборация”, которая была указана при инициации данной процедуры;
          2. В том же статусе в котором “Коллаборация”, которая была указана при инициации данной процедуры;
        3. Пользователю, который указан при инициации данной процедуры.

        за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        1. “Инфлюэнсер” определяется как количество непрочитанных сообщений которые относятся к:
        2. “Коллаборациям” в том же статусе в котором “Коллаборация”, которая была указана при инициации данной процедуры;
        3. Пользователю, который указан при инициации данной процедуры.
          1. 2-ой элемент:
            1. object_type — Если к “Коллаборации” которая была указана при инициации данной процедуры:
        4. Относятся только удаленные "Посты коллаборации" и дата последнего удаленного "Поста коллаборации" позднее “Д​аты создания” последнего “Статуса коллаборации”, который относится к “Коллаборации” — results_added_collaboration;
        5. Не относится ни один "Пост коллаборации", в том числе удаленный;
          или
        6. Относятся только удаленные "Посты коллаборации" и дата последнего удаленного "Поста коллаборации" ранее “Д​аты создания” последнего “Статуса коллаборации”, который относится к “Коллаборации” и “Предыдущий статус” последнего “Статуса коллаборации”:
          1. Новая — new_collaboration;
          2. Подтверждена — confirmed_collaboration;
          3. Активная — scheduled_collaboration;
          4. Завершена — pending_results_collaboration;
          5. Отклонена — rejected_collaboration;
          6. Отменена — canceled_collaboration.
        7. Относится минимум один не удаленный “Пост коллаборации” и “Статус” последнего “Статуса коллаборации”:
        8. Новая — new_collaboration;
        9. Подтверждена — confirmed_collaboration;
        10. Активная — scheduled_collaboration;
        11. Завершена — pending_results_collaboration;
        12. Отклонена — rejected_collaboration;
        13. Отменена — canceled_collaboration.
          2. id — Если пользователь который указан при инициации данной процедуры “Представитель бизнеса” определяется как идентификатор кампании, к которой относится коллаборация, которая была указана при инициации данной процедуры;
          3. value — Если пользователь который указан при инициации данной процедуры:
        14. “Представитель бизнеса”, определяется как количество непрочитанных сообщений которые относятся к:
        15. “Коллаборациям”:
          1. Которые относятся к “Кампании”, к которой относится “Коллаборация”, которая была указана при инициации данной процедуры;
          2. В том же статусе в котором “Предыдущий статус” статуса коллаборации:
            1. Который относится к “Коллаборации”, которая была указана при инициации данной процедуры;
            2. С наибольшей датой создания.
        16. Пользователю, который указан при инициации данной процедуры.

        за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

        1. “Инфюэнсер”, определяется как количество непрочитанных сообщений которые относятся к:
        2. “Коллаборациям” в том же статусе в котором “Предыдущий статус” статуса коллаборации:
          1. Который относится к “Коллаборации”, которая была указана при инициации данной процедуры;
          2. С наибольшей датой создания.
        3. Пользователю, который указан при инициации данной процедуры.
        4. Формируется элемент:
          1. object_type — all_messages;
          2. value — Если пользователь который указан при инициации данной процедуры:
            1. “Представитель бизнеса” — Количество непрочитанных сообщений которые относятся к “Коллаборациям”, к которым относится данный “Представитель бизнеса”;
            2. “Инфлюэнсер” — Количество непрочитанных сообщений которые относятся к “Коллаборациям”, к которым относится данный “Инфлюэнсер”;

      за исключением сообщений которые определяются согласно “FR_07_3.3.2_4.1”.

  8. Инициатору данной результаты возвращается массив “data”, который был получен на этапе “2” данной процедуры.

FR_07_3.3.2_4.1
“Сообщение коллаборации” не должно учитываться при определение количества непрочитанных сообщений если определение выполняется для:

  1. “Представителя бизнеса” и:
  2. Для “Сообщение коллаборации” имеется минимум один “Просмотр сообщения пользователя” который относится к пользователю, “Роль” которого “Бизнес представитель”;
    или
  3. Автором “Сообщения коллаборации” является пользователь, “Роль” которого “Бизнес представитель”;
    или
    1. “Тип” сообщения — Системное;
      и
    2. Инициатор:

      1. “Команда Rippla”;

      или

      1. “Представитель бизнеса”;

      или

      1. “Администратор” и “Идентификатор шаблона”:
        1. 14;
        2. 15;
        3. 16.

    или

  4. “Свойство доступности” сообщения коллаборации — Инфлюэнсер.

  5. “Инфлюэнсера” и:
  6. “Тип” сообщения коллаборации — Системное;
    и
  7. Инициатор:

    1. “Команда Rippla”
      или
    2. “Инфлюэнсер”;
      или
    3. “Администратор” и “Идентификатор шаблона”:
      1. 9;
      2. 10;
      3. 11;
      4. 12.

    или

  8. “Свойство доступности” сообщения коллаборации — Представитель бизнеса.

07_3.3.2_5 Процедура для определения количества непрочитанных сообщений кампании

API: GET /private/campaigns/new_messages · GET /private/collaborations/my/new_messages

  1. Инициируется выполнение данной процедуры с параметрами:
  2. Пользователь.
  3. Для “Кампании” выполняется формирования массива “data”:
  4. 1 элемент:

    1. object_type — active_campaign;
    2. value — Сумма:

      1. Непрочитанных сообщений, которые относятся:
        1. К “Коллаборациям”, которые относятся к “Кампаниям” в статусе “Активная”;
        2. Пользователю, который указан при инициации данной процедуры.

      за исключением сообщений которые определяются согласно “FR_07_3.3.2_5.1”.

  5. 2 элемент:

    1. object_type — hidden_campaign;
    2. value — Сумма:

      1. Непрочитанных сообщений, которые относятся:
        1. К “Коллаборациям”, которые относятся к “Кампаниям” в статусе “Приостановлена”;
        2. Пользователю, который указан при инициации данной процедуры.

      за исключением сообщений которые определяются согласно “FR_07_3.3.2_5.1”.

  6. 3 элемент:

    1. object_type — finished_campaign;
    2. value — Сумма:

      1. Непрочитанных сообщений, которые относятся:
        1. К “Коллаборациям”, которые относятся к “Кампаниям” в статусе “Завершена”;
        2. Пользователю, который указан при инициации данной процедуры.

      за исключением сообщений которые определяются согласно “FR_07_3.3.2_5.1”.

  7. Инициатору данной результаты возвращается массив “data”, который был получен на этапе “2” данной процедуры.

FR_07_3.3.2_5.1
“Сообщение коллаборации” не должно учитываться при определение количества непрочитанных сообщений если определение выполняется для:

  1. “Представителя бизнеса” и:
  2. Для “Сообщение коллаборации” имеется минимум один “Просмотр сообщения пользователя” который относится к пользователю, “Роль” которого “Бизнес представитель”;
    или
  3. Автором “Сообщения коллаборации” является пользователь, “Роль” которого “Бизнес представитель”;
    или
    1. “Тип” сообщения — Системное;
      и
    2. Инициатор:

      1. “Команда Rippla”;

      или

      1. “Представитель бизнеса”;

      или

      1. “Администратор” и “Идентификатор шаблона” сообщения коллаборации — 14.

    или

  4. “Свойство доступности” сообщения коллаборации — Инфлюэнсер.

07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет
  1. Выполняется инициация данной процедуры с параметрами:
  2. Идентификаторы сообщений коллаборации.
  3. Для:
  4. “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится каждое “Сообщение коллаборации” для которого инициирована данная процедура и “Свойство доступности” которого “Все” или “Инфлюэнсер”;
  5. Каждого “Представителя бизнеса” который относится к “Коллаборации”, к которой относится каждое “Сообщение коллаборации”, для которого инициирована данная процедура и “Свойство доступности” которого “Все” или “Представитель бизнеса”;

и имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя}” с параметрами:

  1. 1 объект:
    1. type — “collaboration_message_created”;
    2. data.id — “Идентификатор” сообщения коллаборации, для которого инициирована данная процедура;
    3. data.collaboration_id — Идентификатор коллаборации, к которой относится каждое “Сообщение коллаборации”, для которого инициирована данная процедура;
    4. data.message — “Текст сообщения” сообщения коллаборации, для которого инициирована данная процедура;
    5. data.created_at — “Дата создания” сообщения коллаборации, для которого инициирована данная процедура;
    6. data.author — Если “Тип” сообщения:
      1. “Пользовательское” и “Автором” является пользователь, роль которого:
        1. “Инфлюэнсер” — influencer;
        2. “Представитель бизнеса” — business_representative.
      2. “Системное” / “От команды Rippla” — system.
    7. data.files — массив, который для каждого “Файла сообщения коллаборации”, который относится к “Сообщению коллаборации”, для которого инициирована данная процедура, отсортированных по “Дате создания” по возрастанию, содержит объект:
      1. id — “Идентификатор файла” данного “Файла сообщения коллаборации”;
      2. url — ссылка на “Файл”, к которому относится данный “Файл сообщения коллаборации”, сформированная согласно “FR_2.1.8_1 Формирование ссылки на файл”;
      3. preview — ссылка на превью “Файла”, к которому относится данный “Файл сообщения коллаборации”, сформированная согласно “FR_2.1.8_2 Формирование ссылки на превью файла”.
    8. data.files_count — количество “Файлов сообщения коллаборации”, которые относятся к “Сообщению коллаборации”, для которого инициирована данная процедура.
  2. n объект:
    1. type — “collaboration_message_created”;
    2. data.id — “Идентификатор” сообщения коллаборации, для которого инициирована данная процедура;
    3. data.collaboration_id — Идентификатор коллаборации, к которой относится каждое “Сообщение коллаборации”, для которого инициирована данная процедура;
    4. data.message — “Текст сообщения” сообщения коллаборации, для которого инициирована данная процедура;
    5. data.created_at — “Дата создания” сообщения коллаборации, для которого инициирована данная процедура;
    6. data.author — Если “Тип” сообщения:
      1. “Пользовательское” и “Автором” является пользователь, роль которого:
        1. “Инфлюэнсер” — influencer;
        2. “Представитель бизнеса” — business_representative.
      2. “Системное” / “От команды Rippla” — system.
    7. data.files — массив, который для каждого “Файла сообщения коллаборации”, который относится к “Сообщению коллаборации”, для которого инициирована данная процедура, отсортированных по “Дате создания” по возрастанию, содержит объект:
      1. id — “Идентификатор файла” данного “Файла сообщения коллаборации”;
      2. url — ссылка на “Файл”, к которому относится данный “Файл сообщения коллаборации”, сформированная согласно “FR_2.1.8_1 Формирование ссылки на файл”;
      3. preview — ссылка на превью “Файла”, к которому относится данный “Файл сообщения коллаборации”, сформированная согласно “FR_2.1.8_2 Формирование ссылки на превью файла”.
    8. data.files_count — количество “Файлов сообщения коллаборации”, которые относятся к “Сообщению коллаборации”, для которого инициирована данная процедура.

3.4 Пост

Пост является результатом коллаборации между инфлюэнсером и бизнесом.

3.4_1 Виды постов

Класс Описание
Пост или рилс Пост или рилс в instagram.
История История в instagram.

3.4.1 Данные поста коллаборации

3.4.1.1 Параметры поста коллаборации(collaboration_posts)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор коллаборации collaboration_id bigint да нет
Дата обновления статистики инфлюэнсером stats_updated_by_influencer_at timestamp нет нет
Дата обновления статистики бизнесом stats_updated_by_business_at timestamp нет нет
Вид type enum да нет Возможны следующие виды поста коллаборации: 1 — Пост или рилс; 2 — История.
Идентификатор пользователя author_id bigint нет нет
Ссылка link text нет нет
Текст text text нет нет
Количество просмотров total_views int нет нет
Количество лайков total_likes int нет нет
Количество комментариев total_comments int нет нет
Охват total_reach int нет нет
Количество поделившихся total_shares int нет нет
Количество сохранений total_saves int нет нет
Количество нажатий на упоминание total_taps_on_mention int нет нет
Количество проигрываний total_play int нет нет
Количество репостов total_reposts int нет нет
Дата публикации published_at timestamp нет нет Дата публикации поста/сторис на площадке. Заполняется из внешних источников (например, Apify).
Статус необходимости загрузки статистики is_stats_required boolean да нет По умолчанию true.
Ожидаемая дата загрузки статистики required_stats_upload_at timestamp нет нет
3.4.1.2 Параметры файла поста коллаборации (collaboration_post_files)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата удаления deleted_at timestamp нет нет
Идентификатор поста коллаборации collaboration_post_id bigint да нет
Идентификатор файла file_id bigint да нет
Тип type enum да нет Возможны следующие типы файла поста коллаборации: 1 — Пост; 2 — Статистика.
3.4.1.3 Параметры запроса статистики поста коллаборации (collaboration_post_stats_requests)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор поста коллаборации collaboration_post_id bigint да нет
Статус status enum да нет Возможны следующие статусы: 1 — Обработка; 2 — Не успешно; 3 — Успешно.
Идентификатор запущенного актора apify_actor_run_id string нет нет
3.4.1.4 Параметры связи файла поста коллаборации и запроса обновления статистики поста коллаборации(collaboration_post_stats_request_files)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор запроса обновления статистики поста коллаборации collaboration_post_stats_request_id bigint да нет
Идентификатор файла поста коллаборации collaboration_post_file_id bigint да нет

3.4.2 CRUD Поста

07_3.4.2_1 Процедура создания поста коллаборации

API: POST /private/collaborations/{id}/posts

  1. Клиентской частью сервиса выполняется запрос “Create collaboration post by influencer”:
  2. С параметрами:
    1. collaboration_id;
  3. С телом запроса:
    1. type;
    2. link;
    3. file_ids;
    4. file_stats_ids.
  4. Если значение параметра “type”, который был указан при инициации данной процедуры:
    1. “Пост или рилс” и значение параметра “link” который был указан при инициации данной процедуры содержит подстроку "/stories/”, на запрос “Create collaboration post by influencer” возвращается ошибка “0728”;
    2. “История” и значение параметра “link” который был указан при инициации данной процедуры не содержит подстроку "/stories/”, на запрос “Create collaboration post by influencer” возвращается ошибка “0729”;
  5. Если “Статус возможности создания поста” коллаборации — false, на запрос “Create collaboration post by influencer” возвращается ошибка “0738”.
  6. Выполняется:
  7. Cоздание “Поста коллаборации” с параметрами:
    1. Вид — согласно значению параметра “type”, который был получен при инициации данной процедуры;
    2. Ссылка — согласно значению параметра “link”, который был получен при инициации данной процедуры.
  8. Для каждого файла, который указан при инициации данной процедуры выполняется создание “Файла поста коллаборации” с параметрами:
    1. Идентификатор файла — Идентификатор файла, для которого выполняется этап “3_b” данной процедуры;
    2. Идентификатор поста коллаборации — Идентификатор поста коллаборации, который указан при инициации данной процедуры;
    3. Тип — “Пост”.
  9. Если значение параметра “type”, который был указан при инициации данной процедуры “Пост или рилс”:
    1. Выполняется Добавление сообщение “Пост коллаборации” в “Очередь получения первичных данных о посте коллаборации через Apify” с параметрами:
      1. Идентификатор поста коллаборации — Идентификатор поста коллаборации, который был создан на этапе “2_a” данной процедуры.
    2. И имеется “Номер попытки” настройки “Политика выполнения запросов к Apify” — 1, выполняется добавление сообщение “Пост коллаборации для обновления данных” в “Очередь обновления данных о посте коллаборации через Apify”:
      1. С параметрами:
        1. Идентификатор поста коллаборации — Идентификатор поста коллаборации, который был создан на этапе “2_a” данной процедуры;
        2. Номер попытки обновления — 1.
      2. С опциями:
        1. delay_stamp — “Период отсрочки” для первой попытки обновления настройки “Политика выполнения запросов к Apify”.
  10. Если при инициации данной процедуры был указан параметр “file_stats_ids”, выполняется “07_3.4.2_4 Процедура загрузки файлов статистики поста коллаборации” с параметрами:
    1. collaboration_post_id — Идентификатор поста коллаборации, который был создан на этапе “2_a” данной процедуры;
    2. file_ids — “file_stats_ids”, который был указан при инициации данной процедуры.
  11. Если к “Коллаборации” для которой была инициирована данная процедура, до выполнения этапа “3_a” данной процедуры не относился минимум один “Пост коллаборации”:
    1. Создание “Сообщения коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации, который был указан при инициации данной процедуры;
      3. Тип — Системное;
      4. Идентификатор шаблона — 22;
      5. Инициатор — Инфлюэнсер;
      6. Свойство доступности — Инфлюэнсер.
    2. Создание “Сообщения коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации, который был указан при инициации данной процедуры;
      3. Тип — Системное;
      4. Идентификатор шаблона — 26;
      5. Инициатор — Инфлюэнсер;
      6. Свойство доступности — Представитель бизнеса.
    3. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
      1. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “3_e_i” и “3_e_ii” данной процедуры.
    4. Для каждого “Представителя бизнеса”, который относится к “Коллаборации” для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету выполняется:
      1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор “Представителя бизнеса”, для которого выполняется этап “3_e_iv” данной процедуры;
        3. Тип — Статус.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, для которой была инициирована данная процедура;
        4. data[ ].new_status — results_added;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
    5. Для “Инфлюэнсера”, который относится к “Коллаборации”, для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету, выполняется:
      1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор “Представителя бизнеса”, для которого выполняется этап “3_e_v” данной процедуры;
        3. Тип — Статус.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, для которой была инициирована данная процедура;
        4. data[ ].new_status — results_added;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
    6. Если “Статус” коллаборации для которой инициирована данная процедура не “Завершена”:
      1. Выполняется изменение “Коллаборации” со следующими параметрами:
        1. Статус — Завершена;
      2. Создание “Статуса коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации для которой была инициирована данная процедура;
        3. Идентификатор пользователя — Идентификатор пользователя который инициировал выполнение данной процедуры;
        4. Статус — Завершена;
        5. Предыдущий статус — Предыдущий статус коллаборации.
  12. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
    1. template_id — New content uploaded;
    2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
  13. Выполняется “07_2.2_11 Процедура проверки необходимости изменения статуса кампаний бизнеса” с параметрами:
    1. Идентификатор бизнеса — Идентификатор бизнеса, к которой относится “Коллаборация” для которой инициирована данная процедура.
  14. Если значение параметра “type”, который был указан при инициации данной процедуры:
    1. “Пост или рилс” и значение параметра “Количество постов к загрузке” “Коллаборации”, для которой инициирована данная процедура, больше 0, изменение данной “Коллаборации” с параметром: Количество постов к загрузке — уменьшенное на 1 значение текущего “Количества постов к загрузке”;
    2. “История” и значение параметра “Количество сторис к загрузке” “Коллаборации”, для которой инициирована данная процедура, больше 0, изменение данной “Коллаборации” с параметром: Количество сторис к загрузке — уменьшенное на 1 значение текущего “Количества сторис к загрузке”.
  15. Если для “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура, имеется “Персональное количество бесплатных откликов”:
    1. Выполняется “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” с параметрами:
      1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, для которой инициирована данная процедура.
    2. Если “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” выполнена успешно, выполняется “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” с параметрами:
      1. user_id — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура.
  16. На запрос “Create collaboration post by influencer” возвращается информация об успешном выполнении данной процедуры.

07_3.4.2_1.1 Ошибки при выполнении процедуры 07_3.4.2_1

Код ошибки Этап Локаль Текст ошибки
0728 2_a_i en “This is the wrong link. Please attach a link to the post or reel.”
es “Este enlace es incorrecto. Por favor, adjunta un enlace al post o reel.”
pt “Este link está incorreto. Por favor, anexe um link para o post ou reel.”
de “Dies ist der falsche Link. Bitte füge einen Link zum Beitrag oder Reel hinzu.”
0729 2_a_ii en “This is the wrong link. Please attach a link to the Stories.”
es “Este enlace es incorrecto. Por favor, adjunta un enlace a las Stories.”
pt “Este link está incorreto. Por favor, anexe um link para os Stories.”
de “Dies ist der falsche Link. Bitte füge einen Link zu den Stories hinzu.”
0738 2_b en "Not enough days have passed since the post was published. Please wait for the post to gain more views. If you disagree, please contact support."
es "No han pasado suficientes días desde la publicación del post. Por favor, espera a que el post obtenga más visualizaciones. Si no estás de acuerdo, contacta con soporte."
pt "Não se passaram dias suficientes desde a publicação do post. Por favor, aguarde até que o post obtenha mais visualizações. Se não concordar, entre em contato com o suporte."
de "Es sind noch nicht genug Tage seit der Veröffentlichung des Beitrags vergangen. Bitte warten Sie, bis der Beitrag mehr Aufrufe erhält. Wenn Sie nicht einverstanden sind, wenden Sie sich bitte an den Support."
07_3.4.2_2 Процедура создания поста коллаборации внешним методом

API: POST /collaborations/{id}/posts

  1. Выполняется запрос “Create collaboration post”:
  2. С параметрами:
    1. collaboration_id;
  3. С телом запроса:
    1. type;
    2. link;
    3. total_views;
    4. total_likes;
    5. total_comments;
    6. total_reach;
    7. total_shares;
    8. total_saves;
    9. total_taps_on_mention;
    10. total_play;
    11. total_reposts;
    12. text;
    13. files;
    14. skip_apify_sync;
    15. stats_upload_at;
    16. is_stats_required;
    17. published_at.
  4. Выполняется:
  5. Создание “Поста коллаборации” с параметрами:
    1. Вид — согласно значению параметра “type”, который был получен при инициации данной процедуры;
    2. Ссылка — согласно значению параметра “link”, который был получен при инициации данной процедуры;
    3. Количество просмотров — согласно значению параметра “total_views”, который был получен при инициации данной процедуры;
    4. Количество лайков — согласно значению параметра “total_likes”, который был получен при инициации данной процедуры;
    5. Количество комментариев — согласно значению параметра “total_comments”, который был получен при инициации данной процедуры;
    6. Охват — согласно значению параметра “total_reach”, который был получен при инициации данной процедуры;
    7. Количество поделившихся — согласно значению параметра “total_shares”, который был получен при инициации данной процедуры;
    8. Количество репостов — согласно значению параметра “total_reposts”, который был получен при инициации данной процедуры;
    9. Количество сохранений — согласно значению параметра “total_saves”, который был получен при инициации данной процедуры;
    10. Количество нажатий на упоминание — согласно значению параметра “total_taps_on_mention”, который был получен при инициации данной процедуры;
    11. Количество проигрываний — согласно значению параметра “total_play”, который был получен при инициации данной процедуры;
    12. Текст — согласно значению параметра “text”, который был получен при инициации данной процедуры;
    13. Ожидаемая дата загрузки статистики — согласно значению параметра “stats_upload_at”, который был получен при инициации данной процедуры;
    14. Статус необходимости загрузки статистики — согласно значению параметра “is_stats_required”, который был получен при инициации данной процедуры;
    15. Дата публикации — согласно значению параметра “published_at”, который был получен при инициации данной процедуры.
  6. Для каждого файла, который был указан в массиве “files” выполняется “01_2.1.8.2.2 Процедура сохранения файла” с параметрами:
    1. Ссылка на файл — ссылка на файл, для которого выполняется этап “2_b” данной процедуры.
  7. Для каждого файла, который был создан на этапе “2_b” данной процедуры выполняется создание “Файла поста коллаборации” с параметрами:
    1. Идентификатор файла — Идентификатор файла, для которого выполняется этап “2_с” данной процедуры;
    2. Идентификатор поста коллаборации — Идентификатор поста коллаборации, который указан при инициации данной процедуры;
    3. Тип — “Пост”.
  8. Если значение параметра “type”, который был указан при инициации данной процедуры “Пост или рилс” и значение параметра “skip_apify_sync”, который был указан при инициации данной процедуры, не “true” и имеется “Номер попытки” настройки “Политика выполнения запросов к Apify” — 1, выполняется добавление сообщение “Пост коллаборации для обновления данных” в “Очередь обновления данных о посте коллаборации через Apify”:
    1. С параметрами:
      1. Идентификатор поста коллаборации — Идентификатор поста коллаборации — Идентификатор поста коллаборации, который был создан на этапе “2_a” данной процедуры;
      2. Номер попытки обновления — 1;
    2. С опциями:
      1. delay_stamp — “Период отсрочки” для первой попытки обновления настройки “Политика выполнения запросов к Apify”.
  9. Если к “Коллаборации” для которой была инициирована данная процедура, до выполнения этапа “3_a” данной процедуры не относился минимум один “Пост коллаборации”:
    1. Создание “Сообщения коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации, который был указан при инициации данной процедуры;
      3. Тип — Системное;
      4. Идентификатор шаблона — 22;
      5. Инициатор — Инфлюэнсер;
      6. Свойство доступности — Инфлюэнсер.
    2. Создание “Сообщения коллаборации” с параметрами:
      1. Дата создания — согласно текущей дате;
      2. Идентификатор коллаборации — Идентификатор коллаборации, который был указан при инициации данной процедуры;
      3. Тип — Системное;
      4. Идентификатор шаблона — 26;
      5. Инициатор — Инфлюэнсер;
      6. Свойство доступности — Представитель бизнеса.
    3. Выполняется “07_3.3.2_6 Процедура отправки сообщений коллаборации в веб-сокет” с параметрами:
      1. Идентификаторы сообщений коллабораций — Идентификаторы сообщений коллаборации, которые были созданы на этапе “3_e_i” и “3_e_ii” данной процедуры.
    4. Для каждого “Представителя бизнеса”, который относится к “Коллаборации” для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету выполняется:
      1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор “Представителя бизнеса”, для которого выполняется этап “3_e_iv” данной процедуры;
        3. Тип — Статус.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, для которой была инициирована данная процедура;
        4. data[ ].new_status — results_added;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
    5. Для “Инфлюэнсера”, который относится к “Коллаборации”, для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету, выполняется:
      1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор “Представителя бизнеса”, для которого выполняется этап “3_e_v” данной процедуры;
        3. Тип — Статус.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Инфлюэнсер”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — Статус коллаборации, для которой была инициирована данная процедура;
        4. data[ ].new_status — results_added;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
    6. Если “Статус” коллаборации для которой инициирована данная процедура не “Завершена”:
      1. Выполняется изменение “Коллаборации” со следующими параметрами:
        1. Статус — Завершена;
      2. Создание “Статуса коллаборации” с параметрами:
        1. Дата создания — согласно текущей дате;
        2. Идентификатор коллаборации — Идентификатор коллаборации для которой была инициирована данная процедура;
        3. Идентификатор пользователя — Идентификатор пользователя который инициировал выполнение данной процедуры;
        4. Статус — Завершена;
        5. Предыдущий статус — Предыдущий статус коллаборации.
  10. Выполняется “01.1.13_1.1_1 Процедура отправки push-уведомления” с параметрами:
    1. template_id — New content uploaded;
    2. collaboration_id — “Идентификатор коллаборации”, для которой инициирована данная процедура.
  11. Если значение параметра “type”, который был указан при инициации данной процедуры:
    1. “Пост или рилс” и значение параметра “Количество постов к загрузке” “Коллаборации”, для которой инициирована данная процедура, больше 0, изменение данной “Коллаборации” с параметром: Количество постов к загрузке — уменьшенное на 1 значение текущего “Количества постов к загрузке”;
    2. “История” и значение параметра “Количество сторис к загрузке” “Коллаборации”, для которой инициирована данная процедура, больше 0, изменение данной “Коллаборации” с параметром: Количество сторис к загрузке — уменьшенное на 1 значение текущего “Количества сторис к загрузке”.
  12. Если для “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура, имеется “Персональное количество бесплатных откликов”:
    1. Выполняется “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” с параметрами:
      1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, для которой инициирована данная процедура.
    2. Если “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” выполнена успешно, выполняется “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” с параметрами:
      1. user_id — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации” для которой инициирована данная процедура.
  13. На запрос “Create collaboration post” возвращается информация об успешном выполнении данной процедуры.
07_3.4.2_3 Процедура запроса обновления статистики поста

API: POST /private/collaborations/{id}/posts/request_stats_update

  1. Клиентской частью сервиса выполняется запрос “Request stats update for collaboration posts” с параметрами:
  2. collaboration_id.
  3. Если запрос “Request stats update for collaboration post” выполнил:
  4. “Инфлюэнсер” и разница между текущем временем и “Датой обновления статистики инфлюэнсером” одного из “Постов коллаборации”, который относится к “Коллаборации” для которой инициирована данная процедура, меньше “Минимального интервал между прямыми запросами” настройки “Политики выполнения запросов к Apify” на запрос “Request stats update for collaboration posts” возвращается ошибка “0726”;
  5. “Представитель бизнеса” и разница между текущем временем и “Датой обновления статистики инфлюэнсером” одного из “Постов коллаборации”, который относится к “Коллаборации” для которой инициирована данная процедура, меньше “Минимального интервал между прямыми запросами” настройки “Политики выполнения запросов к Apify” на запрос “Request stats update for collaboration posts” возвращается ошибка “0727”.
  6. Для каждого “Поста коллаборации” значение параметра “type”, которого “Пост или рилс”, который относится к “Коллаборации” для которой инициирована данная процедура, выполняется:
  7. Изменение согласно следующим параметрам:
    1. “Дата обновления статистики инфлюэнсером” — Текущая дата. Если запрос “Request stats update for collaboration posts” выполнил “Инфлюэнсер”;
    2. “Дата обновления статистики бизнесом” — Текущая дата. Если запрос “Request stats update for collaboration posts” выполнил “Представитель бизнеса”.
  8. Добавление сообщение “Пост коллаборации для обновления данных” в “Очередь получения данных о посте через Apify” с параметрами:
    1. Идентификатор поста коллаборации — Идентификатор поста коллаборации, для которого инициирована данная процедура.
  9. На запрос “Request stats update for collaboration posts” возвращается информация об успешном выполнении данной процедуры.

07_3.4.2_3.1 Ошибки при выполнении процедуры 07_3.4.2_3

Код ошибки Этап Локаль Текст ошибки
0726 2_a en “Refresh is not available. You can refresh the statistics no more than once per day. The next refresh will be available at {Время в которое будет доступен следующий запрос} on {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос}.”
es “La actualización no está disponible. Puedes actualizar las estadísticas no más de una vez al día. La próxima actualización estará disponible a las {Время в которое будет доступен следующий запрос} el {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос}.”
pt “A atualização não está disponível. Você pode atualizar as estatísticas no máximo uma vez por dia. A próxima atualização estará disponível às {Время в которое будет доступен следующий запрос} em {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос}.”
de “Die Aktualisierung ist nicht verfügbar. Du kannst die Statistiken höchstens einmal pro Tag aktualisieren. Die nächste Aktualisierung ist um {Время в которое будет доступен следующий запрос} am {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос} verfügbar.”
0727 2_b en “Refresh is not available. You can refresh the statistics no more than once per day. The next refresh will be available at {Время в которое будет доступен следующий запрос} on {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос}.”
es “La actualización no está disponible. Puedes actualizar las estadísticas no más de una vez al día. La próxima actualización estará disponible a las {Время в которое будет доступен следующий запрос} el {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос}.”
pt “A atualização não está disponível. Você pode atualizar as estatísticas no máximo uma vez por dia. A próxima atualização estará disponível às {Время в которое будет доступен следующий запрос} em {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос}.”
de “Die Aktualisierung ist nicht verfügbar. Du kannst die Statistiken höchstens einmal pro Tag aktualisieren. Die nächste Aktualisierung ist um {Время в которое будет доступен следующий запрос} am {Месяц в котором будем доступен следующий запрос} {День в который будет доступен следующий запрос} verfügbar.”
07_3.4.2_4 Процедура загрузки файлов статистики поста коллаборации

API: POST /private/collaborations/posts/{id}/stats

  1. Клиентской частью сервиса выполняется запрос “Upload collaboration post stats screenshots”:
    1. C параметрами:
      1. collaboration_post_id.
    2. С телом запроса:
      1. file_ids.
  2. Выполняется инициации данной процедуры с параметрами:
    1. collaboration_post_id;
    2. file_ids.
  3. Если для “Поста коллаборации”, для которого инициирована данная процедура, имеется “Дата публикации” и разница между текущей датой и “Датой публикации” меньше:
  4. “post_min_age_h” настройки “Политика загрузки статистики поста коллаборации”, если “Вид” поста коллаборации “Пост или рилс”;
  5. “story_min_age_h” настройки “Политика загрузки статистики поста коллаборации”, если “Вид” поста коллаборации “История”,

на запрос “Upload collaboration post stats screenshots” возвращается ошибка “0740”.

  1. Создание “Запроса обновления статистики поста коллаборации” с параметрами:
    1. Идентификатор поста коллаборации — Идентификатор поста коллаборации, который указан при инициации данной процедуры;
    2. Статус — “Обработка”.
  2. Для каждого файла, который указан при инициации данной процедуры выполняется создание “Файла поста коллаборации” с параметрами:
    1. Идентификатор файла — Идентификатор файла, для которого выполняется этап “3_а” данной процедуры;
    2. Идентификатор поста коллаборации — Идентификатор поста коллаборации, который указан при инициации данной процедуры;
    3. Тип — “Статистика”.
  3. Для каждого файла поста коллаборации, который был создан на этапе “3_b” данной процедуры выполняется создание “Связи файла поста коллаборации и запроса обновления статистики поста коллаборации”:
    1. Идентификатор запроса обновления статистики поста коллаборации — Идентификатор запроса обновления статистики поста коллаборации, который был создан на этапе “3_a” данной процедуры;
    2. Идентификатор запроса обновления статистики поста коллаборации — Идентификатор запроса обновления статистики поста коллаборации, для которого выполняется этап “3_с” данной процедуры.
  4. Добавление сообщения “Запрос обновления статистики поста коллаборации” в “Очередь “Обработка статистики ИИ-моделью OpenAI”” с параметрами:
    1. Идентификатор запроса обновления статистики поста коллаборации — Идентификатор запроса обновления статистики поста коллаборации, который был создан на этапе “3_a” данной процедуры.
  5. Инициатору данной процедуры возвращается информация об успешном выполнении данной процедуры.

07_3.4.2_4.1 Ошибки при выполнении процедуры 07_3.4.2_4

Код ошибки Этап Локаль Текст ошибки
0740 2 en "Statistics can't be uploaded yet. Please wait until enough time has passed since the post was published."
es "Aún no se pueden subir las estadísticas. Espera a que haya pasado suficiente tiempo desde la publicación."
pt "As estatísticas ainda não podem ser enviadas. Aguarde até que tenha passado tempo suficiente desde a publicação."
de "Statistiken können noch nicht hochgeladen werden. Bitte warte, bis seit der Veröffentlichung genug Zeit vergangen ist."
07_3.4.2_5 Процедура обновления поста коллаборации внешним методом

API: PATCH /collaboration_posts/{id}

  1. Выполняется запрос “Update collaboration post”:
  2. С параметрами:
    1. collaboration_post_id;
  3. С телом запроса:
    1. type;
    2. total_views;
    3. total_likes;
    4. total_comments;
    5. total_reach;
    6. total_shares;
    7. total_saves;
    8. total_taps_on_mention;
    9. total_reposts;
    10. total_play;
    11. is_stats_required;
    12. stats_upload_at.
  4. Выполняется:
  5. Изменение “Поста коллаборации”, для которого инициирована данная процедура:
    1. Вид — согласно значению параметра “type”, который был получен при инициации данной процедуры;
    2. Количество просмотров — согласно значению параметра “total_views”, который был получен при инициации данной процедуры;
    3. Количество лайков — согласно значению параметра “total_likes”, который был получен при инициации данной процедуры;
    4. Количество комментариев — согласно значению параметра “total_comments”, который был получен при инициации данной процедуры;
    5. Охват — согласно значению параметра “total_reach”, который был получен при инициации данной процедуры;
    6. Количество поделившихся — согласно значению параметра “total_shares”, который был получен при инициации данной процедуры;
    7. Количество репостов — согласно значению параметра “total_reposts”, который был получен при инициации данной процедуры;
    8. Количество сохранений — согласно значению параметра “total_saves”, который был получен при инициации данной процедуры;
    9. Количество нажатий на упоминание — согласно значению параметра “total_taps_on_mention”, который был получен при инициации данной процедуры;
    10. Количество проигрываний — согласно значению параметра “total_play”, который был получен при инициации данной процедуры;
    11. Если при инициации данной процедуры был указан параметр “is_stats_required”, Статус необходимости загрузки статистики — согласно значению данного параметра;
    12. Если при инициации данной процедуры был указан параметр “stats_upload_at”, Ожидаемая дата загрузки статистики — согласно значению данного параметра.
  6. Если значение параметра “is_stats_required”, который был указан при инициации данной процедуры — false и для “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура, имеется “Персональное количество бесплатных откликов”:
    1. Выполняется “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” с параметрами:
      1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура.
    2. Если “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” выполнена успешно, выполняется “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” с параметрами:
      1. user_id — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура.
  7. “07_3.3.2_7 Процедура отправки статистики поста коллаборации в веб-сокет” с параметрами:
    1. Идентификатор поста коллаборации — “Идентификатор” поста коллаборации, для которого инициирована данная процедура.
  8. На запрос “Update collaboration post” возвращается информация об успешном выполнении данной процедуры.
07_3.4.2_6 Процедура обновления поста коллаборации методом ИИ-модели

API: PATCH /collaboration_posts/stats

  1. Клиентской частью сервиса выполняется запрос “Update collaboration post by ai”:
  2. С параметрами:
    1. collaboration_post_stats_request_id;
  3. С телом запроса:
    1. total_views;
    2. total_likes;
    3. total_comments;
    4. total_reach;
    5. total_shares;
    6. total_saves;
    7. total_taps_on_mention;
    8. total_play;
    9. total_reposts;
    10. status.
  4. Выполняется:
  5. Изменение “Запроса обновления статистики поста коллаборации”:
    1. Статус — согласно значению параметра “status”, который был получен при инициации данной процедуры.
  6. Изменение “Поста коллаборации”, к которому относится “Запрос обновления поста коллаборации”, для которого инициирована данная процедура:
    1. Количество просмотров — согласно значению параметра “total_views”, который был получен при инициации данной процедуры;
    2. Количество лайков — согласно значению параметра “total_likes”, который был получен при инициации данной процедуры;
    3. Количество комментариев — согласно значению параметра “total_comments”, который был получен при инициации данной процедуры;
    4. Охват — согласно значению параметра “total_reach”, который был получен при инициации данной процедуры;
    5. Количество поделившихся — согласно значению параметра “total_shares”, который был получен при инициации данной процедуры;
    6. Количество репостов — согласно значению параметра “total_reposts”, который был получен при инициации данной процедуры;
    7. Количество сохранений — согласно значению параметра “total_saves”, который был получен при инициации данной процедуры;
    8. Количество нажатий на упоминание — согласно значению параметра “total_taps_on_mention”, который был получен при инициации данной процедуры;
    9. Количество проигрываний — согласно значению параметра “total_play”, который был получен при инициации данной процедуры.
  7. Если “Статус” “Запроса обновления статистики поста коллаборации”, который был установлен на этапе “2_a” данной процедуры — “Успешно”:
    1. Изменение “Поста коллаборации”, к которому относится “Запрос обновления статистики поста коллаборации”, для которого инициирована данная процедура, с параметром: Статус необходимости загрузки статистики — false.
    2. Если для “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура, имеется “Персональное количество бесплатных откликов”:
      1. Выполняется “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” с параметрами:
        1. Идентификатор инфлюэнсера — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура.
      2. Если “02_3.2_13 Проверка возможности снятия ограничения по контенту с инфлюэнсера” выполнена успешно, выполняется “02_3.2_12 Процедура снятия ограничения откликов инфлюэнсера” с параметрами:
        1. user_id — Идентификатор “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура.
  8. “07_3.3.2_7 Процедура отправки статистики поста коллаборации в веб-сокет” с параметрами:
    1. Идентификатор поста коллаборации — “Идентификатор” поста коллаборации, к которому относится “Запрос обновления поста коллаборации”, для которого инициирована данная процедура.
  9. На запрос “Update collaboration post by ai” возвращается информация об успешном выполнении данной процедуры.
07_3.3.2_7 Процедура отправки статистики поста коллаборации в веб-сокет
  1. Выполняется инициация данной процедуры с параметрами:
  2. Идентификатор поста коллаборации.
  3. Для:
  4. “Инфлюэнсера”, который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура;
  5. Каждого “Представителя бизнеса” который относится к “Коллаборации”, к которой относится “Пост коллаборации”, для которого инициирована данная процедура;

и имеется подключение к веб-сокету, выполняется отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя}” если “Тип” поста коллаборации для которого инициирована данная процедура:

  1. “Пост или рилс”:
    1. type — post_or_reel_stat_updated;
    2. data.id — “Идентификатор” поста коллаборации, для которого инициирована данная процедура;
    3. data.total_views — Если для “Поста коллаборации”, для которого инициирована данная процедура:
      1. Имеется “Количество проигрываний” определяется согласно “Количеству проигрываний”;
      2. Не имеется “Количество проигрываний” и имеется “Количество просмотров” определяется согласно “Количеству просмотров”.
    4. data.total_likes — “Количество лайков”, поста коллаборации для которого инициирована данная процедура;
    5. data.total_comments — “Количество комментариев”, поста коллаборации для которого инициирована данная процедура;
    6. data.total_reach — “Охват”, поста коллаборации для которого инициирована данная процедура;
    7. data.total_shares — “Количество поделившихся”, поста коллаборации для которого инициирована данная процедура;
    8. data.total_reposts — “Количество репостов”, поста коллаборации для которого инициирована данная процедура;
    9. data.total_saves — “Количество сохранений”, поста коллаборации для которого инициирована данная процедура.
  2. “История”:
    1. type — story_stat_updated;
    2. data.id — “Идентификатор” поста коллаборации, для которого инициирована данная процедура;
    3. data.total_reach — “Охват”, поста коллаборации для которого инициирована данная процедура;
    4. data.total_views — Если для “Поста коллаборации”, для которого инициирована данная процедура:
      1. Имеется “Количество проигрываний” определяется согласно “Количеству проигрываний”;
      2. Не имеется “Количество проигрываний” и имеется “Количество просмотров” определяется согласно “Количеству просмотров”.
    5. data.total_taps_on_mention — “Количество нажатий на упоминание”, поста коллаборации для которого инициирована данная процедура.
07_3.3.2_8 Процедура удаления поста коллаборации

API: DELETE /private/collaborations/posts/{id}

  1. Клиентской частью сервиса выполняется запрос "Delete collaboration post by influencer" с параметрами:
  2. id — Идентификатор поста для коллаборации, для которого была инициирована данная процедура.
  3. Выполняется изменение “Даты удаления” Поста коллаборации, для которого была инициирована данная процедура, на текущую дату.
  4. Если для коллаборации к которой относится “Пост коллаборации”, для которого была инициирована данная процедура не имеется ни одного “Поста коллаборации”:
    1. Для каждого “Представителя бизнеса”, который относится к “Коллаборации” для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету выполняется:
      1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор “Представителя бизнеса”, для которого выполняется этап “3_e_i” данной процедуры;
        3. Тип — Статус.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — results_added;
        4. data[ ].new_status — Статус коллаборации, для которой была инициирована данная процедура;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.
    2. Для “Инфлюэнсера”, который относится к “Коллаборации”, для которой была инициирована данная процедура и для которого имеется подключение к веб-сокету, выполняется:
      1. “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя” с параметрами:
        1. Массив коллабораций — Одномерный массив который содержит идентификатор коллаборации для которой инициирована данная процедуры;
        2. Пользователь — Идентификатор “Представителя бизнеса”, для которого выполняется этап “3_e_ii” данной процедуры;
        3. Тип — Статус.
      2. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Представитель бизнеса”}” с параметрами:
        1. type — “messages_counters_changed”;
        2. data — массив “data” который был получен в результате выполнения “07_3.3.2_4 Процедура определения количества непрочитанных сообщений пользователя”.
      3. Отправка сообщения в веб-сокет “Уведомления от сервиса Centrifugo” для канала “notification_{Идентификатор пользователя к которому относится “Аккаунт”}” с параметрами:
        1. type — “collaboration_status_changed”;
        2. data[ ].id — Идентификатор коллаборации, для которой инициирована данная процедура;
        3. data[ ].previous_status — results_added;
        4. data[ ].new_status — Статус коллаборации, для которой была инициирована данная процедура;
        5. data[ ].campaign_id — Идентификатор кампании, к которой относится “Коллаборация” для которой инициирована данная процедура;
        6. data[ ].collaborations_left — Количество доступных коллабораций.

3.5 Отзыв

Отзыв является рейтингом коллаборации, которую может поставить представитель бизнеса и инфлюэнсер.

3.5.1 Данные отзыва коллаборации

3.5.1.1 Параметры отзыва коллаборации(collaboration_reviews)
Название Параметр Формат Обяз. Уник. Примечание
Идентификатор id bigserial да да
Дата создания created_at timestamp да нет
Дата обновления updated_at timestamp нет нет
Дата удаления deleted_at timestamp нет нет
Идентификатор коллаборации collaboration_id bigint да нет
Рейтинг rating smallint да нет Значение от 1 до 5.
Текст review text да нет
Тип автора author_type enum да нет Возможны следующие типы автора: 1 — Инфлюэнсер; 2 — Бизнес.

3.5.2 CRUD Отзыв

07_3.5.2_1 Процедура создания отзыва коллаборации
  1. Клиентской частью сервиса выполняется запрос “Create collaboration review”:
  2. С параметрами:
    1. collaboration_id;
  3. С телом запроса:
    1. rating;
    2. review.
  4. Если для “Коллаборации”, для которой инициирована данная процедура имеется “Отзыв коллаборации” и “Тип автора” отзыва:
  5. Бизнес — и данную процедуру инициировал “Представитель бизнеса” на запрос “Create collaboration review” возвращается ошибка “0731”;
  6. Инфлюэнсер — и данную процедуру инициировал “Инфлюэнсер” на запрос “Create collaboration review” возвращается ошибка “0732”;
  7. Выполняется:
  8. Создание “Отзыва коллаборации” с параметрами:
    1. Идентификатор коллаборации — Идентификатор коллаборации, для которой инициирована данная процедура;
    2. Рейтинг — “rating”, который был указан при инициации данной процедуры;
    3. Текст — “review”, который был указан при инициации данной процедуры
    4. Тип автора — Если данную процедуру инициировал:
      1. Представитель бизнеса — Бизнес;
      2. Инфлюэнсер — Инфлюэнсер.
  9. Если данную процедуру инициировал “Представитель бизнеса” выполняется изменение “Аккаунта пользователя”, который относится к “Коллаборации”, для которой инициирована данная процедура:
    1. Средний рейтинг — (“Средний рейтинг”, аккаунта пользователя * “Количество оценок”, аккаунта пользователя + “rating”, который указан при инициации данной процедуры) / (“Количество оценок”, аккаунта пользователя +1);
    2. Количество оценок — “Количество оценок”, аккаунта пользователя +1.

07_3.5.2_1.1 Ошибки при выполнении процедуры 07_3.5.2_1

Код ошибки Этап Локаль Текст ошибки
0731 2_a en
es
pt
fr
0732 2_b en
es
pt
fr