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.