Geocodes NO CODE

Geocodes NO CODE

Очень многие процессы бизнеса так или иначе крутятся вокруг адресов: будь то адрес клиента — или адрес партнера. Все это работает замечательно, пока мы используем стандартные объекты для предоставления всего того, что требуется бизнесу в рамках сложившихся бизнесс-процессов. Но рано или поздно наступает момент, когда стандартных объектов уже недостаточно, и требуется кастомная дата модель с поддержкой адресных данных, и желательно геокодированием, потому как добавление интерактивной карты на record view явно не за горами.
Данная статья не о том, как добавлять последнюю на record view (об этом можно
почитать тут), а о том, как немного упростить себе жизнь получив геокоды адреса, используя стандартную функциональность Salesforce.

Последующие шаги (как всегда) являются рекомендацией, предполагающей дополнительные изменения, которые бы максимально соответствовали вашим задачам:

  1. Salesforce предоставляет Geocode Data Integration Rules для стандартных объектов и compound address fields (можно найти в Setup --> Data --> Data Integration Rules). Данной функциональностью мы и воспользуемся для “расширения поддержки” и на наши кастомные объекты:

  1. Для экспериментов воспользуемся контактом как временной записью для получения геоданных на основе данных адреса. Для этого добавим checkbox на контакт: для того, чтобы отличать наши служебные контакты от “нормальных”:

И соответствующие адресные поля на наш кастомный объект.

  1. На следующем шаге нам необходимо создать Process Builder, который бы создавал наш временный контакт, на котором мы могли бы получить Longitude / Latitude как часть стандартной функциональности:

Установка Last Name в значение Id соответствующей кастомной записи гарантирует нам успешную валидацию со стороны duplication rules. Также, сюда стоит добавить все те поля, которые требуются для успешного сохранения записи, в зависимости от настроек вашей конфигурации (required fields, validation rules и т.д.). Дополнительный чекбокс isTemporary очень сильно упрощает жизнь при удалении контактов, дабы не удалить “чевой-нибудь” лишнего.

  1. На следующем этапе необходимо создать Autolaunched flow для сохранения полученных данных геолокации на нашем кастомном объекте и удаления временного контакта.
    Создаем input переменные для флоу:

Каждая переменная отмечена как available for input; мы их будем устанавливать из еще одного процесс билдера.

Сохраняем данные:

И удаляем временные записи:

  1. Последний шаг - добавить процесс, который будет запускать наш флоу:

Тут нам и пригодится Last name содержащий Id соответствующей кастомной записи:

  1. Тестируем, проверяя отсутствие “временных” контактов с трудно выговариваемыми ID-фамилиями (результат после сохранения новой записи):

ERGO:

Stay calm and have fun!
Особенно, если необходимая функциональность - уже существует в Salesforce.

4 Likes