Внешние ИД клиентов. Правила обогащения/конфликтов
-
Множественные внешние ИД
-
У клиента может быть несколько внешних ИД.
-
Каждый внешний ИД жёстко привязан к интеграции (интеграцию определяем по токену авторизации).
-
Уникальность: внутри одной интеграции один и тот же
external_id
может принадлежать только одному клиенту.
-
-
Обновление данных клиента
-
Если пришли новые данные, а у нас поле пустое → заполняем.
-
Если поле уже заполнено и пришло другое значение → меняем на переданное.
-
Таким образом, мы всегда обогащаем запись.
-
-
Создание и поиск клиента
-
Сначала ищем клиента по паре интеграция + внешний ИД.
-
Если не нашли, ищем по телефону или email. Достаточно только одного совпадения по одному из полей.
-
Если нашли привязываем внешний ИД интеграции к этому клиенту.
-
Если не нашли создаём нового клиента и, при наличии, привязываем внешний ИД.
-
Если внешний ИД не передан просто обогащаем по телефону/email или создаём нового клиента.
-
-
Обработка текущих клиентов
-
Сейчас у клиентов хранится один внешний ИД.
-
При обновлении до этого механизма необходимо каждому такому ИД присваиваем интеграцию (берём первую из списка интеграций).
-
Если у клиента нет внешнего ИД ничего не заполняем.
-
-
Дополнительные требования
-
Не заполняем внешний ИД, если его не прислали.
-
Все изменения (привязан внешний ИД, обогащены поля) необходимо фиксировать.
-
No Comments