Uso de respuestas de llamadas API en acciones personalizadas custom-action-enhancements

Puede aprovechar las respuestas de llamadas de API en acciones personalizadas y organizar sus recorridos en función de estas respuestas.

Notas importantes custom-action-enhancements-notes

  • Las matrices escalares son compatibles con la carga útil de respuesta:

    code language-none
    "dummyScalarArray": [
    "val1",
    "val2"
    ]
    
  • Las matrices heterogéneas no son compatibles con la carga útil de respuesta:

    code language-none
    "dummyRandomArray": [
    20,
    "aafw",
    false
    ]
    

Configurar la acción personalizada config-response

  1. Cree la acción personalizada. Consulte esta página.

  2. Haga clic dentro del campo Respuesta (respuesta correcta).

    {width="80%"}

  3. Pegue un ejemplo de la carga útil devuelta por la llamada. Compruebe que los tipos de campo son correctos (cadena, entero, etc.). Este es un ejemplo de carga útil de respuesta capturada durante la llamada. Nuestro extremo local envía el número de puntos de lealtad y el estado de un perfil.

    code language-none
    {
    "customerID" : "xY12hye",
    "status":"gold",
    "points": 1290 }
    

    {width="80%"}

    Cada vez que se llama a la API, el sistema recupera todos los campos incluidos en el ejemplo de carga útil.

  4. (Opcional) Habilite una carga útil de respuesta a errores para capturar el formato devuelto cuando falla la llamada y, a continuación, pegue una carga útil de ejemplo. Para ello, seleccione Definir una carga útil de respuesta de error en la configuración de acción personalizada. Obtenga más información acerca de la configuración de los campos de carga útil en Configurar una acción personalizada.

    code language-none
    {
    "errorResponse" : "customer not found"
    }
    

    La carga de respuesta a error solo está disponible si la habilita en la configuración de acción personalizada.

  5. Vamos a añadir también customerID como parámetro de consulta.

    {width="80%"}

  6. Haga clic en Guardar.

Aprovechamiento de la respuesta en un recorrido response-in-journey

Simplemente, agregue la acción personalizada a un recorrido. A continuación, puede aprovechar los campos de carga útil de respuesta en condiciones, otras acciones y la personalización de mensajes.

Si ha definido una carga de respuesta de error, esta se expone en Atributos contextuales > Journey Orchestration > Acciones > <action name> > errorResponse. Puede utilizarlo en las ramas de tiempo de espera y error para controlar la lógica de reserva y la gestión de errores.

Por ejemplo, puede agregar una condición para comprobar la cantidad de puntos de lealtad. Cuando la persona entra en el restaurante, el punto final local envía una llamada con la información de fidelidad del perfil. Puede enviar una notificación push si el perfil es un cliente de oro. Y si se detecta un error en la llamada de, envíe una acción personalizada para notificarlo al administrador del sistema.

  1. Añada el evento y la acción personalizada Fidelidad creada anteriormente.

  2. En la acción personalizada Fidelidad, asigne el parámetro de consulta ID de cliente con el ID de perfil. Marque la opción Agregar una ruta alternativa en caso de tiempo de espera o error.

  3. En la primera rama, agregue una condición y utilice el editor avanzado para aprovechar los campos de respuesta de acción, en el nodo Context.

  4. A continuación, añada la notificación push y personalice el mensaje mediante los campos de respuesta. En nuestro ejemplo, personalizamos el contenido mediante la cantidad de puntos de fidelidad y el estado del cliente. Los campos de respuesta a la acción están disponibles en Atributos contextuales > Journey Orchestration > Acciones.

    note note
    NOTE
    Cada perfil que introduzca la acción personalizada almacenará en déclencheur una llamada. Incluso si la respuesta siempre es la misma, el Recorrido seguirá realizando una llamada por perfil.
  5. En las ramas de tiempo de espera y error, agregue una condición y aproveche el campo jo_status_code integrado. En nuestro ejemplo, estamos utilizando el
    Tipo de error http_400. Consulte esta sección.

    code language-none
    @action{ActionLoyalty.jo_status_code} == "http_400"
    

    Si se ha definido una carga útil de respuesta a error, también puede establecer como objetivo sus campos, por ejemplo:

    code language-none
    @action{ActionLoyalty.errorResponse.errorResponse} == "customer not found"
    

  6. Añada una acción personalizada que se enviará a su organización.

Registros del modo de prueba test-mode-logs

Puede acceder, a través del modo de prueba, a los registros de estado relacionados con las respuestas de acciones personalizadas. Si ha definido acciones personalizadas con respuestas en el recorrido, verá una sección actionsHistory en esos registros que muestra la carga útil devuelta por el extremo externo (como respuesta de esa acción personalizada). Cuando se define una carga útil de respuesta a errores, se incluye para las llamadas fallidas. Esto puede resultar muy útil en términos de depuración.

Estado de error error-status

El campo jo_status_code siempre está disponible aunque no se haya definido una carga útil de respuesta.

Estos son los valores posibles de este campo:

  • código de estado http: http_<HTTP API call returned code>, por ejemplo http_200 o http_400
  • error de tiempo de espera: tiempo de espera
  • error de límite: límite
  • error interno: internalError

Una llamada de acción se considera errónea cuando el código http devuelto es mayor que 2xx o si se produce un error. En estos casos, el recorrido fluye a la rama de tiempo de espera o error correspondiente.

Si se ha configurado una carga de respuesta de error para la acción personalizada, sus campos se exponen en el nodo errorResponse para las llamadas con error. Si no se configura ninguna carga útil de respuesta a errores, ese nodo no está disponible.

WARNING
Solo las acciones personalizadas recién creadas incluyen el campo jo_status_code de forma predeterminada. Si desea utilizarlo con una acción personalizada existente, debe actualizar la acción. Por ejemplo, puede actualizar la descripción y guardar.

Sintaxis de expresión exp-syntax

Esta es la sintaxis:

#@action{myAction.myField}

A continuación se muestran algunos ejemplos:

 // action response field
 @action{<action name>.<path to the field>}
 @action{ActionLoyalty.status}
 // action response field
 @action{<action name>.<path to the field>, defaultValue: <default value expression>}
 @action{ActionLoyalty.points, defaultValue: 0}
 @action{ActionLoyalty.points, defaultValue: @event{myEvent.newPoints}}

Al manipular colecciones en una respuesta de acción personalizada, puede confiar en currentActionField para acceder al elemento actual:

count(
@action{MyAction.MyCollection.all(
currentActionField.description == "abc"
)}
)

Uso de respuestas de acción personalizadas en canales nativos response-in-channels

Los campos de carga de respuesta de las acciones personalizadas se pueden utilizar en canales nativos (correo electrónico, push, SMS) para la personalización de mensajes. Esto incluye la capacidad de iterar en matrices y estructuras de datos anidadas devueltas por API externas.

Para obtener ejemplos detallados y sintaxis para repetir datos de respuesta de acciones personalizadas en los mensajes, consulte Iterar datos contextuales con Handlebars.

Recursos adicionales

Para obtener más información, consulte estas páginas:

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76