Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak

37,000 записів мігрувало через 3 платформи за 2 тижні — нульові дані

Повна міграція даних CRM для брокера медичного страхування Medicare: RadiusBob → GoHighLevel + HealthSherpa
---
Ситуація
Брокер медичного страхування Medicare з ~1,600 клієнтів здійснював операції через три роз'єднані системи: RadiusBob (старий CRM), GoHighLevel (новий CRM) та HealthSherpa Medicare (платформа для реєстрації). Агенти щодня вручну звіряли всі три системи — не було єдиного джерела правди, автоматизація була неможлива.

Проблема
Роки історії клієнтів зберігалися в RadiusBob: 1,593 контакти, 1,222 страхових полісів, 32,507 нотаток про взаємодію та 793 зв'язки між контактами. Це не був експорт CSV — це була повна реконструкція через три API з різними авторизаціями, обмеженнями швидкості та форматами даних.

Будь-яка втрата запису означала ризик невідповідності. Ручна міграція зайняла б місяці та призвела б до помилок на кожному етапі.

Рішення
Я створив відновлювальний конвеєр міграції на Python (Docker + Supabase як трекер стану синхронізації). Статус кожного запису відстежувався індивідуально — якщо процес зупинився на запису 500, він відновлювався на 501 без жодних дублікатів.
Дедуплікація контактів: GoHighLevel вимагає унікальних телефонів/електронних адрес, але RadiusBob дозволяв спільні номери (одружені пари). Конвеєр виявляв дублікати з відповідей помилок API, оновлював існуючі записи та генерував звіт (163 групи дублікатів) для перегляду клієнтом.
Відповідність HealthSherpa: стратегія з трьох проходів — спочатку за ID бенефіціара Medicare (найвища впевненість), потім за ім'ям + ДР/електронною адресою/телефоном, потім створення нових записів для невідповідних контактів. Кожне співпадіння зберігало пряме посилання на реєстрацію для доступу в один клік з GHL.
Записи полісів: схема користувацького об'єкта в GHL з 15 полями. Виявлено та оброблено не задокументовані особливості API через систематичне тестування.

32,507 нотаток: Паралельна обробка з 8 одночасними запитами API скоротила час імпорту з 9+ годин до ~1 години, залишаючись в межах обмежень швидкості.
793 зв'язки: Складено 10 типів зв'язків, що обробляють як двосторонні (чоловік і дружина), так і односторонні (батько-дитина) асоціації. 260 не відображених типів задокументовано для перегляду клієнтом.
Технічний стек: Python 3.11, Docker, Supabase (PostgreSQL), GoHighLevel API, HealthSherpa Medicare API, asyncio

Результати
- ~37,000 загальних записів мігрувало через 3 платформи
- 100% контактів імпортовано (1,593/1,593)
- 100% нотаток збережено (32,507/32,507)
- 99.3% полісів імпортовано (1,214/1,222)
- 8 разів швидший імпорт нотаток через паралельну обробку
- Нульова втрата даних — кожен імпортований запис мігрував з повною історією
- Доставка за 2 тижні від початку до завершення
- Посилання на реєстрацію Medicare в один клік на кожному записі клієнта

Як це працює
1. Витяг — витягти всі дані з API RadiusBob
2. Трансформація — нормалізувати формати, очистити дані, перевірити поля, дедуплікація
3. Завантаження — надіслати контакти до GHL, відповідність HealthSherpa через стратегію з трьох проходів
4. Зв'язок — створити записи полісів, прикріпити нотатки, побудувати асоціації зв'язків
5. Перевірка — звірка кількостей, звіт про дублікати, аудит валідації

Кожен етап є ідемпотентним і відновлювальним. Конвеєр може повторно виконуватись без дублікатів або втрати прогресу.
Деталі роботи
Додано 19 березня
88 переглядів
Фрилансер
Андрей Бойко
Україна Харків
Немає відгуків

Вільний для роботи Вільний для роботи
На сервісі 9 років