Как Salesforce разговаривает с внешними системами. Модули: 5.15.25.35.45.5
1. Три способа разговаривать
Любая интеграция это одна из трёх дорог. Либо внешняя система стучится в Salesforce (входящий вызов), либо Salesforce стучится наружу (исходящий вызов, callout), либо кто-то объявляет о событии, а заинтересованные слушают.
Входящие вызовы идут под integration user и проходят все четыре двери безопасности. Исходящие хранят адрес и доступ в Named Credential, никогда в коде.
2. OAuth: пропуск для программы
Программа не вводит логин и пароль при каждом запросе. Она один раз доказывает, кто она, и получает токен (access token), временный пропуск. Дальше каждый вызов несёт этот пропуск. Для интеграций без человека обычно используют JWT bearer (сертификат) или client credentials (секрет).
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 или собственный сервис на хранилище данных). Он переводит форматы, держит очередь, повторяет неудачные попытки и пишет журнал ошибок.
Шаги 1-4: Salesforce объявляет событие, middleware зовёт ERP, ERP возвращает номер, middleware пишет его обратно в Salesforce через upsert.
5. Вопросы, которые задают перед любой интеграцией
Кто инициатор и нужен ли ответ сразу? Это выбирает паттерн.
Сколько записей и как часто? Больше нескольких тысяч за раз значит Bulk API 2.0, а не REST по одной.
Под каким пользователем и с какими правами? Отдельный integration user, минимум прав.
Как авторизуемся? JWT bearer или client credentials для серверов, web server flow для людей.
Что при сбое? Повторы, журнал ошибок, кто получает уведомление.
Как избежать дублей? Ключ идемпотентности и upsert по External ID.
Где лимиты? API-запросы в сутки на org, лимиты callouts в транзакции, размер ответа.
Итог одной фразой. Интеграция это одна из трёх дорог (входящий вызов, исходящий callout, событие), один из шести паттернов, пропуск OAuth для программы под отдельным пользователем и обязательная защита от дублей через ключ.