Nesta página: capture a resposta JSON retornada por uma ação personalizada e use seus campos para orientar decisões de jornada, personalizar mensagens e manipular erros.
Requisitos de carga de resposta custom-action-enhancements-notes
-
A resposta completa deve ser um objeto JSON. Não há suporte para uma matriz simples como resposta.
-
Matrizes podem ser incluídas dentro de um objeto. Arrays escalares são aceitos; arrays heterogêneos não são.
Compatível:
{
"body": ["val1", "val2"],
"points": 1290
}
Sem suporte (array simples):
["val1", "val2"]
Sem suporte (matriz heterogênea):
{
"values": [20, "aafw", false]
}
Configurar a ação personalizada config-response
Para capturar a resposta de uma ação personalizada, defina uma amostra da carga que seu ponto de extremidade retorna.
-
Criar ou abrir uma ação personalizada. Consulte Configurar uma ação personalizada.
-
Clique dentro do campo Resposta (resposta bem-sucedida).
{width="80%"}
-
Cole um exemplo da resposta bem-sucedida que o endpoint retorna. Verifique se os tipos de campo da amostra correspondem à resposta real. Neste exemplo, o endpoint local envia o número de pontos de fidelidade e o status de um perfil.
code language-json { "customerID": "xY12hye", "status": "gold", "points": 1290 } {width="80%"}
O exemplo define os campos que o Journey Optimizer recupera sempre que a ação é chamada.
-
(Opcional) Para capturar uma carga de falha, selecione Definir uma carga de resposta de falha e forneça um exemplo que corresponda à carga que seu ponto de extremidade retorna quando a chamada falha. Por exemplo:
code language-json { "message": "customer not found" }Quando configurados, os campos de carga com falha ficam disponíveis no nó
errorResponse. A forma da amostra deve corresponder à resposta de falha real. -
Adicione todos os parâmetros de solicitação necessários. Neste exemplo,
customerIDé um parâmetro de consulta. {width="80%"}
-
Clique em Save.
Usar a resposta em uma jornada response-in-journey
Adicione a ação personalizada a uma jornada. Você pode usar os campos de resposta em condições, ações subsequentes e personalização de mensagens.
Por exemplo, você pode adicionar uma condição para verificar o número de pontos de fidelidade. Quando a pessoa entra no restaurante, o terminal local envia uma chamada com as informações de fidelidade do perfil. Você pode enviar um push se o perfil for um cliente gold. Se um erro for detectado na chamada, envie uma ação personalizada para notificar o administrador do sistema.
-
Adicione o evento e a ação personalizada Fidelidade criada anteriormente.
-
Na ação personalizada de Fidelidade, mapeie os parâmetros de entrada necessários, como o parâmetro de consulta da ID do cliente, com a ID do perfil. Selecione Adicionar um caminho alternativo em caso de tempo limite ou erro para tratar esses resultados separadamente.
-
No caminho de sucesso, adicione uma condição e use os campos de resposta de ação. No editor avançado, os campos de resposta estão disponíveis no nó Contexto.
-
Adicione uma ação de push ou outra ação e personalize a mensagem usando os campos de resposta. Neste exemplo, o conteúdo usa o número de pontos de fidelidade e o status do cliente. Os campos de resposta estão disponíveis em Atributos contextuais > Journey Orchestration > Ações.
note NOTE Cada perfil que entra na ação personalizada aciona uma chamada, mesmo que o endpoint retorne a mesma resposta para cada perfil. -
No caminho de tempo limite e erro, adicione uma condição e use o campo interno jo_status_code para ramificar o resultado da chamada. Neste exemplo, a condição verifica o tipo de erro http_400. Consulte Status do erro.
code language-none @action{ActionLoyalty.jo_status_code} == "http_400"Se você tiver configurado uma carga de falha, também poderá ramificar em um de seus campos. Para o exemplo acima:
code language-none @action{ActionLoyalty.errorResponse.message} == "customer not found"
-
Adicione uma ação personalizada que notifique sua organização.
Logs do modo de teste test-mode-logs
Use o modo de teste para inspecionar a carga retornada pela ação na seção actionsHistory dos logs. Para chamadas com falha, os logs incluem a carga de falha, se uma estiver configurada. Isso é útil para depuração.
Status do erro error-status
O campo jo_status_code está disponível mesmo quando nenhuma carga de resposta é definida. Os valores possíveis incluem:
http_<code>http_200 ou http_400timedoutcappedinternalErrorUma chamada de ação é considerada com erro quando o código HTTP retornado é maior que 2xx ou quando outro erro ocorre. Nesse caso, a jornada segue o tempo limite configurado ou a ramificação de erro.
Somente as ações personalizadas recém-criadas incluem o campo jo_status_code por padrão. Para usá-la com uma ação personalizada existente, atualize e salve a ação. Por exemplo, você pode atualizar sua descrição.
Se nenhuma carga de resposta de falha estiver configurada, o nó errorResponse não estará disponível.
Sintaxe da expressão exp-syntax
Fazer referência a um campo de resposta com:
@action{<action name>.<field path>}
Por exemplo:
@action{ActionLoyalty.status}
Para fornecer um valor padrão:
@action{<action name>.<field path>, defaultValue: <expression>}
Por exemplo:
@action{ActionLoyalty.points, defaultValue: 0}
@action{ActionLoyalty.points, defaultValue: @event{myEvent.newPoints}}
Para coleções, use currentActionField para fazer referência ao item atual:
count(
@action{MyAction.MyCollection.all(
currentActionField.description == "abc"
)}
)
Consulte Referências de campo e Funções de gerenciamento de coleções.
Personalizar mensagens do canal nativo response-in-channels
Use campos de resposta de ação personalizados na personalização de canal nativo compatível (email, push, mensagens móveis). Para matrizes e dados aninhados, consulte Iterar em dados contextuais com Handlebars.
Solução de problemas troubleshooting
jo_status_code está ausente em uma ação existenteerrorResponse está indisponíveljo_status_code e, se configurado, a carga de falha nos logs do modo de teste.Recursos adicionais
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page explains how to capture the response payload returned by a custom action’s API call and leverage it to orchestrate journeys, personalize messages, and handle errors.
Intents:
- Configure a custom action to capture success and failure response payloads
- Leverage response payload fields in conditions, other actions, and message personalization
- Handle errors and timeouts using the jo_status_code field and the errorResponse node
- Inspect custom action responses through test mode logs
- Use the expression syntax to reference response fields, including default values and collections
Glossary:
- Response payload: The example payload pasted in the Response (success response) field whose fields are retrieved on each call (product-specific)
- Error response payload: The payload captured when a call fails, enabled by selecting Define a failure response payload, exposed under the errorResponse node (product-specific)
- jo_status_code: A built-in field, always available even when no response payload is defined, that carries the call outcome (product-specific)
- actionsHistory: A section shown in test mode logs that displays the payload returned by the external endpoint (product-specific)
- currentActionField: A reference used to access the current item when manipulating collections in a custom action response (product-specific)
- Test mode: The mode through which you access status logs related to custom action responses (product-specific)
Guardrails:
- The response payload must be a JSON object; a bare top-level array as the whole response is not supported, so place the array inside a field (for example body).
- Scalar arrays are supported in the response payload, but heterogeneous arrays are not supported.
- Only newly created custom actions include the jo_status_code field out-of-the-box; to use it with an existing custom action you need to update the action, for example by updating the description and saving.
- An action call is considered in error when the returned http code is greater than 2xx or if an error occurs, and the journey flows to the dedicated timeout or error branch.
- If an error response payload is configured, its fields are exposed under the errorResponse node for failed calls; if none is configured, that node is not available.
- Each profile entering the custom action triggers one call, even if the response is always the same.
Terminology:
- Canonical name: API call response in custom actions — Acronym: n/a — variants: custom action response, response payload
- Synonyms: “success response” = “Response field”
- Do not confuse: “Response” (success response payload) ≠ “Error Response” (failure response payload defined via Define a failure response payload)
- jo_status_code values: http_
(for example http_200 or http_400), timedout (timeout error), capped (capping error), internalError (internal error)``
`FAQ:
Q: Can the whole custom action response be an array? — No; the response payload must be a JSON object, so place the array inside a field (for example body). A bare top-level array as the whole response is not supported. Q: Which array types are supported in the response payload? — Scalar arrays are supported; heterogeneous arrays are not supported. Q: Why does an existing custom action not expose the jo_status_code field? — Only newly created custom actions include it out-of-the-box; update the existing action, for example by updating the description and saving, to add it. Q: When is an action call considered in error? — When the returned http code is greater than 2xx or an error occurs, after which the journey flows to the dedicated timeout or error branch. Q: Where can the returned payload be inspected? — Through test mode logs, in the actionsHistory section that displays the payload returned by the external endpoint. Q: Can response payload fields be used in native channels? — Yes, response payload fields from custom actions can be used in native channels (email, push, mobile messages) for message personalization.
Personas:
developer: Can leverage API call response payload fields in conditions, other actions, and message personalization. Can reference action response fields using the expression syntax, for example @action{ActionLoyalty.status}. Can use currentActionField to access the current item while manipulating a collection in a custom action response. Where: “Expression syntax”. admin: Can configure the custom action by pasting an example payload into the Response field to capture fields returned by the call. Can enable an error response payload by selecting Define a failure response payload in the custom action configuration. The page states that only newly created custom actions include the jo_status_code field out-of-the-box. Where: “Configure the custom action”.
Onboarding:
Level: Experienced First minimal step: Paste an example of the payload returned by the call. Success check: Each time the API is called, the system retrieves all the fields included in the payload example. Previous: Before configuring the response payload, create the custom action: Configure a custom action (action/about-custom-action-configuration.md) Next: To iterate over arrays and nested data from the response in messages: Iterate over contextual data (personalization/iterate-contextual-data.md)`
``