Puoi sfruttare le risposte alle chiamate API nelle azioni personalizzate e orchestrare i percorsi in base a tali risposte.
Gli array scalari sono supportati nel payload di risposta:
"dummyScalarArray": [
"val1",
"val2"
]
Gli array eterogenei non sono supportati nel payload di risposta:
"dummyRandomArray": [
20,
"aafw",
false
]
Crea l’azione personalizzata. Consulta questa pagina.
Fai clic all’interno del Risposta campo.
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.
{
"customerID" : "xY12hye",
"status":"gold",
"points": 1290 }
Ogni volta che viene chiamata l’API, il sistema recupererà tutti i campi inclusi nell’esempio di payload.
Aggiungiamo anche il customerID come parametro di query.
Fai clic su Salva.
È 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.
Aggiungi l’evento e l’azione personalizzata Fedeltà creata in precedenza.
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.
Nel primo ramo, aggiungi una condizione e utilizza l’editor avanzato per sfruttare i campi di risposta dell’azione, nella sezione Contesto nodo.
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.
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.
Nel ramo di timeout ed errore, aggiungi una condizione e sfrutta il jo_status_code campo. Nel nostro esempio, utilizziamo
http_400 tipo di errore. Consulta questa sezione.
@action{ActionLoyalty.jo_status_code} == "http_400"
Aggiungi un’azione personalizzata che verrà inviata alla tua organizzazione.
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 un actionsHistory sezione di 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.
Il jo_status_code Questo campo è sempre disponibile anche quando non è definito alcun payload di risposta.
Di seguito sono riportati i possibili valori per questo campo:
<HTTP API call returned code>
, ad esempio http_200 o http_400Una 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.
Solo le azioni personalizzate appena create includono jo_status_code preconfigurata. Se desideri utilizzarla con un’azione personalizzata esistente, devi aggiornare l’azione. Ad esempio, puoi aggiornare la descrizione e salvare.
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: @{myEvent.newPoints}}
Per ulteriori informazioni sui riferimenti di campo, consulta questa sezione.