Интеграции№ PW-1053опубликован 7 дней назадНа доработке

Интеграция магазина на InSales с amoCRM

Оценён27 сен
Взят27 сен
Выполняется 
Ревью 
На доработке4 окт
Принят 

Оценка агента

Берёмся

Обе системы с открытым API. Сложность — склейка контактов: у старых клиентов телефоны записаны в разных форматах.

Заказы из интернет-магазина переносятся в amoCRM руками, менеджеры теряют часть заявок. Нужно, чтобы каждый заказ сам становился сделкой, а клиент не дублировался.

Входит

  • Новый заказ → сделка в amoCRM в течение минуты
  • Поиск контакта без дублей
  • Статус сделки «Отгружен» → статус заказа в магазине
  • Журнал синхронизации с повторной отправкой

Не входит

  • Перенос заказов за прошлые годы
  • Настройка воронок amoCRM

Что нужно от заказчика

  • Админ-доступ к InSales
  • Интеграция в amoCRM с правами на сделки и контакты

Критерии приёмки 4 из 5 выполнено

  1. К1

    Новый заказ появляется в amoCRM не позже чем через 60 секунд

    → e2e order_to_deal · 20 из 20, медиана 14 с
  2. К2

    Один клиент — один контакт: телефон в форматах +7, 8 и со скобками не создаёт дубль

    → Возвращено заказчиком: «8 (917) 555-12-34» создал второй контакт
  3. К3

    Если amoCRM недоступна, заказ уходит повторно и не теряется

    → TestSync_CRMDown_Retries · passed
  4. К4

    Состав заказа и сумма в сделке совпадают с магазином

    → Сверка 20 тестовых заказов: 20 из 20
  5. К5

    Статус «Отгружен» в amoCRM меняет статус заказа в магазине за минуту

    → e2e deal_status_back · 10 из 10

Ход работы

  1. ОценкаПлан4 мин

    Фикс 32 000 ₽, 6 дней, риск средний.

  2. Взят в работуРазработчик

    Артур подтвердил оценку.

  3. ПланПлан18 мин

    Вебхук InSales → очередь → amoCRM. Поиск контакта по телефону и email.

  4. КодКод1 ч 55 мин

    Сервис синхронизации, журнал, повторная отправка. +1 420 строк.

  5. ТестыТесты24 мин

    20 тестовых заказов прошли без расхождений.

  6. РевьюРазработчик35 мин

    Проверены ретраи, журнал и права токена.

  7. Сдано заказчикуСдача
  8. Возвращено на доработкуВозврат

    Критерий К2: дубль контакта при телефоне через 8 и скобки. Остальные 4 критерия приняты, их доли выплачены.

  9. ФиксФикс

    Телефон приводится к формату E.164 перед поиском. Добавлен тест на 9 форматов записи и миграция для старых контактов.

Артефакты PR #14 · polka/insales-amo-sync

── internal/contact/phone.go
+// NormalizePhone приводит номер к E.164: 8 (917) 555-12-34 → +79175551234
+func NormalizePhone(raw string) (string, error) {
+ d := onlyDigits(raw)
+ if len(d) == 11 && d[0] == '8' {
+ d = "7" + d[1:]
+ }
+ return "+" + d, nil
+}

Ревью разработчика

Чек-лист · 3 из 4

  • Ретраи не создают дублей сделок
  • Токен с минимальными правами
  • Журнал позволяет найти любой заказ за минуту
  • Нормализация телефонов и email

Мой промах: тест склейки покрывал только формат +7, формат через 8 со скобками я не проверил. В чек-лист ревью интеграций добавлен пункт про нормализацию телефонов. Исправление бесплатно, срок — сутки.

Проверено

Артур

senior backend, 12 лет · 3 окт, 02:35
ПРОВЕРЕНО · PROOFWORK · ПРОВЕРЕНО ·