Интеграции: двери и окна

Как Salesforce разговаривает с внешними системами. Модули: 5.15.25.35.45.5

1. Три способа разговаривать

Любая интеграция это одна из трёх дорог. Либо внешняя система стучится в Salesforce (входящий вызов), либо Salesforce стучится наружу (исходящий вызов, callout), либо кто-то объявляет о событии, а заинтересованные слушают.

Внешняя системаERP, сайт, склад,хранилище данных SalesforceREST, Bulk API 2.0,Composite, Pub/Sub API Входящий: система вызывает API Salesforce с токеном OAuth Исходящий: Apex делает callout через Named Credential События: Platform Event, Change Data Capture, подписчики слушают Каждая дорога начинается с вопроса: кто инициатор и нужен ли ответ сразу

Входящие вызовы идут под integration user и проходят все четыре двери безопасности. Исходящие хранят адрес и доступ в Named Credential, никогда в коде.

2. OAuth: пропуск для программы

Программа не вводит логин и пароль при каждом запросе. Она один раз доказывает, кто она, и получает токен (access token), временный пропуск. Дальше каждый вызов несёт этот пропуск. Для интеграций без человека обычно используют JWT bearer (сертификат) или client credentials (секрет).

1 Удостоверениепрограмма показываетсертификат или секретсвоего приложения 2 ТокенSalesforce выдаётaccess tokenна ограниченное время 3 Вызов APIв заголовкеAuthorization:Bearer токен 4 Проверкатокен живой?права integrationuser на объект и поле 5 Ответ200 и данные401 токен плохой403 нет прав Программа регистрируется в org как external client app (новые connected apps с 2026 года по умолчанию не создаются)

3. Шесть паттернов интеграции

Архитекторы Salesforce описывают почти любую интеграцию одним из шаблонов. Узнать шаблон по описанию задачи значит наполовину её решить.

Request-reply

Синхронно. Спросил и ждёшь ответ на экране.

Пример: кнопка «проверить кредитный лимит» на Account.

Fire-and-forget

Асинхронно. Отправил и пошёл дальше.

Пример: при активации order уходит событие в ERP.

Batch data sync

Пачками по расписанию.

Пример: ночью из хранилища данных обновляются цены и клиенты.

Remote call-in

Внешняя система пишет в Salesforce.

Пример: сайт создаёт Lead через REST API.

UI update

Экран сам обновляется от события.

Пример: статус оплаты меняется на странице quote без перезагрузки.

Data virtualization

Данные не копируем, показываем из источника.

Пример: история счетов из ERP на странице Account через Salesforce Connect.

4. Middleware: переводчик между системами

В реальных проектах системы редко говорят напрямую. Между ними стоит middleware (MuleSoft, другой iPaaS или собственный сервис на хранилище данных). Он переводит форматы, держит очередь, повторяет неудачные попытки и пишет журнал ошибок.

SalesforceOrder активирован,ждёт номер счёта Middlewareперевод форматовочередь и повторыжурнал ошибокключ идемпотентности ERPсоздаёт счёт,возвращает его номер 1 событие2 вызов3 номер4 upsert Идемпотентность: повторная отправка не создаёт второй счётКаждое сообщение несёт ключ (например Id заказа). ERP и Salesforce ищут по ключу перед созданием,а обратная запись идёт через upsert по External ID. Сбой и повтор безопасны

Шаги 1-4: Salesforce объявляет событие, middleware зовёт ERP, ERP возвращает номер, middleware пишет его обратно в Salesforce через upsert.

5. Вопросы, которые задают перед любой интеграцией

Итог одной фразой. Интеграция это одна из трёх дорог (входящий вызов, исходящий callout, событие), один из шести паттернов, пропуск OAuth для программы под отдельным пользователем и обязательная защита от дублей через ключ.
Дальше: Миграция данных. Назад: Безопасность.