Definir API personalizadas
API personalizada de salida
Canales aplicables: SMS, Personalizado
Cuando crea un canal personalizado en Dynamics 365 Customer Insights - Journeys, debe definir una API personalizada saliente para llamar durante el tiempo de ejecución del recorrido. La API personalizada es el punto de entrada para la ejecución de código personalizado. Llama a las API del proveedor y debe aceptar el contrato definido por Customer Insights - Journeys y devolver la respuesta. La API personalizada saliente se asigna al atributo msdyn_outboundendpointurltemplate en el paso de definición del canal.
El contrato que debe implementar la API personalizada de salida debe tener un parámetro de entrada (carga útil) y un atributo de salida (respuesta).
La carga útil es un JSON serializado con el siguiente contrato:
- ChannelDefinitionId: GUID: el ID de definición del canal.
- RequestId: cadena – El ID de la solicitud.
- From: cadena – El remitente (instancia de canal).
- To: cadena - el destinatario.
-
Message: diccionario <cadena, cadena> - contiene todas las partes del mensaje de un canal. Las claves son los nombres de las partes del mensaje, como los valores del atributo
msdyn_name
correspondiente. -
MarketingAppContext: objeto: un objeto que representa el contexto del envío. Este objeto solo está disponible cuando el envío se ejecuta desde la aplicación Customer Insights - Journeys. El objeto contiene los siguientes campos:
- CustomerJourneyId: cadena - El ID de recorrido del cliente que inicia la llamada. Nulo, cuando el envío se solicita desde un envío de prueba.
- UserId: GUID - Identificador del usuario que recibe el mensaje. Nulo, cuando el envío se solicita desde un envío de prueba.
- Tipo de entidad de usuario: cadena: tipo de entidad que representa a un usuario que recibe el mensaje. Nulo, cuando el envío se solicita desde un envío de prueba.
- IsTestSend: booleano: verdadero cuando el envío se inició desde un envío de prueba; en caso contrario, falso.
La respuesta es un JSON serializado con el siguiente contrato:
- ChannelDefinitionId: GUID: el ID de definición del canal.
- MessageId: cadena – El ID del mensaje. Opcional; puede existir en la respuesta API de un proveedor.
- RequestId: cadena – El ID de la solicitud. Debe ser igual al valor de ID de la solicitud dentro de la carga útil de la solicitud.
-
Status: cadena: los valores posibles son:
- NotSent – Hubo un intento de ejecutar el envío al proveedor, pero fue rechazado sin posibilidad de volver a intentarlo.
- Sent – La solicitud de envío fue aceptada con éxito por el proveedor.
API personalizada de informe de entrega
Canales aplicables: SMS, Personalizado
Si su canal admite informes de entrega o estados de mensajes, debe definir una API personalizada de informe de entrega. El proveedor llama a su API y debe llamar a la API msdyn_D365ChannelsNotification de la solución base, que devuelve la información a Dataverse. Esta información está disponible en análisis de Customer Insights - Journeys.
La API personalizada del informe de enterga llama a la API msdyn_D365ChannelsNotification con el contrato como un parámetro de entrada:
notificationPayLoad es un JSON serializado con el siguiente contrato:
- ChannelDefinitionId: GUID: el ID de definición del canal.
- RequestId: cadena – El ID de la solicitud.
- MessageId: cadena – El ID del mensaje.
- From: cadena – El remitente (instancia de canal).
- OrganizationId: cadena- Id. de organización.
-
Status: cadena: el estado del informe de entrega. Los valores posibles son:
- Delivered – El mensaje aceptado se entregó con éxito al destino.
- NotDelivered – El mensaje aceptado no se entregó con éxito al destino.
API personalizada de entrada
Canales aplicables: SMS
Si su canal admite solicitudes entrantes, necesita definir una API personalizada de entrada. El proveedor llama a su API y debe llamar a la API msdyn_D365ChannelsInbound de la solución base, que devuelve la información a Dataverse.
La API personalizada de entrada llama a la API msdyn_D365ChannelsInbound con el contrato como un parámetro de entrada:
inboundPayLoad es un JSON serializado con el siguiente contrato:
- ChannelDefinitionId: GUID: el ID de definición del canal.
- To: cadena: el número de teléfono C1 (instancia de canal).
- De: string - Punto de contacto del usuario C2.
- OrganizationId: cadena- Id. de organización.
- Message: diccionario <cadena, cadena> - contiene todas las partes del mensaje de un canal.