Definiera anpassade API:er
Anpassat utgående API
Tillämpliga kanaler: SMS, anpassa
När du skapar och anpassad kanal i Dynamics 365 Customer Insights - Journeys måste du definiera en utgående anpassat API att ringa under resans gång. Det anpassade API:et är startpunkten för körning av anpassad kod. Den anropar leverantörens API:er och måste acceptera avtalet som definieras av Customer Insights - Journeys och returnera svaret. Det utgående anpassade API:t tilldelas attributet msdyn_outboundendpointurltemplate på kanaldefinitionssteget.
Kontraktet som det utgående API:et ska implementera måste ha en indataparameter (nyttolast) och ett utdataattribut (svar).
Nyttolast är en serialiserad JSON med följande kontrakt:
- ChannelDefinitionId: GUID – Kanaldefinitions-ID.
- RequestId: sträng – Förfrågans ID.
- Från: sträng – Avsändaren (kanalinstans).
- Till: sträng – mottagaren.
-
Meddelande: Ordlista <sträng, sträng> – Innehåller alla meddelandedelar för en kanal. Nycklar är meddelandedelsnamnen, det vill säga värden för motsvarande
msdyn_name
attribut. -
MarketingAppContext: objekt – Ett objekt som representerar sammanhanget för överföringen. Objektet är endast tillgängligt när överföringen körs från Customer Insights - Journeys-programmet. Objektet innehåller följande fält:
- CustomerJourneyId: sträng – ID för kundens färd initierar samtalet. Null när det krävs för att skicka in en förfrågan från ett test.
- UserId: GUID – ID för användaren som tar emot meddelandet. Null när det krävs för att skicka in en förfrågan från ett test.
- UserEntityType: sträng – Typ av entitet som representerar en användare som tar emot meddelandet. Null när det krävs för att skicka in en förfrågan från ett test.
- IsTestSend: booleskt – Sant när överföringen startades från ett test som skickades. Falskt annars.
Svar är en serialiserad JSON med följande kontrakt:
- ChannelDefinitionId: GUID – Kanaldefinitions-ID.
- MessageId: sträng – (valfritt) Meddelande-ID. Valfritt kan det finnas i en providers API-svar.
- RequestId: sträng – Förfrågans ID. Ska vara lika med värdet för begärans-ID i begärans nyttolast.
-
Status: sträng – Möjliga värden är:
- NotSent – Det gjordes ett försök att utföra inlämningen till leverantören, men det avvisades utan möjlighet att försöka igen.
- Sent – Begäran att skicka godkändes framgångsrikt av leverantören.
Leveransrapport anpassat API
Tillämpliga kanaler: SMS, anpassa
Om din kanal stöder meddelande leveransrapporter eller statusar måste du definiera en leveransrapport anpassat API. Ditt API anropas av leverantören och det måste anropa grundlösningens API msdyn_D365ChannelsNotification, som returnerar informationen till Dataverse. Den här informationen är tillgänglig i Customer Insights - Journeys-analys.
Ditt eget anpassade API körs och anropar msdyn_D365ChannelsNotification API med kontrakt som en indataparameter:
notificationPayLoad är en serialiserad JSON med följande kontrakt:
- ChannelDefinitionId: GUID – Kanaldefinitions-ID.
- RequestId: sträng – Förfrågans ID.
- MessageId: sträng – Meddelande-ID.
- Från: sträng – Avsändaren (kanalinstans).
- OrganizationId: sträng – Organisations-ID.
-
Status: sträng – Leveransrapportens status. Möjliga värden är:
- Delivered – Det godkända meddelandet levererades till målet.
- NotDelivered – Det godkända meddelandet levererades inte till målet.
Anpassat ingående API
Tillämpliga kanaler: SMS
Om din kanal stöder inkommande förfrågningar, måste du definiera inkommande anpassat API. Ditt API anropas av leverantören och det måste anropa grundlösningens API msdyn_D365ChannelsInbound, som returnerar informationen till Dataverse.
Ditt inkommande anpassade API körs och anropar msdyn_D365ChannelsInbound API med kontrakt som en indataparameter:
inboundPayLoad är en serialiserad JSON med följande kontrakt:
- ChannelDefinitionId: GUID – Kanaldefinitions-ID.
- Till: sträng – C1-telefonnumret (kanalinstans).
- Från: sträng – C2-användarkontaktpunkt.
- OrganizationId: sträng – Organisations-ID.
- Meddelande: Ordlista <sträng, sträng> – Innehåller alla meddelandedelar för en kanal.