Définir des API personnalisées
API personnalisée sortante
Canaux applicables : SMS, personnalisé
Lorsque vous créez un canal personnalisé dans Dynamics 365 Customer Insights - Journeys, vous devez définir une API personnalisée sortante à appeler pendant l’exécution du parcours. L’API personnalisée est le point d’entrée pour l’exécution de code personnalisé. Elle appelle les API du fournisseur et doit accepter le contrat défini par Customer Insights - Journeys et renvoyer la réponse. L’API personnalisée sortante est attribuée à l’attribut msdyn_outboundendpointurltemplate à l’étape de définition du canal.
Le contrat que l’API personnalisée sortante doit implémenter doit avoir un paramètre d’entrée (charge utile) et un attribut de sortie (réponse).
La charge utile est un JSON sérialisé avec le contrat suivant :
- ChannelDefinitionId : GUID – ID de définition de canal.
- RequestId : chaîne : l’ID de la demande.
- De : chaîne – L’expéditeur (instance de canal).
- À : chaîne – Le destinataire.
-
Message : dictionnaire <chaîne, chaîne> Contient toutes les parties de message d’un canal. Les clés sont les noms des parties du message, notamment les valeurs de l’attribut
msdyn_name
correspondant. -
MarketingAppContext : objet – Un objet représentant le contexte de la soumission. Cet objet n’est disponible que quand la soumission est exécutée à partir de l’application Customer Insights - Journeys. L’objet contient les champs suivants :
- CustomerJourneyId : chaîne – ID du parcours du client qui lance l’appel. Null, quand la soumission est demandée à partir d’un envoi test.
- UserId : GUID – ID de l’utilisateur qui a reçu le message. Null, quand la soumission est demandée à partir d’un envoi test.
- UserEntityType : chaîne – Type d’entité représentant un utilisateur qui reçoit le message. Null, quand la soumission est demandée à partir d’un envoi test.
- IsTestSend : booléen – True quand la soumission a été lancée à partir d’un envoi test ; sinon, false.
La réponse est un JSON sérialisé avec le contrat suivant :
- ChannelDefinitionId : GUID – ID de définition de canal.
- MessageId : chaîne – (facultatif) L’ID du message. Facultatif ; il peut exister dans la réponse API d’un fournisseur.
- RequestId : chaîne : l’ID de la demande. Doit être égal à la valeur de l’ID de demande dans la charge utile de la demande.
-
Statut : chaîne – Les valeurs possibles sont :
- NotSent – Il y a eu une tentative d’exécution de la soumission au fournisseur, mais elle a été rejetée sans possibilité de réessayer.
- Sent – La demande de soumission a été acceptée avec succès par le fournisseur.
API personnalisée de rapport de livraison
Canaux applicables : SMS, personnalisé
Si votre canal prend en charge les rapports ou statuts de remise de message, vous devez définir une API personnalisée du rapport de remise. Votre API est appelée par le fournisseur et doit appeler l’API msdyn_D365ChannelsNotification de la solution de base, qui renvoie les informations à Dataverse. Ces informations sont disponibles dans Analyse Customer Insights - Journeys.
L’API personnalisée du rapport de remise appelle l’API msdyn_D365ChannelsNotification avec le contrat comme paramètre d’entrée :
notificationPayLoad est un JSON sérialisé avec le contrat suivant :
- ChannelDefinitionId : GUID – ID de définition de canal.
- RequestId : chaîne : l’ID de la demande.
- MessageId : chaîne – L’ID du message.
- De : chaîne – L’expéditeur (instance de canal).
- OrganizationId : chaîne – L’ID d’organisation.
-
Statut : chaîne – Le statut du rapport de livraison. Les valeurs possibles sont :
- Delivered – Le message accepté a été remis avec succès à la cible.
- NotDelivered – Le message accepté n’a pas été remis avec succès à la cible.
API personnalisée entrante
Canaux applicables : SMS
Si votre canal prend en charge les demandes entrantes, vous devez définir une API personnalisée entrante. Votre API est appelée par le fournisseur et doit appeler l’API msdyn_D365ChannelsInbound de la solution de base, qui renvoie les informations à Dataverse.
L’API personnalisée entrante appelle l’API msdyn_D365ChannelsInbound avec le contrat comme paramètre d’entrée :
inboundPayLoad est un JSON sérialisé avec le contrat suivant :
- ChannelDefinitionId : GUID – ID de définition de canal.
- À : chaîne – Le numéro de téléphone C1 (instance de canal).
- De : chaîne – point de contact utilisateur C2.
- OrganizationId : chaîne – L’ID d’organisation.
- Message : dictionnaire <chaîne, chaîne> Contient toutes les parties de message d’un canal.