Документация
Как включить плагин?
После покупки вам потребуется установить плагин на свой сайт WordPress. Вот как это сделать.
Шаг 1: Установка
Войдите на свой сайт WordPress и перейдите по ссылке: Плагины → Добавить плагин → Загрузить плагин. Загрузите zip-файл и активируйте его.
Шаг 2: Зарегистрируйте плагин
В левой панели навигации перейдите по следующему пути: Формы → Настройки → Salesforce. В Лицензия раздел клик Управление лицензиями, Введите свой лицензионный ключ и нажмите Активировать лицензию.
Шаг 3: Подключите Salesforce
После получения лицензии прокрутите страницу до... Подключение к Salesforce раздел на той же странице настроек (он называется Добавить учетную запись Salesforce (после создания учетной записи) и подключите свою первую учетную запись Salesforce (подробные инструкции ниже).
Вот и всё! Вы готовы начать сопоставлять формы с Salesforce.
Как подключить учетную запись Salesforce к OAuth?
Шаг 1: Разберитесь в типах приложений.
В Salesforce вы можете создать либо внешнее клиентское приложение (современный вариант, единственный доступный для новых организаций, созданных после выпуска Salesforce Spring '26), либо подключенное приложение (устаревший вариант, который по-прежнему поддерживается в существующих организациях, где это возможно). Плагин работает одинаково с обоими типами приложений.
В настройках Salesforce перейдите к одному из следующих разделов:
- Настройка → Менеджер внешних клиентских приложений → Новое внешнее клиентское приложение (рекомендуется)
или устаревшее подключенное приложение (по умолчанию отключено в более новых организациях)
- Настройка → Диспетчер приложений → Новое приложение для подключения
Перед подключением: пользователь Salesforce, авторизующий подключение, должен иметь возможность создавать (и редактировать, для обновляемых фидов) каждый объект, с которым будет производиться синхронизация. Плагин отображает только те объекты, которые пользователь может фактически создавать.
Шаг 2: Создайте новое внешнее клиентское приложение.
ПРИМЕЧАНИЕ: На приведенных ниже скриншотах параметры, оставленные неотмеченными или пустыми, следует оставить без изменений, поэтому не меняйте их.
После входа в Salesforce, в правом верхнем углу экрана нажмите на значок шестеренки:

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

В правой части экрана нажмите кнопку “Создать новое внешнее клиентское приложение”:

В поле “Основные сведения” введите следующее:
- Название внешнего клиентского приложения (имя API будет сгенерировано автоматически, не меняйте его).
- Контактный адрес электронной почты
- Оставьте состояние распространения как “Локальное”.”

В разделе “API (Включить настройки OAuth)” выполните следующие действия:
- Включить OAuth
- Введите URL-адрес обратного вызова (он находится в настройках плагина в разделе Формы > Настройки > Salesforce > URL-адрес обратного вызова OAuth).
- В разделе «Области действия OAuth» выберите следующее:
- “Управление пользовательскими данными через API (API)”
- “Выполняйте запросы в любое время (refresh_token, offline_access)”

Следующие настройки не трогайте:

Все остальные настройки ниже также оставьте без изменений:

Нажмите «Создать приложение», и вы готовы перейти к шагу 3:

Шаг 3: Отредактируйте политики авторизации приложения.
После создания приложения необходимо отредактировать политики приложения. Вернитесь в “Диспетчер внешних клиентских приложений”.”

Затем выберите созданное вами приложение и нажмите кнопку “Редактировать”, как показано ниже:

Затем откройте выпадающее меню “Политики OAuth” и установите политику обновления токена на “истекание через определенное время”, а затем задайте значение 365 дней или более. Плагин обновляет кратковременный токен доступа самостоятельно, но как только срок действия токена обновления истечет, Salesforce отклонит соединение, и вам придется повторно подключить учетную запись в разделе «Формы» → «Настройки» → «Salesforce». Более длительная политика означает, что вам придется делать это не чаще одного раза в год, а не каждые 30 дней.
Рекомендуем установить напоминание о проверке соединения на всякий случай.

Шаг 4: Подключите новое внешнее клиентское приложение к Gravity Forms.
Настройка Salesforce завершена, теперь нам нужно подключить Gravity Forms к приложению. В Salesforce вернитесь в “Диспетчер внешних клиентских приложений” и выберите свое приложение.

Нажмите “Настройки”, прокрутите вниз до раздела “Настройки OAuth” и откройте его. Вы увидите кнопку “Ключ и секрет потребителя”, нажмите на неё.

Скорее всего, вам будет показан экран подтверждения личности, и вам будет выслан код. Введите код и нажмите “Подтвердить”.”

После проверки вам будут показаны ключ потребителя (Consumer Key) и секрет потребителя (Consumer Secret). Оставьте эту вкладку открытой, а в новой вкладке перейдите в настройки плагина в разделе «Формы» > «Настройки» > «Salesforce» и добавьте эти ключи, как показано на скриншоте ниже. После заполнения обоих полей появится кнопка: нажмите «Подключить учетную запись» (после подключения учетной записи появится кнопка «Добавить учетную запись»).

Теперь вы видите, что Gravity Forms подключен к Salesforce, и мы можем перейти к шагу 5 (заключительному шагу):

Шаг 5: Добавьте канал Salesforce в свою форму.
Перейдите в настройки формы Gravity Forms, которую вы хотите подключить к Salesforce, и добавьте новый канал передачи данных:

И наконец, настройте параметры ленты так, как вам удобно:

Теперь все готово! Если вы хотите подключить дополнительные учетные записи Salesforce и создать каналы для других форм, повторите описанные выше 5 шагов.
Как мне связаться с идентификатором организации (Org ID)? (Веб-в-лид / Веб-в-обращение)
Если в вашей организации Salesforce нет доступа к API (в некоторых версиях Essentials/Professional), вы можете использовать устаревшую конечную точку Web-to-Lead / Web-to-Case.
Шаг 1: В Salesforce найдите свой Идентификатор организации под Настройки → Информация о компании.
Шаг 2: В WordPress на странице настроек Salesforce измените... Способ подключения Выберите в выпадающем списке “Идентификатор организации (Web-to-Leal/Case)”.
Шаг 3: Вставьте идентификатор вашей организации и нажмите Сохранить идентификатор организации/учетную запись. Начиная с версии 1.5.0, эта функция считывает значения, введенные в форму, поэтому отдельного сохранения не требуется.
Берегись: Режим Org ID поддерживает только лиды и обращения. Для обновления, удаления, загрузки файлов, предварительного заполнения и сопоставления списков выбора требуется учетная запись OAuth.
Как мне настроить ленту новостей?
Шаг 1: Редактировать форму → Настройки формы → Salesforce → Добавить новую.
Шаг 2: Выберите Учетная запись Salesforce, Объект Salesforce (Потенциальный клиент, Контакт, Учетная запись, пользовательский объект…), и Режим синхронизации (по умолчанию, Создать или обновить запись, если она уже существует., (Это верно в большинстве случаев).
Шаг 3: Сопоставьте поля Gravity Forms с полями Salesforce. Обязательные поля Salesforce отмечены звездочкой, чтобы вы их не пропустили.
Шаг 4 (необязательный): Под Повторное совпадение, галочка Включить сопоставление дубликатов первичного ключа для обновления существующих записей, соответствующих условию «Электронная почта», «Внешний идентификатор» или любому другому полю, допускающему фильтрацию.
Шаг 5 (необязательно): Настройте условную логику, проверку конфликтов, назначение владельца, загрузку файлов, заметки или членство в кампании.
Шаг 6: Сохраните ленту и отправьте тестовую запись. Проверьте экран с подробной информацией о записи в боковой панели Salesforce. Поскольку синхронизация выполняется в фоновом режиме, вы можете на короткое время увидеть синий статус «Ожидание», затем идентификатор новой записи и прямую ссылку на нее в Salesforce.
Какие параметры синхронизации мне нужно включить?
Создание записей происходит сразу после сохранения ленты. Настройки жизненного цикла являются добровольными и находятся в разделе [ссылка на раздел]. Формы → Настройки → Salesforce → Настройки синхронизации, И все четыре кнопки выключены, пока вы их не отметите галочкой:
- Синхронизация обновлений при редактировании записей. Передает изменения в записи в связанную запись Salesforce.
- Удалять записи Salesforce при их окончательном удалении. Запись удаляется при очистке корзины. Перемещение записи в корзину никогда не затрагивает Salesforce.
- При восстановлении записей из корзины/спама необходимо выполнить повторную синхронизацию данных записей. Эта функция сохраняет все изменения, внесенные во время удаления записи, и создает новую запись, если она была удалена в Salesforce.
- Отправляйте примечания к записям Gravity Forms в Salesforce в виде записей-заметок. Эта функция дублирует заметки, которые администратор добавляет к записи, и удаляет копию в Salesforce при удалении заметки.
Подробная информация о функциях
Способы подключения
Плагин поддерживает два способа подключения Gravity Forms к Salesforce. Выберите тот, который соответствует уровню доступа к API вашей организации.
- OAuth 2.0 с PKCE (рекомендуется). Современная аутентификация Salesforce с использованием подключенного приложения или внешнего клиентского приложения (замена Spring '26+). На вашем сервере не хранятся статические ключи API, плагин автоматически обновляет токены доступа, и соединение остается активным неограниченно долго, пока политика обновления токенов приложения не истечет. Необходимые области действия:
apiиrefresh_token/offline_access. Работает со всеми версиями Salesforce, имеющими доступ к API (Enterprise, Unlimited, Performance, Developer или Professional с дополнительным модулем доступа к API). - Web-to-Lead / Web-to-Case (Org ID). Устаревшая конечная точка отправки, использующая только идентификатор вашей организации Salesforce. Полезна для организаций без доступа к API (некоторые версии Essentials и Professional). Ограничения: только объекты Lead и Case, не поддерживаются обновления, удаления, загрузки файлов, предварительное заполнение и сопоставление списков выбора.
Оба режима можно использовать на одном и том же сайте WordPress. Вы можете иметь учетную запись OAuth для основной организации и учетную запись Org ID для дополнительной организации, и каждый канал будет независимо выбирать, с каким из них он будет синхронизироваться.
Поддержка нескольких учетных записей
Подключите к одному сайту WordPress неограниченное количество учетных записей Salesforce. Типичные конфигурации:
- Песочница и производство: протестируйте каналы в песочнице, затем переключитесь на рабочую среду, изменив всего одно значение в выпадающем списке.
- АгентствоКаждая клиентская организация получает собственное подключение; каждый канал выбирает, с каким клиентом он будет синхронизироваться.
- Материнская компания и дочерние предприятияРазличные формы маршрутизации ведут к различным подразделениям в вашей корпоративной структуре.
Одна учетная запись всегда помечена как учетная запись по умолчанию, поэтому простым сайтам никогда не приходится задумываться о том, какую учетную запись использовать. Это также резервный вариант: лента, для которой не указана учетная запись или учетную запись которой вы позже удалите, синхронизируется с учетной записью по умолчанию. Удаление учетной записи предупреждает вас об этом до того, как это произойдет, поэтому, если организация по умолчанию не соответствует требуемой, сначала перенаправьте затронутые ленты на другую учетную запись.
Каждая учетная запись также имеет собственное состояние подключения. Плагин записывает время последнего обновления, успешного завершения и сбоя для каждой учетной записи, а в списке учетных записей отображается статус «Подключено» с указанием времени последней проверки, «Требует внимания» или «Требуется переподключение», поэтому разорванное соединение можно увидеть до того, как начнутся сбои при отправке запросов. Каждая учетная запись сохраняет версию API Salesforce, к которой она была подключена (для новых подключений по умолчанию используется версия API Salesforce). v63.0Чтобы перенести учетную запись на более новую версию, удалите и повторно подключите ее. Удаление учетной записи аннулирует ее токены в Salesforce, а не просто удаляет их локально.
Поддерживаемые объекты Salesforce
Вы можете синхронизировать с любой объект Salesforce Подключенный пользователь может получить доступ к стандартным или пользовательским объектам. Выпадающий список «Объект» формируется динамически на основе фактической схемы вашей организации, поэтому вы увидите все стандартные объекты, поставляемые Salesforce (Account, Contact, Lead, Opportunity, Case, Campaign, Task, Event, Note, User и многие другие), а также все пользовательские объекты, которые вы определили.
Для пользовательских объектов выберите “Пользовательский (введите ниже)” и введите имя API (например, My_Object__cЗначения в выпадающем списке, связи поиска, вложения файлов и предварительное заполнение работают с пользовательскими объектами так же, как и со стандартными.
Связывание записей между различными каналами.
Одна отправка может создать несколько связанных записей. Добавьте ленту для каждого объекта, затем перетащите строки из списка лент в нужном порядке. Ленты будут запускаться в фоновом режиме в указанном порядке, одна за другой. В последующей ленте сопоставьте поле поиска (AccountId, ContactId или любое пользовательское поле поиска) с Индивидуальная стоимость и войти {salesforce_id:FEED_ID}, где FEED_ID — это идентификатор предыдущей ленты. Тег указывает на запись, которую лента создала или обновила для этой записи, поэтому новая запись связана с ней. Идентификатор ленты — это fid= значение в адресной строке при редактировании ленты.
Типичная цепочка выглядит следующим образом: сначала лента учетных записей, затем лента контактов с установленным AccountId. {salesforce_id:12} (12 — идентификатор канала Account), затем канал Opportunity с AccountId, установленным таким же образом. Используйте одну и ту же учетную запись Salesforce для каждого канала в цепочке, поскольку идентификатор записи существует только в той организации, которая его создала. Если предыдущий канал не создал запись, потому что его условная логика не совпала или проверка на конфликт остановила его, тег будет пустым, и поиск останется незаданным вместо того, чтобы использовать идентификатор другого канала.
Сопоставление списков выбора на уровне полей
Для полей типа «Выпадающий список», «Множественный выбор», «Радиокнопка» и «Флажок» вы можете выбирать варианты непосредственно из выпадающего списка Salesforce, вместо того чтобы вводить их вручную. Для каждого поля предусмотрены два режима:
- Заполните поля выбора (можно редактировать) Копирует значения выпадающего списка в поле Gravity Forms один раз. Администратор может редактировать или удалять варианты после этого. Удобно для случаев, когда “нужна отправная точка, но, возможно, я сокращу список”.”
- Синхронизация в реальном времени (всегда соответствие данным Salesforce) Обновляет варианты выбора при каждом отображении формы. Варианты выбора блокируются в редакторе форм, чтобы предотвратить их изменение. Используйте эту функцию, когда Salesforce является единственным источником достоверной информации (поля статуса, источники лидов, выпадающие списки штатов/стран и т. д.).
Пользователям формы отображаются метки Salesforce; значения Salesforce передаются в систему. Таким образом, в форме указана “Калифорния”, но заявка отправлена. CA, Это именно то, что ожидают выпадающие списки «Штат/Страна» в Salesforce, и вам не нужна таблица сопоставления.
Здесь также есть выпадающий список «Тип записи». Для любого объекта с выбираемыми типами записей тип записи отображается рядом с реальными списками выбора в том же пользовательском интерфейсе сопоставления полей. Форма показывает пользователям название типа записи (например, “Донор”); отправленное значение — это идентификатор типа записи Salesforce. Сопоставьте это поле с RecordTypeId в вашей ленте, и выбранный тип записи будет установлен для созданной или обновленной записи. Отображаются только типы записей, которые ваш подключенный пользователь Salesforce может фактически назначать (неявный основной тип и недоступные типы отфильтровываются), поддерживаются как режим заполнения, так и режим синхронизации в реальном времени.
В раскрывающемся списке объектов Salesforce на боковой панели сопоставления полей восемь наиболее часто используемых стандартных объектов (Account, Contact, Lead, Opportunity, Case, Campaign, Task, Note) отображаются вверху списка, поэтому вам не нужно прокручивать список, чтобы найти каждый пользовательский объект в организации. На экране настроек фида измените объект или учетную запись, и сопоставление полей, поля соответствия и средства выбора объектов будут немедленно перезагружены из Salesforce, а не ждать сохранения.
Сопоставление по первичному ключу (без дубликатов)
Большинство администраторов Salesforce не хотят, чтобы каждая отправленная форма создавала нового потенциального клиента. Включите эту функцию. Сопоставление первичного ключа Обновлять существующие записи при обнаружении совпадения.
- В качестве ключа соответствия выберите любое поле, допускающее фильтрацию, поиск по идентификатору или внешний идентификатор (чаще всего используется адрес электронной почты).
- Если найдена соответствующая запись, она обновляется. В противном случае создается новая запись (если для режима синхронизации установлено значение “Создать или обновить, если запись существует”).
- Используйте собственный внешний идентификатор (
Customer_Reference__c) для сопоставления между системами. - Встроенная защита от состояния гонки “соответствующая запись была удалена в Salesforce”. Если Salesforce возвращает ошибку 404 для сохраненного ID, плагин автоматически создает новую запись.
Проверка на конфликт интересов
Сопоставление по первичному ключу обновляет запись, когда она найдена. Иногда предпочтительнее было бы остановить ленту новостей. проверка на конфликт Перед созданием чего-либо в фиде проверяется наличие существующей записи в Salesforce, и процесс останавливается, если такая запись найдена.
В то время как сопоставление дубликатов работает по одному ключу, проверка на конфликт объединяет несколько полей в один поиск. Сопоставьте имя и фамилию, и вы обнаружите, что один и тот же человек отправляет данные под разными адресами электронной почты, тогда как сопоставление только по адресу электронной почты позволило бы это сделать. Для остановки обработки данных каждая сопоставленная строка должна соответствовать одной и той же записи, поэтому частичное совпадение не вызовет срабатывания проверки.
- Сопоставьте столько полей Salesforce с полями Gravity Forms, сколько вам нужно, включая пользовательские значения.
- Укажите собственное сообщение о конфликте. Оно будет регистрироваться для соответствующей записи и отправляться в электронном письме с сообщением об ошибке, чтобы вы могли узнать, почему запись не была создана.
- Применяется только в том случае, если лента создаст запись. Запись, найденная с помощью поиска дубликатов, обновляется в обычном режиме.
- Доступно для каждого потока данных и для учетных записей OAuth.
Загрузка файлов
Поля для загрузки файлов в Gravity Forms можно прикрепить к записи Salesforce следующим образом: ContentVersion / ContentDocumentLink, Таким образом, они отображаются в списке связанных файлов записи. Настраиваемый максимальный размер файла: от 1 до 25 МБ на файл, по умолчанию — 10 МБ.
Для прикрепления файлов сопоставьте каждое поле загрузки файла с соответствующими параметрами. Файлы — прикрепить к записи Salesforce Добавьте строку в карту полей Salesforce в фиде. Добавьте строку один раз для каждого поля загрузки. Каждое сопоставленное поле будет прикреплено, и поле для нескольких файлов отправит все содержащиеся в нем файлы. Файлы загружаются при первой синхронизации записи в фиде, а функция «Повторная отправка в Salesforce» отправит их снова после сбоя.
Синхронизация заметок
Передайте данные из форм в Salesforce. Примечание Прикреплено к родительской записи. И заголовок, и текст заметки поддерживают теги слияния, поэтому вы можете форматировать их по своему усмотрению. Оставьте текст заметки пустым, и он будет использовать теги слияния. {all_fields}.
При желании, добавленные администратором заметки из Gravity Forms также можно зеркально отобразить в Salesforce в виде заметок, что позволит хранить историю переписки в одном месте. При удалении заметки в Gravity Forms копия в Salesforce также будет удалена.
Членство в кампании
Добавьте созданного с помощью формы потенциального клиента или контакт в Salesforce. Кампания. Поставьте галочку, укажите идентификатор кампании (можно использовать тег слияния, чтобы скрытое поле могло выбрать кампанию), и плагин создаст запись CampaignMember, связывающую нового потенциального клиента или контакт с кампанией. Установите свой собственный статус участника или оставьте его как есть, и плагин будет использовать его. Responded.
Переуступка прав собственника
На одну порцию:
- Установить пользовательский Идентификатор владельца (Поддерживает теги слияния, поэтому вы можете настраивать маршрутизацию на основе значений формы).
- Переключить
Sforce-Auto-Assign: FALSEзаголовок для обхода стандартных правил присваивания при необходимости.
Предварительное заполнение из Salesforce
Отправляйте постоянным пользователям персонализированную форму, предварительно заполненную их существующими данными в Salesforce. Формы для продления подписки, формы обновления учетной записи, процессы заполнения профиля.
- Сопоставьте любое поле Salesforce с любым полем Gravity Forms для предварительного заполнения. По умолчанию объект предварительного заполнения — это тот, в который записывается данные из фида, но вы можете считывать данные из другого объекта, например, предварительно заполнить поле «Контакт» во время создания обращения в фид.
- Функция предварительного заполнения работает для авторизованных администраторов сразу после её включения. Чтобы использовать её в общедоступной форме, поставьте галочку. Разрешить публичные запросы предварительного заполнения в формах на лицевой стороне сайта. также.
- URL-адреса, подписанные HMAC, с указанием TTL. Это предотвращает перечисление идентификаторов записей в общедоступных формах, а подписание включено по умолчанию с 15-минутным сроком действия. Без подписей любой мог бы вносить изменения.
?sfid=001000...и извлекать данные, которые им не следовало извлекать. - Он Генератор подписанных ссылок для предварительного заполнения Эта функция встроена в настройки фида. Вставьте идентификатор записи и получите подписанный URL-адрес с датой истечения срока действия. Используйте его в маркетинговых письмах, клиентских порталах или в системах самообслуживания.
- Администраторы, вошедшие в систему, могут использовать необработанные идентификаторы записей без подписей для тестирования.
- Параметр запроса для каждого потока данных (по умолчанию)
?sfid=) обеспечивает чистоту URL-адресов.
Синхронизация жизненного цикла записи
Создание записей происходит автоматически после сохранения фида. Остальные параметры синхронизации вы можете включить самостоятельно в разделе «Формы» → «Настройки» → «Salesforce» → «Настройки синхронизации», поэтому интеграция будет записывать обратно только то количество данных, которое вы запросили.
- Редактировать запись → Запись в Salesforce обновляется после включения опции “Синхронизировать обновления при редактировании записей” (
gform_after_update_entry). - Выброс мусора из входа → запись в Salesforce — оставленный нетронутым, Всегда. В WordPress удаление из корзины обратимо, поэтому запись остаётся на месте.
- Восстановить из корзины → При включенной опции “Синхронизировать данные записи при восстановлении записей из корзины/спама” все изменения, внесенные во время нахождения записи в корзине, будут добавлены к записи. Если запись была удалена вручную в Salesforce, а режим синхронизации фида установлен на “Создать или обновить, если запись существует” (по умолчанию), создается новая замена.
- Безвозвратно удалить запись (Очистить корзину или “Удалить навсегда”) → запись Salesforce будет удалена, если у вас включена опция “Удалять записи Salesforce при окончательном удалении записей”.
Фоновая синхронизация
Вызовы API Salesforce не выполняются, пока посетитель ожидает. Обработка данных происходит в фоновом режиме после завершения отправки формы с использованием собственной асинхронной обработки данных Gravity Forms, поэтому медленный ответ Salesforce никогда не приведет к медленной загрузке страницы благодарности.
Как только фоновая задача подхватит поток данных, запись станет синей. В ожидании Статус, который заменяется окончательным результатом успеха или ошибки, как только Salesforce ответит. Откройте тестовую запись сразу после отправки, и первым, что вы увидите, может быть «Ожидание». Например, если лента должна завершиться до страницы благодарности, чтобы отобразить {salesforce_id} по нему, отметьте галочкой Обработайте этот поток данных во время отправки. в этой ленте.
Платежная система с поддержкой дополнительных платежей
Если ваша форма принимает платежи через платежное дополнение Gravity Forms (Stripe, PayPal Standard, PayPal Commerce, Authorize.Net, Square, 2Checkout, Mollie и другие), включите его. “Обрабатывать данные из Salesforce только после получения платежа”.” под Действия после оплаты В настройках фида платежного дополнения (эта опция появляется после того, как форма будет подключена к фиду Salesforce) можно отложить синхронизацию Salesforce до успешного подтверждения платежа, чтобы брошенные формы никогда не оставляли незавершенных потенциальных клиентов.
При отправке заявки синхронизация с Salesforce приостанавливается, если у записи есть ожидающий платеж. Когда платежное дополнение подтверждает транзакцию (с помощью стандартной системы отложенной передачи данных Gravity Forms), синхронизация с Salesforce выполняется в обычном режиме. Если платеж не удается или отменяется, синхронизация просто не запускается.
Работает с любыми платежными дополнениями, созданными на основе стандартной платформы платежных дополнений Gravity Forms, то есть со всеми официальными дополнениями.
Журналы и экспорт в CSV-формат
Каждая синхронизация Salesforce, успешная или неудачная, регистрируется с указанием статуса синхронизации и точного сообщения, возвращенного Salesforce. Журналы Salesforce На странице (Формы → Журналы Salesforce) отображается:
- Идентификатор записи, форма, статус, идентификатор записи, сообщение и время синхронизации.
- Фильтрация по каждой форме и постраничная навигация по 50 строк на странице.
- Экспорт текущего представления в CSV, поэтому фильтрация по форме экспортирует именно эту форму.
Включите логирование в Gravity Forms, и вы также получите в журнал Gravity Forms содержимое исходящего запроса и сообщение об ошибке, возвращенное Salesforce. Обычно это самый быстрый способ точно узнать, на что именно возражала Salesforce.
Если вы предпочитаете вообще не сохранять историю синхронизации, “Отключить сохранение журналов записей Salesforce (статус/сообщения/история синхронизации)” предотвращает запись и сохраняет wp_gf_entry_meta Упрощенная настройка. Стоит знать перед тем, как поставить галочку: страница журналов Salesforce считывает историю, поэтому она становится тихой, боковая панель записи сворачивается до ссылки на запись и кнопки «Повторно отправить», а существующая история очищается при включении этой настройки. Идентификаторы записей сохраняются, поэтому теги слияния и ссылки на записи продолжают работать.
Уведомления по электронной почте о сбоях синхронизации
Получайте уведомление в тот момент, когда Salesforce отклоняет полезную нагрузку, с идентификатором записи и точным сообщением об ошибке, возвращенным Salesforce. Отметьте галочкой. “Отправлять уведомления об ошибках по электронной почте” В настройках плагина Salesforce в разделе «Отчеты об ошибках» укажите получателя один раз. Уведомление по электронной почте (Если оставить поле пустым, по умолчанию будет указан адрес электронной почты вашей административной панели WordPress).
Полезно для ловли:
- Обязательное поле в Salesforce, которое внезапно перестало отображаться (кто-то отредактировал форму).
- Значение выпадающего списка, которого больше нет в Salesforce.
- Ограничения API, правила проверки или правила рабочего процесса, отклоняющие запись.
- Подключенное приложение, требующее повторной авторизации.
Превышение лимита запросов к API Salesforce отображается как ограничение скорости, а не как загадочная ошибка отправки, поэтому вы знаете, что нужно подождать, а не начинать отладку сопоставления полей.
Исправьте проблему, нажмите Повторно отправить в Salesforce В отношении затронутых записей, и данные вносятся. В противном случае, через две недели выяснится, что 30 потенциальных клиентов так и не попали в CRM.
Боковая панель Salesforce для каждой записи
На каждом экране с подробными данными для ввода данных в Gravity Forms отображается отдельный раздел. Salesforce Боковая панель с текущим статусом синхронизации:
- Статус, Цветовая кодировка: зеленый — Успех, красный — Ошибка, синий — Ожидание, серый — Пропущено.
- Объект, Какой объект Salesforce был создан (лид, контакт, пользовательский объект и т. д.)?
- Идентификатор записи, кликабельный, открывается непосредственно в Salesforce в новой вкладке
- Учетная запись, Синхронизация осуществлялась подключенной учетной записью Salesforce (полезно, если у вас их несколько).
- Синхронизировано, метка времени последней попытки синхронизации
- Сообщение об ошибке, точная ошибка, возвращенная Salesforce, если таковая имелась.
- Результаты кормления, это разбивка по каждому этапу подачи, когда несколько этапов подачи выполняются на одном и том же шаблоне.
Это самый быстрый способ убедиться, что данные из формы действительно передаются в Salesforce, и точно определить, какая запись не удалась, если что-то пошло не так.
Повторно отправить в Salesforce
Заявки включают в себя Повторно отправить в Salesforce Кнопка на экране сведений о записи предназначена для пользователей, имеющих доступ к настройкам плагина. Она делает больше, чем просто синхронизирует основную запись: она сбрасывает флаги дедупликации побочных эффектов, поэтому заметки, файлы и членство в кампаниях также будут синхронизироваться повторно. Используйте её, когда:
- В момент выполнения первоначальной синхронизации работа Salesforce была недоступна.
- Вы исправили сопоставление ленты после серии неудачных отправок.
- Вы хотите отправить тестовые данные в песочницу, не отправляя форму повторно.
Теги слияния
{salesforce_id} Это идентификатор записи Salesforce, созданный или обновленный в последнем канале для этой записи. Каналы, использующие режим Org ID (Web-to-Lead / Web-to-Case), отправляют данные на конечную точку, которая не возвращает идентификатор записи, поэтому они никогда не устанавливают этот тег или его вариант для каждого канала.
{salesforce_id:FEED_ID} Это идентификатор записи Salesforce, созданной конкретным каналом данных. Используйте его, когда несколько каналов данных работают с одной и той же формой.
Теги, специфичные для ленты, также работают в настройках ленты. Сопоставьте поле поиска с Индивидуальная стоимость и войти {salesforce_id:FEED_ID} Чтобы связать запись с ранее созданной лентой. Ленты отображаются в порядке следования в списке лент, а идентификатор ленты — это... fid= значение в URL-адресе редактирования ленты. Тег для ленты, для которой не было создано ни одной записи, преобразуется в пустое значение.
{salesforce_link} Это прямая ссылка на запись Salesforce, созданная, например, на основе URL-адреса экземпляра этой учетной записи и идентификатора записи. https://yourorg.my.salesforce.com/00Q5g00000ABCDE. Salesforce отправляет эти данные на страницу записи Lightning.
{salesforce_link:FEED_ID} Это прямая ссылка на запись, созданную конкретным каналом. Полезно, когда форма имеет несколько каналов, записывающих данные в разные организации Salesforce, например, один в тестовую среду, а другой в рабочую, поскольку каждый вариант использует собственный URL-адрес экземпляра учетной записи этого канала.
Оба тега работают везде, где Gravity Forms обрабатывает теги слияния, с одним правилом синхронизации. Ленты обработчиков данных работают в фоновом режиме после завершения отправки формы, поэтому сообщение с подтверждением и любое уведомление, отправленное после отправки формы, отображаются до того, как запись будет создана, и теги в этом случае остаются пустыми. Они заполняются везде, где Gravity Forms обрабатывает теги слияния после завершения синхронизации. Чтобы они отображались на странице подтверждения и в уведомлениях об отправке, установите флажок. Обработайте этот поток данных во время отправки. В ленте новостей посетитель ожидает ответа от Salesforce. Типичные варианты использования:
- Свяжите записи между лентами: в последующей ленте установите для поля поиска, например, AccountId или ContactId, значение, равное пользовательскому значению.
{salesforce_id:FEED_ID}из потока данных, который создал родительскую запись. - Уведомления, отправляемые позже: фраза “Новый потенциальный клиент в Salesforce → {salesforce_link}” заполняется при использовании функции повторной отправки уведомлений в Gravity Forms для записи после завершения синхронизации.
- Любой дополнительный или пользовательский код, который обрабатывает теги слияния после синхронизации, например, для передачи
{salesforce_id}в нижестоящую систему.
Переводы
Этот плагин готов к переводу. Вы можете перевести его на любой язык, используя бесплатную версию. Loco Translate плагин или любой другой инструмент перевода WordPress.
Язык по умолчанию: английский (en_US)
Часто задаваемые вопросы
Для этого требуются формы Gravity Forms?
Да. Для работы программы Gravity Forms необходимо установить и активировать Gravity Forms версии 2.7 или выше. Это дополнение для Gravity Forms, поэтому само по себе оно не работает.
Какие версии WordPress и PHP поддерживаются?
WordPress 6.5+ и PHP 8.0+. Протестировано до WordPress 7.0.
Могу ли я подключиться к тестовой среде Salesforce Sandbox?
Да. Использовать https://test.salesforce.com Используйте URL-адрес для входа при подключении учетной записи. К одному и тому же сайту WordPress можно одновременно подключить тестовую и рабочую учетные записи.
Поддерживается ли использование нескольких учетных записей Salesforce на одном сайте?
Да. Подключайте столько учетных записей, сколько хотите. Каждый канал сам выбирает, с какой учетной записью он будет синхронизироваться. Типичные сценарии использования: песочница и рабочая среда, клиентские организации агентств или корпоративные структуры материнских и дочерних компаний.
Можно ли синхронизировать данные с пользовательскими объектами Salesforce?
Да. В раскрывающемся списке “Объект Salesforce” в фиде выберите «Пользовательский (введите ниже)» и введите API-имя вашего пользовательского объекта (например, My_Object__cСписки выбора, загрузка файлов, поиск и предварительное заполнение работают одинаково для пользовательских объектов. Для пользовательских объектов требуется учетная запись OAuth; режим Org ID ограничен только лидами и обращениями.
Можно ли с помощью одной формы создать учетную запись, контакт и возможность, которые будут связаны между собой?
Да. Добавьте по одному каналу для каждого объекта и перетащите их в списке каналов в нужном порядке: сначала учетная запись, затем контакт, затем возможность. Каналы будут работать в этом порядке. В каналах «Контакт» и «Возможность» выполните сопоставление. Идентификатор учетной записи к Индивидуальная стоимость и войти {salesforce_id:FEED_ID} с идентификатором фида учетной записи, который представляет собой fid= значение в его URL-адресе редактирования. Каждая запись поступает уже с полем поиска, указывающим на учетную запись из той же самой отправки. То же самое работает для любого поля поиска, стандартного или пользовательского, при условии, что каналы используют одну и ту же учетную запись Salesforce.
Почему мой объект Salesforce отсутствует в выпадающем списке?
Список объектов поступает из Salesforce и включает только объекты, которые может создавать подключенный пользователь. Если отсутствует объект типа “Лид”, «Контакт» или пользовательский объект, значит, у авторизующего пользователя отсутствует разрешение на создание этого объекта, обычно это лицензия на интеграцию только через API без прикрепленного набора разрешений. Исправьте это в Salesforce, затем дождитесь обновления шестичасового кэша объектов плагина; повторное подключение учетной записи не очищает его. «Пользовательский (введите ниже)» работает как временное решение.
Работает ли это с Salesforce Pardot (Account Engagement)?
Не напрямую. Плагин записывает стандартные записи Salesforce, такие как «Лид» и «Контакт», через REST API Salesforce и не содержит кода, специфичного для Pardot. Если в вашей организации используется коннектор Salesforce-Pardot, Pardot обрабатывает эти записи так же, как и любые другие записи Salesforce. Что представляет собой этот плагин? не Можно: записывать данные непосредственно в Pardot Prospects или Pardot Lists, минуя Salesforce, или взаимодействовать со специфическими для Pardot объектами (пользовательские перенаправления, формы Pardot и т. д.).
Как функция сопоставления списков выбора обрабатывает поля «Штат» и «Страна» с кодами?
Плагин отображает Salesforce. этикетка пользователю формы (например, “Калифорния”), но отправляет список выбора. ценить (например, CA), именно то, что требуется для списков выбора штата/страны в Salesforce, поэтому вам не понадобится таблица перевода с вашей стороны.
В чём разница между режимами «Заполнение» и «Синхронизация в реальном времени» для списков выбора?
- Заполнить Этот код один раз копирует значения из выпадающего списка Salesforce в поле вашей формы. После этого вы можете редактировать, удалять или переставлять варианты. Удобно, когда вам нужна отправная точка, но вы планируете доработать список.
- Live Sync Плагин повторно применяет выбранные параметры Salesforce при каждом обновлении формы, поэтому изменения в Salesforce отображаются в форме автоматически после обновления шестичасового кэша полей. Редактор форм блокирует выбранные параметры, чтобы предотвратить случайное изменение. Это удобно, когда Salesforce является единственным источником достоверной информации (поля статуса, источники лидов, списки стран и т. д.).
Могу ли я разрешить пользователям формы выбирать тип записи Salesforce?
Да. Откройте поле “Выпадающий список / Множественный выбор / Переключатель / Флажок”, включите сопоставление полей Salesforce, выберите объект и выберите «Тип записи» из списка полей. Форма отображает пользователям название типа записи (например, «Донор»); отправленное значение — это идентификатор типа записи Salesforce. Затем сопоставьте это поле Gravity Forms с RecordTypeId в сопоставлении вашей ленты, чтобы выбранный тип записи устанавливался для созданной или обновленной записи. Отображаются только типы записей, доступные вашему подключенному пользователю Salesforce.
Можно ли избежать создания дублирующихся записей?
Да, двумя способами. Включить. Сопоставление первичного ключа В настройках ленты выберите уникальное поле (чаще всего это Email, или любой пользовательский внешний идентификатор). Лента обновит существующую запись при совпадении и создаст новую, если совпадения не будет.
Если вы предпочитаете, чтобы лента новостей остановилась, а не что-либо записала, используйте... проверка на конфликт Вместо этого. Он объединяет несколько полей в один поиск, поэтому сопоставление имени и фамилии позволяет обнаружить одного и того же человека, отправляющего данные под разными адресами электронной почты. Когда каждая сопоставленная строка соответствует одной и той же записи, поток данных останавливается, и ваше сообщение о конфликте регистрируется в журнале для этой записи.
В чём разница между сопоставлением первичного ключа и проверкой на конфликт?
Поиск по первичному ключу находит запись и обновления Проверка на конфликт обнаруживает запись и остановки. Используйте сопоставление, когда повторная отправка должна поддерживать актуальность одной записи; используйте проверку на конфликт, когда вторая отправка представляет собой проблему, о которой вы хотите знать, а не принимать её на себя. Они работают вместе: проверка на конфликт срабатывает только тогда, когда лента собиралась создать запись, поэтому запись, найденная с помощью сопоставления дубликатов, всё равно обновляется в обычном режиме.
Можно ли предварительно заполнить форму имеющимися данными из Salesforce?
Да. Включить. Предварительное заполнение из Salesforce В ленте и сопоставьте поля Salesforce, которые вы хотите получить. Для общедоступной формы также отметьте галочкой. Разрешить публичные запросы предварительного заполнения в формах на лицевой стороне сайта., В противном случае предварительное заполнение выполняется только для авторизованных администраторов. Затем отправьте пользователям URL-адрес, например: ?sfid=001XXXXXXXXXXXX. По умолчанию требуются подписанные запросы со сроком действия 15 минут; используйте встроенную функцию. Генератор подписанных ссылок для предварительного заполнения для создания этих URL-адресов для email-рассылок или схем самообслуживания.
При редактировании записи происходит обновление данных в Salesforce?
После включения — да. Обновление записей, окончательное удаление, восстановление из корзины и синхронизация записей и заметок — это отдельные флажки в разделе «Формы» → «Настройки» → «Salesforce» → «Настройки синхронизации», и все они запускаются автоматически. Создание записей не требует никакой настройки, кроме сохранения ленты; все действия, которые записываются обратно в существующую запись, являются преднамеренно добровольными, поэтому плагин никогда не затрагивает вашу организацию способами, которые вы не запрашивали.
Что произойдет, если я удалю запись, а затем восстановлю ее?
Запись в Salesforce сохраняется на протяжении всего цикла удаления/восстановления. Только окончательное удаление Удаляет запись Salesforce, и только если вы включили эту опцию в настройках плагина. Это соответствует стандартному поведению WordPress: удаление в корзину обратимо, а удаление навсегда — нет.
Почему моя запись отображается синим цветом со статусом “Ожидание”?
Это нормально, и обычно к моменту обновления страницы это исчезает. Обработка данных происходит в фоновом режиме, поэтому вызовы API Salesforce никогда не задерживают отправку формы. Непосредственно перед вызовом Salesforce фоновая задача помечает запись как «Ожидание», а затем перезаписывает её статусом успеха или ошибки, как только Salesforce отвечает. Статус «Ожидание» означает, что задача началась, но так и не завершилась, обычно это таймаут PHP или фатальная ошибка в середине запроса, поэтому включите логирование Gravity Forms и проверьте журнал дополнения. Если обработка данных должна была завершиться, но в записи вообще не отображается статус Salesforce, значит, очередь её не выполнила, что обычно означает, что сайт блокирует запросы обратной связи к admin-ajax.php а WP-Cron, резервный вариант, отключен.
Можно ли повторить неудачную синхронизацию?
Да. Откройте экран с подробной информацией о записи и нажмите. Повторно отправить в Salesforce. Это также сбрасывает флаги дедупликации побочных эффектов, поэтому заметки, файлы и членство в кампаниях повторяются вместе с основной записью.
Работает ли это с дополнительными платежными сервисами (Stripe, PayPal и т. д.)?
Да. В фид платежного дополнения (Stripe, PayPal и т.д.) поступает информация. Действия после оплаты раздел с “Обрабатывать данные из Salesforce только после получения платежа”.” Флажок, который откладывает синхронизацию Salesforce до тех пор, пока платежное дополнение не подтвердит успешную транзакцию, чтобы брошенные заказы никогда не оставляли незавершенных потенциальных клиентов.
Поддерживается ли загрузка файлов через Gravity Forms?
Да. Поля для загрузки файлов в Gravity Forms можно прикрепить к записи Salesforce как ContentVersion / ContentDocumentLink, чтобы они отображались в связанном списке «Файлы» этой записи. Настраиваемый максимальный размер файла: от 1 до 25 МБ на файл, по умолчанию — 10 МБ.
Можно ли запретить плагину сохранять историю синхронизации?
Да. Отметьте галочкой. “Отключить сохранение журналов записей Salesforce (статус/сообщения/история синхронизации)” В настройках плагина не отображаются статус, сообщение или метка времени синхронизации, но ничего не записывается. wp_gf_entry_meta. Прежде всего, следует знать две вещи: страница «Журналы Salesforce» создается на основе этой истории, поэтому она перестает отображать результаты, а боковая панель ввода смещается к ссылке на запись и кнопке «Повторная отправка», и существующая история очищается при включении этой настройки. Идентификаторы записей и учетных записей по-прежнему сохраняются, поэтому теги слияния, ссылки на записи и кнопка «Повторная отправка» продолжают работать.
Как программно настроить параметры загрузки данных в Salesforce?
Используйте pb_gfsf_payload фильтр:
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
// $context['feed'], ['entry'], ['form'], ['object'], ['account_id'], ['method']
return $payload;
}, 10, 2 );Полный список элементов: лента новостей, запись, форма, целевой объект, идентификатор учетной записи и способ подключения (oauth или org_id) доступны в $context Таким образом, вы можете принимать решения, основываясь на любом из них.
Что делать, если у моей организации Salesforce нет доступа к API?
Использовать Режим идентификатора организации. Вместо REST API используется устаревшая конечная точка Salesforce Web-to-Lead / Web-to-Case. Ограничения: поддерживаются только объекты Lead и Case, и отсутствуют функции обновления, удаления, загрузки файлов, предварительного заполнения или сопоставления списков выбора. Для большинства производственных конфигураций правильным выбором является OAuth (по умолчанию).
Какие политики аутентификации Salesforce OAuth поддерживает этот плагин?
Плагин использует поток авторизации OAuth 2.0 с PKCE и поддерживает ротацию токенов обновления, поэтому вы можете включить обе функции в подключенном приложении или внешнем клиентском приложении без разрыва соединения. Единственная несовместимая политика обновления токенов — “Немедленно истечь срок действия токена обновления”, которая принудительно выполняет полную повторную авторизацию при каждом истечении срока действия токена доступа и несовместима с автоматической интеграцией.
Как обеспечивается сохранение авторизации соединения OAuth?
Плагин использует OAuth 2.0 с PKCE и автоматически обновляет токен доступа с помощью токена обновления. Пока политика обновления токена подключенного приложения или внешнего клиентского приложения не истекает (‘действителен до аннулирования’ или имеет длительный фиксированный срок действия, например, 365 дней, как указано в нашем руководстве по настройке), соединение остается активным. Когда срок действия токена обновления истекает, вы повторно подключаете учетную запись. Если же он аннулируется, см. следующий вопрос. Это почти всегда связано с политикой или настройкой области действия подключенного приложения. Поддерживается ротация токенов обновления, поэтому администраторы, заботящиеся о безопасности, также могут включить эту политику.
Соединение с Salesforce постоянно обрывается, и мне приходится переподключаться. Почему?
Практически всегда причина одна из трех: либо политика обновления токена в подключенном приложении настроена на истечение срока действия, а не на “действителен до отзыва”; либо приложение имеет “полный доступ (full)”, что никогда не приводит к выдаче токена обновления; либо диапазоны IP-адресов для входа блокируют ваш сервер, в этом случае Salesforce отклоняет каждое обновление, и повторное подключение с того же сервера не поможет. Начиная с версии 1.3.0, на экране «Учетные записи» отображается информация о том, какая именно учетная запись была обновлена, вместо общего сообщения об ошибке сессии, и записывается время последнего обновления, последнего успешного и последнего неудачного обновления каждой учетной записи.
Удаляются ли данные при удалении плагина?
Только если вы дадите согласие. Включить. “При удалении плагина удаляются все его данные”.” В настройках плагина перед удалением. По умолчанию сохраняются журналы синхронизации и параметры подключения (поэтому вы не потеряете историю, если активируете плагин позже).
Работает ли это с кэшированием/CDN?
Да. Плагин работает полностью на стороне сервера при отправке формы, поэтому кэширование и настройки CDN не мешают синхронизации с Salesforce. JavaScript-код редактора форм загружается только в административной панели WordPress (где кэширование обычно и так отключено).
Работает ли это с многосайтовой сетью WordPress?
Вкратце:
- Безлимитная лицензия: Включите сетевой режим один раз; одной кнопкой можно управлять настройками всех подсайтов, а также оказывать поддержку.
- Сетевой режим включен: Каждый дочерний сайт наследует сетевой ключ, поэтому все они могут запускать каналы Salesforce и получать обновления немедленно. Активация плагина в сети сама по себе не лицензирует дочерние сайты.
- Ограниченный тарифный план / без лицензии на подсайт: Настройки Salesforce на этом дочернем сайте заблокированы, и в его лентах вместо синхронизации отображается сообщение “Синхронизация Salesforce недоступна, пока не будет активирована лицензия плагина”.
- Поддержка предоставляется в соответствии с лицензией: К участию допускаются сайты, охваченные активным ключом.
Если у вас лицензия Unlimited, вы можете включить сетевой режим на главном сайте и отправить этот единый ключ на все дочерние сайты одним пакетом (с отображением хода выполнения в реальном времени). Эти дочерние сайты автоматически наследуют настройки, управляемые лицензией, и поддержку.
Крючки
Фильтры
pb_gfsf_payload
Фильтрация данных, которые будут отправлены в Salesforce. Эта процедура выполняется при каждом создании и обновлении во всех фидах, с полным контекстом синхронизации (конфигурация фида, запись, форма, целевой объект, учетная запись и метод подключения). Она запускается после применения сопоставления полей и идентификатора владельца, но до вызова API, и возврат пустого массива рассматривается так же, как и фид без сопоставленных полей.
Параметры:
$payload(множество): ассоциативный массив имен полей Salesforce → значений, которые будут отправлены.$context(множество): контекст синхронизации. Ключи:feed,entry,form,object,account_id,method(oauthдля подключения по протоколу OAuth,org_id(для преобразования веб-контента в лид/обращение).
Пример: установить источник лидов по умолчанию для каждого лида.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
if ( $context['object'] === 'Lead' && ! isset( $payload['LeadSource'] ) ) {
$payload['LeadSource'] = 'WordPress Form';
}
return $payload;
}, 10, 2 );Пример: маршрутизация различных каналов к различным типам записей.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
$feed_id = (int) ( $context['feed']['id'] ?? 0 );
if ( $feed_id === 12 ) {
$payload['RecordTypeId'] = '0125g000000XYZAAA';
}
return $payload;
}, 10, 2 );Пример: переписать LeadSource на основе ID формы.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
$form_id = (int) ( $context['form']['id'] ?? 0 );
$payload['LeadSource'] = match ( $form_id ) {
7 => 'Webinar Signup',
12 => 'Demo Request',
default => 'Website',
};
return $payload;
}, 10, 2 );pb_gfsf_multi_value_delimiter
Измените разделитель, используемый для объединения вариантов выбора в полях с множественным выбором или в полях с флажками. По умолчанию используется точка с запятой, требуемая для списков множественного выбора Salesforce. Переопределите это значение, если одно из этих полей сопоставлено с текстовым полем, для которого требуется что-то другое.
Параметры:
$delimiter(нить): разделитель,;по умолчанию.$sf_field(нить): Имя API поля Salesforce, которое записывается.$raw_value(нить): сопоставленный идентификатор поля Gravity Forms или тег слияния.$feed(множество): Объект подачи Gravity Forms.
add_filter( 'pb_gfsf_multi_value_delimiter', function ( $delimiter, $sf_field ) {
return 'Interests__c' === $sf_field ? ', ' : $delimiter;
}, 10, 2 );pb_gfsf_allowed_salesforce_domains
Дополнение проверяет каждый URL-адрес для входа в систему, URL-адрес экземпляра и URL-адрес веб-формы для отправки лидов на собственные домены Salesforce, прежде чем отправлять на них учетные данные или данные для ввода. Список по умолчанию: salesforce.com, force.com, cloudforce.com и salesforce.mil, Сопоставление происходит по границе, обозначенной точкой. Добавьте это, если ваша организация доступна в пользовательском домене Salesforce.
Параметры:
$domains(множество): регистрируемые суффиксы, сопоставляемые по границе в виде точки.$url(нить): проверяемый URL-адрес.
add_filter( 'pb_gfsf_allowed_salesforce_domains', function ( $domains ) {
$domains[] = 'example-crm.com';
return $domains;
} );pb_gfsf_http_timeout
Измените время ожидания в секундах, применяемое ко всем запросам к Salesforce. Значение по умолчанию — 20. Сайтам с медленной сетью или при загрузке больших файлов может потребоваться больше времени; любое значение меньше одной-двух секунд нарушит нормальную работу.
add_filter( 'pb_gfsf_http_timeout', function () {
return 45;
} );







