Partilhar via


Definir APIs personalizadas

API personalizada de saída

Canais aplicáveis: SMS, personalizado

Quando cria um canal personalizado no Dynamics 365 Customer Insights - Journeys, tem de definir uma API personalizada de saída a chamar durante o runtime do percurso. A API personalizada é o ponto de entrada para executar código personalizado. Chama as APIs do fornecedor e tem de aceitar o contrato definido pelo percurso do Customer Insights - Journeys e devolver a resposta. A API personalizada de saída é atribuída ao atributo msdyn_outboundendpointurltemplate no passo de definição do canal.

O contrato que a API personalizada de saída deve implementar tem de ter um parâmetro de entrada (payload) e um atributo de saída (resposta).

  • O payload é um JSON serializado com o seguinte contrato:

    • ChannelDefinitionId: GUID — O ID de definição de canal.
    • RequestId: cadeia — O ID do pedido.
    • From: cadeia — O remetente (instância do canal).
    • To: cadeia — O destinatário.
    • Message: Dicionário <cadeia, cadeia> — Contém todas as partes da mensagem de um canal. As chaves são os nomes das partes das mensagens, como os valores do atributo msdyn_name correspondente.
    • MarketingAppContext: objeto — Um objeto que representa o contexto da submissão. Este objeto só está disponível quando a submissão é executada a partir da aplicação Customer Insights - Journeys. O objeto contém os seguintes campos:
      • CustomerJourneyId: cadeia — O ID do percurso do cliente que inicia a chamada. Nulo, quando a submissão é pedida a partir de um envio de teste.
      • UserId: GUID — ID do utilizador que está a receber a mensagem. Nulo, quando a submissão é pedida a partir de um envio de teste.
      • UserEntityType: cadeia — Tipo de entidade que representa um utilizador que está a receber a mensagem. Nulo, quando a submissão é pedida a partir de um envio de teste.
      • IsTestSend: booleano — verdadeiro, quando o envio foi iniciado a partir de um envio de teste; de outro modo, falso.
  • A resposta é um JSON serializado com o seguinte contrato:

    • ChannelDefinitionId: GUID — O ID de definição de canal.
    • MessageId: cadeia — (Opcional) O ID da mensagem. Opcional; pode existir na resposta da API de um fornecedor.
    • RequestId: cadeia — O ID do pedido. Deverá ser igual ao valor de ID do pedido dentro do payload do pedido.
    • Status: cadeia — Os valores possíveis são:
      • NotSent — Houve uma tentativa de execução de submissão ao fornecedor, mas foi rejeitada sem ser possível repetir.
      • Sent – O pedido de submissão foi aceite com êxito pelo fornecedor.

API personalizada de relatório de entrega

Canais aplicáveis: SMS, personalizado

Se o canal suportar estados ou relatórios de entrega de mensagens, é necessário definir uma API personalizada de relatório de entrega. A API é chamada pelo fornecedor e esta tem de chamar a API msdyn_D365ChannelsNotification da solução base, que devolve as informações ao Dataverse. Estas informações estão disponíveis na análise do Customer Insights - Journeys.

A API personalizada do relatório de entrega chama a API msdyn_D365ChannelsNotification com o contrato como um parâmetro de entrada:

  • notificationPayLoad é um JSON serializado com o seguinte contrato:

    • ChannelDefinitionId: GUID — O ID de definição de canal.
    • RequestId: cadeia — O ID do pedido.
    • MessageId: cadeia — O ID da mensagem.
    • From: cadeia — O remetente (instância do canal).
    • OrganizationId: cadeia — O ID da organização.
    • Status: cadeia — O estado do relatório de entrega. Os valores possíveis são:
      • Delivered – A mensagem aceite foi entregue com êxito no destino.
      • NotDelivered – A mensagem aceite não foi entregue com êxito no destino.

API personalizada de entrada

Canais aplicáveis: SMS

Se o canal suportar pedidos de entrada, tem de definir uma API personalizada de entrada. A API é chamada pelo fornecedor e esta tem de chamar a API msdyn_D365ChannelsInbound da solução base, que devolve as informações ao Dataverse.

A API personalizada de entrada chama a API msdyn_D365ChannelsInbound com o contrato como um parâmetro de entrada:

  • O inboundPayLoad é um JSON serializado com o seguinte contrato:

    • ChannelDefinitionId: GUID — O ID de definição de canal.
    • To: cadeia — O número de telefone C1 (instância de canal).
    • From: cadeia — Ponto de contacto do utilizador C2.
    • OrganizationId: cadeia — O ID da organização.
    • Message: Dicionário <cadeia, cadeia> — Contém todas as partes da mensagem de um canal.