Definer egendefinerte API-er
Utgående egendefinert API
Aktuelle kanaler: SMS, egendefinert
Når du oppretter en egendefinert kanal i Dynamics 365 Customer Insights - Journeys, må du definere en utgående egendefinert API å kalle opp i løpet av kjøretiden for reisen. Den egendefinerte API-en er inngangspunktet for kjøring av egendefinert kode. Den kaller opp leverandørens API og må godta kontrakten som er definert av Customer Insights - Journeys-reisen, og returnere svaret. Den utgående egendefinerte API-en er tilordnet til attributtet msdyn_outboundendpointurltemplate i kanaldefinisjonstrinnet.
Kontrakten som den utgående egendefinerte API-en skal implementere, må ha én inndataparameter (nyttelast) og ett utdataattributt (svar).
Nyttelasten er en serialisert JSON med følgende kontrakt:
- ChannelDefinitionId: GUID – Definisjons-ID-en for kanalen.
- RequestId: streng – Forespørsels-ID-en.
- From: streng – Avsenderen (kanalforekomst).
- To: streng – Mottakeren.
-
Message: Dictionary <streng, streng> – Inneholder alle meldingsdelene for en kanal. Nøkler er navn på meldingsdeler, for eksempel verdiene i det tilsvarende
msdyn_name
-attributtet. -
MarketingAppContext: objekt – Et objekt som representerer konteksten for sendingen. Dette objektet er bare tilgjengelig når sendingen kjøres fra Customer Insights - Journeys-appen. Objektet inneholder følgende felter:
- CustomerJourneyId: streng – ID-en for kundereisen som innleder samtalen. Null når sendingen er på forespørsel fra en testsending.
- UserId: GUID – ID for brukeren som mottar meldingen. Null når sendingen er på forespørsel fra en testsending.
- UserEntityType: streng – Enhetstypen som representerer en bruker som mottar meldingen. Null når sendingen er på forespørsel fra en testsending.
- IsTestSend: boolsk – True når sendingen ble startet fra en testsending, ellers False.
Svaret er en serialisert JSON med følgende kontrakt:
- ChannelDefinitionId: GUID – Definisjons-ID-en for kanalen.
- MessageId: streng – (Valgfritt) Meldings-ID-en. Valgfri; kan finnes i API-svaret til en leverandør.
- RequestId: streng – Forespørsels-ID-en. Skal være lik verdien for forespørsels-ID inne i forespørselslasten.
-
Status: streng – Mulige verdier er:
- NotSent – Det ble gjort et forsøk på å kjøre sendingen til leverandøren, men den ble avvist uten mulighet for å gjøre et nytt forsøk.
- Sent – Sendingsforespørselen ble godtatt av leverandøren.
Egendefinert API for leveringsrapport
Aktuelle kanaler: SMS, egendefinert
Hvis kanalen støtter meldingsleveringsrapporter eller -statuser, må du definere en Egendefinert API for leveringsrapport. API-en kalles opp av leverandøren, og den må kalle opp basisløsningens msdyn_D365ChannelsNotification-API, som returnerer informasjonen til Dataverse. Denne informasjonen er tilgjengelig i Customer Insights - Journeys-analyse.
Den egendefinerte API-en for leveringsrapport kaller opp API-en msdyn_D365ChannelsNotification med kontrakten som én inndataparameter:
notificationPayLoad er en serialisert JSON med følgende kontrakt:
- ChannelDefinitionId: GUID – Definisjons-ID-en for kanalen.
- RequestId: streng – Forespørsels-ID-en.
- MessageId: streng – Meldings-ID-en.
- From: streng – Avsenderen (kanalforekomst).
- OrganizationId: streng – Organisasjons-ID-en.
-
Status: streng – Statusen for leveringsrapporten. Mulige verdier er:
- Delivered – Den godtatte meldingen ble levert til målet.
- NotDelivered – Den godtatte meldingen ble ikke levert til målet.
Innkommende egendefinert API
Aktuelle kanaler: SMS
Hvis kanalen støtter innkommende forespørsler, må du definere en innkommende egendefinert API. API-en kalles opp av leverandøren, og den må kalle opp basisløsningens msdyn_D365ChannelsInbound-API, som returnerer informasjonen til Dataverse.
Den innkommende egendefinerte API-en kaller opp API-en msdyn_D365ChannelsInbound med kontrakten som én inndataparameter:
inboundPayLoad er en serialisert JSON med følgende kontrakt:
- ChannelDefinitionId: GUID – Definisjons-ID-en for kanalen.
- To: streng – C1-telefonnummeret (kanalforekomst).
- From: streng – C2-brukerkontaktpunktet.
- OrganizationId: streng – Organisasjons-ID-en.
- Message: Dictionary <streng, streng> – Inneholder alle meldingsdelene for en kanal.