Utilizzare le risposte alle chiamate API nelle azioni personalizzate custom-action-enhancements

Puoi sfruttare le risposte alle chiamate API nelle azioni personalizzate e orchestrare i percorsi in base a tali risposte.

Note importanti custom-action-enhancements-notes

  • Gli array scalari sono supportati nel payload di risposta:

    code language-none
    "dummyScalarArray": [
    "val1",
    "val2"
    ]
    
  • Gli array eterogenei non sono supportati nel payload di risposta:

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

Configurare l’azione personalizzata config-response

  1. Crea l’azione personalizzata. Consulta questa pagina.

  2. Fai clic nel campo Risposta.

    {width="80%"}

  3. Incolla un esempio del payload restituito dalla chiamata. Verifica che i tipi di campo siano corretti (stringa, numero intero, ecc.). Ecco un esempio di payload di risposta acquisito durante la chiamata. L’endpoint locale invia il numero di punti fedeltà e lo stato di un profilo.

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

    {width="80%"}

    Ogni volta che viene chiamata l’API, il sistema recupererà tutti i campi inclusi nell’esempio di payload.

  4. Aggiungiamo anche il customerID come parametro di query.

    {width="80%"}

  5. Fai clic su Salva.

Sfruttare la risposta in un percorso response-in-journey

È sufficiente aggiungere l’azione personalizzata a un percorso. Puoi quindi sfruttare i campi del payload di risposta in condizioni, altre azioni e personalizzazione dei messaggi.

Ad esempio, puoi aggiungere una condizione per verificare il numero di punti fedeltà. Quando la persona accede al ristorante, l’endpoint locale invia una chiamata con le informazioni sulla fedeltà del profilo. Puoi inviare un messaggio push se il profilo è un cliente Gold. E se nella chiamata viene rilevato un errore, invia un’azione personalizzata per informare l’amministratore di sistema.

  1. Aggiungi l’evento e l’azione personalizzata Fedeltà creata in precedenza.

  2. Nell’azione personalizzata Fedeltà, mappa il parametro di query dell’ID cliente con l’ID profilo. Seleziona l'opzione Aggiungi un percorso alternativo in caso di timeout o errore.

  3. Nel primo ramo, aggiungi una condizione e utilizza l'editor avanzato per sfruttare i campi di risposta dell'azione, nel nodo Context.

  4. Quindi aggiungi il push e personalizza il messaggio utilizzando i campi di risposta. Nel nostro esempio, personalizziamo il contenuto utilizzando il numero di punti fedeltà e lo stato del cliente. I campi di risposta dell'azione sono disponibili in Attributi contestuali > Journey Orchestration > Azioni.

    note note
    NOTE
    Ogni profilo che accede all’azione personalizzata attiva una chiamata. Anche se la risposta è sempre la stessa, il Percorso eseguirà comunque una chiamata per profilo.
  5. Nel ramo timeout ed errore, aggiungi una condizione e sfrutta il campo jo_status_code integrato. Nel nostro esempio, utilizziamo
    Tipo di errore http_400. Consulta questa sezione.

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

  6. Aggiungi un’azione personalizzata che verrà inviata alla tua organizzazione.

Registri della modalità di test test-mode-logs

Puoi accedere ai registri di stato relativi alle risposte alle azioni personalizzate tramite la modalità di test. Se hai definito azioni personalizzate con risposte nel tuo percorso, visualizzerai una sezione actionsHistory in tali registri in cui viene visualizzato il payload restituito dall'endpoint esterno (come risposta da tale azione personalizzata). Questo può essere molto utile in termini di debug.

Stato errore error-status

Il campo jo_status_code è sempre disponibile anche quando non è definito alcun payload di risposta.

Di seguito sono riportati i possibili valori per questo campo:

  • codice di stato http: http_<HTTP API call returned code>, ad esempio http_200 o http_400
  • errore di timeout: timeout
  • errore di limite: limitato
  • errore interno: internalError

Una chiamata di azione viene considerata in errore quando il codice http restituito è maggiore di 2xx o se si verifica un errore. In questi casi, il percorso passa al ramo dedicato relativo al timeout o all’errore.

WARNING
Solo le azioni personalizzate appena create includono il campo jo_status_code pronto all'uso. Se desideri utilizzarla con un’azione personalizzata esistente, devi aggiornare l’azione. Ad esempio, puoi aggiornare la descrizione e salvare.

Sintassi delle espressioni exp-syntax

Di seguito è riportata la sintassi:

#@action{myAction.myField}

Di seguito sono riportati alcuni esempi:

 // 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}}

Durante la manipolazione delle raccolte in una risposta di azione personalizzata, è possibile fare affidamento su currentActionField per accedere all'elemento corrente:

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

Risorse aggiuntive

Per ulteriori informazioni, consulta le seguenti pagine:

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