Интеграция двух и более кабинетов Avito и одного портала Битрикс24 для выгрузки откликов и сообщений в обе стороны с контролем дубликатов
Если для поиска "синих воротничков" и сотрудников на вахту вы используете Авито, то наш кейс для вас. Узнайте, как выгружать результаты поиска кадров из нескольких учеток Авито в Битрикс24 плюс иметь возможность обмениваться сообщениями в обе стороны. Реализовать кейс поможет интеграция Авито и Битрикс24 по API. Давайте разберем подробную инструкцию на примере кейса нашего заказчика.
1. Зачем интегрировать Авито и портал Битрикс24 (если у вас много кабинетов?) Боль и бизнес-польза
Рассмотрим ситуацию на примере нашего заказчика (управляющее кадровое агентство, специализирующееся на подборе сотрудников на вахту). Работа в агентстве ведется по множеству городов. Поиск и подбор вахтовиков идет на площадке Авито, где у каждого сотрудника заведен отдельный кабинет.
Об интеграции нескольких учеток Авито Работа и нескольких порталов amoCRM читайте здесь.
Заказчику нужна единая база кадров для резерва, плюс упрощение контроля за рабочим процессом. Без автоматизации руководителю приходится либо авторизоваться в Авито под учеткой нужного менеджера, либо брать обратную связь напрямую у сотрудника, чтобы отследить стадию той или иной вакансии.
Интеграция Авито с amoCRM и отправка в Telegram сообщений о несозданных сделках описана в статье.
Вся коммуникация с соискателем ведется на стороне Авито, что тоже неудобно для руководителя, поэтому переписку нужно дублировать в Битрикс24. А чтобы избежать ситуаций, когда сотрудник заболел и не может ответить кандидату на должность, переписку нужно вести из Битрикс24. Это позволит передать соискателя свободному менеджеру без предоставления чужих доступов в Авито.
О двустороннем импорте чатов из нескольких аккаунтов Авито Работа в один портал Битрикс24 для кадрового агентства читайте тут.
Перечисленные проблемы решаются следующей автоматизацией:
1.1. Каждый отклик в каждом кабинете Авито создает в Битрикс24 сделку плюс контакт.
1.2. Дубликаты контролируются по номеру телефона соискателя.
1.3. Если соискатель пишет сообщение на стороне Авито, сообщение отправляется в чат соответствующей сделки Битрикс24.
1.4. Ответ на сообщение из Авито отправляется напрямую из чата сделки и оттуда уходит в Авито. В чате сделки сохраняется вся цепочка коммуникации.
Используем искусственный интеллект YandexGPT 2 для разбора писем, сообщений в Wazzup, Авито для интеграции c Битрикс24: читайте в статье.
Далее расскажем, как настроили это техническое решение с помощью Пинкит.
2. Интеграции Авито и Битрикс24 с выгрузкой откликов и переписки
2.1. Создаем сделку Битрикс24 из отклика Авито
2.1.1. Шаг 1: Откуда
В момент получения отклика мы забираем данные из кабинета Авито, к которому подключили доступ в Пинкит:
2.1.2. Шаг 2: Инструменты
- Получить информацию по отклику
Настраиваем API-запрос методом POST с указанием URL: /job/v1/applications/get_by_ids
Указываем тело запроса:
Заголовки запроса: Content-Type: application/json.
- Проверка, resume_id указано?
Используем проверку "Если-Иначе" по полю step1.applies.0.applicant.resume_id, Условие - "Существует", Результат при успешной проверке - 1, при неуспешной - 0.
- Получить информацию о Резюме
Настраиваем API-запрос методом GET с указанием URL /job/v2/resumes/{{step1.applies.0.applicant.resume_id}}
- Получить информацию о вакансии
Настраиваем API-запрос методом GET с указанием URL /job/v2/vacancies/{{step1.applies.0.vacancy_id}}
- Получить доступ к контактным данным соискателя
Настраиваем API-запрос методом GET с указанием URL /job/v1/resumes/{{step1.applies.0.applicant.resume_id|default()}}/contacts/
- Поиск Телефона. Взять телефон из контактных данных
Используем "Фильтр элементов массива" по полю step1.applies.0.contacts.phones. Название поля внутри элемента массива value, Условие - Не пустое значение.
- Поиск Телефона.Телефон в фильтре найден?
Используем проверку "Если-Иначе" по полю step10, Условие - Не пустое значение, Результат при успешной проверке - 1, при неуспешной - 0.
- Отформатировать номер телефона на 8
Используем форматирование номера телефона, Условие выполнения - step12, Название поля - step10.0.value, Формат - +ххххх, Код страны - 8.
- Поиск Телефона. Поиск контакта по номеру телефона
Настраиваем API-запрос методом GET с указанием URL /crm.contact.list?filter[PHONE]={{step16}}. Условие выполнения - step12, доступ даем уже к Битрикс24.
- Поиск Телефона. Если по номеру телефон не найден
Используем проверку "Если-Иначе" по полю step6.result, Условие - "Пустое значение", Результат при успешной проверке - 1, при неуспешной - 0.
- Поиск Email. Взять e-mail из контактных данных
Используем Фильтр элементов массива. Условие выполнения - step2. Название поля из контекста, которое содержит входящие данные - step5.contacts. Название поля внутри элемента массива - type. Условие: (Текст) Содержит, Сравниваемое значение - e-mail.
- Поиск Email. Email в фильтре найден?
Используем проверку "Если-Иначе" по полю step11, Условие - "Не пустое значение", Результат при успешной проверке - 1, при неуспешной - 0.
- Поиск Email. Поиск контакта по Email
Настраиваем API-запрос методом GET с указанием URL /crm.contact.list?filter[EMAIL]={{step11.0.value}}. Условие выполнения - step8&&step13.
- Поиск Email. Если по email не найден
Используем проверку "Если-Иначе" по полю step7.result, Условие - "Пустое значение", Результат при успешной проверке - 1, при неуспешной - 0.
- Создать контакт
Настраиваем API-запрос методом POST с указанием URL /crm.contact.add, Условие выполнения - step8&&step9, Заголовки: Content-Type: application/json, Тело запроса:
- Взять из запроса или создать новый
Используем проверку "Если-Иначе" по полю step14, Условие - (Логическое)Истина, Результат при успешной проверке - {{step14.result}}1, при неуспешной - {{step6.result.0.ID}}.
2.1.3. Шаг 3: Куда
Создаем сделку в Битрикс24 в нужном направлении:
2.1.4. Шаг 4: Сопоставление данных
Пользовательское сопоставление:
2.1.5. Запускаем интеграцию.
2.2. Создание чата + добавление ответственного менеджера в чат
2.2.1. Проверяем интеграцию 2.1 на успех:
2.2.2. Шаг 2: Инструменты
- Проверить связку чата Авито и Битрикс24
Используем Поиск ID соответствующий сущности по полю source.int6796.step1.applies.0.contacts.chat.value. Указываем сущность "Чат в обоих сервисах".
- Проверка
Используем проверку "Если-Иначе" по полю step1, Условие - (Логическое)Истина, Результат при успешной проверке - 0, при неуспешной - 1.
- Добавить чат, если его ранее не было
Настраиваем API-запрос методом GET с указанием URL /im.chat.add?ENTITY_TYPE=CRM&ENTITY_ID=DEAL|{{source.int6796.result.result}}&USERS[0]=5801&USERS[1]=5981&TITLE=Авито чат с {{source.int6796.step1.applies.0.applicant.data.name}} {{source.int6796.step16|default()}}. Условие выполнения - step4.
- Сохранить сопоставление чатов
Используем инструмент "Сохранить сопоставление сущностей". Условие выполнения - step4, ID сущности-источника - {{source.int6796.step1.applies.0.contacts.chat.value}}, ID сущности-цели - {{step2.result}}. Указываем сущность "Чат в обоих сервисах".
- Останавливать интеграцию каждый раз после создания чата
Используем проверку по полю step1, условие - ТекстСодержит, Сравниваемое значение - Прервать, Действие - Продолжить, если проверка пройдена.
2.2.3. Шаг 3: Куда
Отправляем сообщение в Битрикс24:
2.2.4. Шаг 4: Сопоставление данных
2.2.5. Запускаем интеграцию.
2.3. Выгружаем сообщение из Авито в чат сделки Битрикс24
2.3.1. Шаг 1: Откуда
Забираем данные из Авито в момент получения нового сообщения:
2.3.2. Шаг 2: Инструменты
- Проверить связку чата Авито и Битрикс24
Используем Поиск ID соответствующий сущности по полю source.payload.value.chat_id. Указываем сущность "Чат".
- Убрать автора
Используем проверку по полю source.payload.value.author_id. Условие "ЧислоРавно", Сравниваемое значение - ID пользователя, Действие - "Прервать, если проверка пройдена".
2.3.3. Шаг 3: Куда
Отправляем сообщение в Битрикс24:
2.3.4. Шаг 4: Сопоставление данных
2.3.5. Запускаем интеграцию.
2.4. Отправляем сообщение из чата сделки Битрикс24 в Авито
2.4.1. Шаг 1 - Откуда
Настраиваем вебхук с пользовательским фильтром:
2.4.2. Шаг 2: Инструменты
- Найти ID чата из Авито
Используем Поиск ID соответствующий сущности по полю source.data.PARAMS.CHAT_ID. Указываем сущность "Чат".
- Если это не Бот
Используем проверку по полю source.data.USER.ID. Условие - "ЧислоРавно", Сравниваемое значение - ID пользователя, Действие - "Продолжить, если проверка пройдена".
2.4.3. Шаг 3: Куда
Отправляем сообщение в Авито:
2.4.5. Запускаем интеграцию.
3. Итог
Таким образом, с помощью интеграций Пинкит можно автоматизировать поиск персонала и коммуникацию с соискателями в нескольких кабинетах Авито через выгрузку откликов в сделки Битрикс24 и двусторонний обмен сообщениями в чате сделки.
Это поможет снизить ручной труд ваших сотрудников и избавит от необходимости переключаться между учетками Авито, чтобы отследить процесс закрытия вакансии.
Регистрируйтесь по ссылке в личном кабинете Пинкит: https://lk.pinkit.io/register и протестируйте интеграции Битрикс24 с Авито по нашей инструкции.