Dela via


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_outboundendpointurltemplatekanaldefinitionssteget.

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.