Определение пользовательских API
Исходящий пользовательский API
Применимые каналы: SMS, пользовательский
При создании пользовательского канала в Dynamics 365 Customer Insights - Journeys необходимо определить исходящий пользовательский API для вызова в среде выполнения цикла взаимодействия. Пользовательский API — это точка входа для выполнения пользовательского кода. Он вызывает API поставщика и должен принимать контракт, определенный циклом взаимодействия Customer Insights - Journeys и вернуть ответ. Этот исходящий пользовательский API назначается атрибуту msdyn_outboundendpointurltemplate на шаге определения канала.
Контракт, который должен реализовать исходящий пользовательский API, должен иметь один входной параметр (атакующий код) и один выходной атрибут (ответ).
Атакующий код представляет собой сериализованный JSON со следующим контрактом:
- ChannelDefinitionId: GUID — идентификатор определения канала.
- RequestId: строка — идентификатор запроса.
- From: строка — отправитель (экземпляр канала).
- To: строка — получатель.
-
Message: Dictionary <string, string> — содержит все части сообщения для канала. Ключи — это имена частей сообщения, такие как значения соответствующего атрибута
msdyn_name
. -
MarketingAppContext: object — объект, представляющий контекст отправки. Этот объект доступен только в том случае, если отправка выполняется из приложения Customer Insights - Journeys. Объект содержит следующие поля:
- CustomerJourneyId: строка — идентификатор цикла взаимодействия с клиентом, инициировавшем вызов. Null, когда отправка запрашивается из тестовой отправки.
- UserId: GUID — ИД пользователя, получающего сообщение. Null, когда отправка запрашивается из тестовой отправки.
- UserEntityType: строка — тип сущности, представляющей пользователя, получающего сообщение. Null, когда отправка запрашивается из тестовой отправки.
- IsTestSend: логический — True, если отправка была инициирована тестовой отправкой, в других случаях — False.
Ответ представляет собой сериализованный JSON со следующим контрактом:
- ChannelDefinitionId: GUID — идентификатор определения канала.
- MessageId: строка — (необязательно) идентификатор сообщения. Необязательно, он может существовать в ответе API поставщика.
- RequestId: строка — идентификатор запроса. Должен быть равен значению идентификатора запроса внутри полезной нагрузки запроса.
-
Status: строка — возможны следующие значения:
- NotSent — была попытка выполнить отправку поставщику, но она была отклонена без возможности повторной попытки.
- Sent — запрос на отправку был успешно принят поставщиком.
Пользовательский API отчета о доставке
Применимые каналы: SMS, пользовательский
Если ваш канал поддерживает отчеты о доставке сообщений или статусы для сообщений, необходимо определить пользовательский API отчета о доставке. Ваш API будет вызываться поставщиком, и он должен вызывать API базового решения msdyn_D365ChannelsNotification, которое возвращает информацию в Dataverse. Эта информация доступна в аналитике Customer Insights - Journeys.
Пользовательский API отчета о доставке и вызывает API msdyn_D365ChannelsNotification с контрактом в качестве одного входного параметра:
notificationPayLoad представляет собой сериализованный JSON со следующим контрактом:
- ChannelDefinitionId: GUID — идентификатор определения канала.
- RequestId: строка — идентификатор запроса.
- MessageId: строка — идентификатор сообщения.
- From: строка — отправитель (экземпляр канала).
- OrganizationId: строка — идентификатор организации.
-
Status: строка — статус отчета о доставке. Возможны следующие значения:
- Delivered — принятое сообщение было успешно доставлено адресату.
- NotDelivered — принятое сообщение не было успешно доставлено адресату.
Входящий пользовательский API
Применимые каналы: SMS
Если ваш канал поддерживает входящие запросы, необходимо определить входящий пользовательский API. Ваш API будет вызываться поставщиком, и он должен вызывать API базового решения msdyn_D365ChannelsInbound, которое возвращает информацию в Dataverse.
Входящий пользовательский API вызывает API msdyn_D365ChannelsInbound с контрактом в качестве одного входного параметра:
inboundPayLoad представляет собой сериализованный JSON со следующим контрактом:
- ChannelDefinitionId: GUID — идентификатор определения канала.
- To: строка — номер телефона C1 (экземпляр канала).
- From: строка — точка контакта пользователя C2.
- OrganizationId: строка — идентификатор организации.
- Message: Dictionary <string, string> — содержит все части сообщения для канала.