Перейти к содержимому
N1
Интеграции · Kafka · мобильное приложение

Заявки из мобильного приложения в Bitrix24 через Kafka и обратная связь клиенту

Клиент: Финансовая компания, NDA Категория: Интеграции Стек: PHP 8, Kafka (rdkafka), Bitrix24 REST и D7, supervisor/systemd, Telegram-алерты Срок: внедрялось поэтапно
Проблема

Заявки на кредит под залог недвижимости приходили из мобильного приложения, и их нужно было без ручного переноса превращать в сделки CRM с документами и данными залога. В обратную сторону приложение должно было узнавать о решении и просить клиента оценить обслуживание.

Ограничения

Консьюмер работает постоянно и не должен падать на кривом сообщении; телефоны приходят в разных форматах; документ клиента нельзя потерять; кластеров Kafka два, и отправка не в тот уже давала «успех» с пустым топиком.

Что сделал
  • PHP-консьюмер на rdkafka под supervisor/systemd: заявка из топика превращается в контакт и сделку в воронке микробизнеса
  • Контакт ищется по ИИН и вариантам написания телефона; к сделке прикрепляется удостоверение, мапятся вид залога и код КАТО
  • Ручная переобработка пропущенных заявок по HTTP и из CLI, Telegram-алерты при сбоях, маскирование ПДн и документов в логах
  • Статусы заявки по номеру сделки отправляются обратно в топик мобильного приложения
  • Producer: на финальной стадии сделки событие уходит в Kafka с acks=all и подтверждением по delivery-report, а приложение шлёт клиенту push с просьбой оценить обслуживание
Архитектура
Мобильное приложение → Kafka-топик заявок → Консьюмер на PHP → Bitrix24: контакт и сделка → Producer → push клиенту
Результат

Заявки из мобильного приложения попадают в CRM без ручного переноса — с документом и данными залога, а клиент узнаёт о решении и получает запрос оценки. Доставка события подтверждается брокером, а сбой обработки сразу виден в Telegram.

Что можно переиспользовать
PHP-консьюмер Kafka с ручной переобработкой Producer с подтверждением доставки acks=all Поиск контакта по вариантам телефона