Поделиться через


Определение пользовательских 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> — содержит все части сообщения для канала.