Redireccionar

Redireccionar

Basico

"Redirect" permite a los usuarios redirigir a cualquier otro nodo dentro del mismo árbol o en cualquier otro árbol. Este elemento no es obligatorio y solo se aplica cuando deseas enviar respuestas de otros nodos dentro o entre árboles.

Propiedad

Descripción

Requerido
ÁrbolEl árbol al que deseas redirigirY
NodoEl nodo al que deseas redirigirY

También puedes hacer clic aquí para abrir el chatbot o nodo correspondiente en una nueva pestaña.

Habrá líneas punteadas para representar las relaciones de redirección entre nodos generales.



Hay opciones de Ajuste Fino para configurar acciones después de la redirección, puedes usar el interruptor para activar o desactivar las siguientes acciones:

  1. Ejecutar Pre-acciones después de la redirección
  2. Enviar Respuesta después de la redirección
  3. Ejecutar Post-acciones después de la redirección

Avanzado

Para este momento, es posible que hayas dominado la versión básica de la redirección, que es bastante directa. Activa la redirección y el sistema ejecutará el nodo del árbol al que se redirige.

Sin embargo, la versión básica puede no cubrir todos los casos de uso del chatbot.

Imaginemos un escenario en el que el chat en vivo solo se puede activar durante un período de tiempo específico (horario de oficina). En este caso, el sistema no puede simplemente redirigir a un usuario al mismo nodo de chat en vivo. El sistema necesita hacer una verificación antes de determinar a qué nodo del árbol redirigir. Con la versión avanzada de la redirección, finalmente podrás tener en cuenta cambios variables (como el horario de oficina) y redirigir a diferentes nodos según diferentes casos de uso.

Función Avanzada 

Cuando un nodo se ejecuta con éxito y si la redirección del nodo está activada, el nodo redirigido se ejecutará a continuación. Una redirección avanzada es una función Promise. Un objeto con treeId, nodeCompositeId, sendResponse, runPreAction y runPostAction se resuelve mediante la devolución de llamada resolve de la función Promise..

  1. treeId y  nodeCompositeId son el ID del árbol y el ID compuesto del nodo al que se redirige, respectivamente.
  2. sendResponse es un valor booleano que controla si se envían las respuestas del nodo redirigido.
  3. runPreAction y runPostAction son valores booleanos que controlan si se ejecutan las preAction y postAction del nodo redirigido, respectivamente.
  4. Cualquier valor guardado en el ámbito 'this' también se pasa al nodo redirigido.

Para obtener más detalles sobre el concepto y el uso avanzado del chatbot, puedes visitar aquí.

Resultado Esperado

Redirect Example 1
Redirect Example 1
Redirect Example 2
Redirect Example 2

Estructura de Árbol de Ejemplo

Advanced Redirect Sample Tree Structure
Estructura de Árbol de Ejemplo con Redirección Avanzada


Advanced Redirect
Redirección Avanzada
  1. Cuando activas la redirección en "Básico", es necesario elegir el "Árbol" y el "Nodo" al que deseas redirigir. Si deseas personalizar la redirección de manera programática, puedes hacer clic en "Avanzado" después de activar la "Redirección".

  2. Si dejas vacío el resolve "( )", incluso si has activado el botón de redirección, el nodo no se redirigirá.

  3. El área avanzada te permite elegir un nodo diferente según la situación que surja. Los desarrolladores pueden programar la transformación de redirección para diferentes condiciones, realizar o no la redirección ingresando el ID compuesto del nodo.

  4. En el caso siguiente, el sistema redirigirá a diferentes nodos según la hora del evento. Por ejemplo, si el usuario solicita un chat en vivo fuera del horario de oficina, el nodo de chat en vivo no se activará. En su lugar, se enviará un mensaje de fuera de horario de oficina porque el usuario es redirigido al nodo de fuera de horario de oficina.

return new Promise((resolve, reject) => {
const today = this.moment().utcOffset(8)
let nodeCompositeId
this.fetchDataFromDataSource({
channel: this.channel,
collectionName: "Insert the sample datasource ID with public holiday in the format of year/month/date",
filter: {
year: `${today.year()}`,
month: `${today.month() + 1}`,
date: `${today.date()}`,
}
}).then((json) => {
console.log("json", json)
if (json.length) {
// is Holiday
nodeCompositeId = "Insert the composite ID of the node which consists the non-office hour/holiday message"
} else {
console.log("holiday Check", this.moment().utcOffset(8).hour())
// not Holiday
if (
this.moment().utcOffset(8).day() > 0 &&
this.moment().utcOffset(8).day() < 6 &&
this.moment().utcOffset(8).hour() >= 9 &&
this.moment().utcOffset(8).hour() < 18
) {
// is Office Hour
nodeCompositeId = "Insert the composite ID of the node which triggers the live chat"
} else {
// not Office Hour
nodeCompositeId = "Insert the composite ID of the node which consists the non-office hour/holiday message"
}
}
resolve({
tree: this.node.tree,
nodeCompositeId
})
})
})

CONSEJO

Siempre puedes cambiar cómo quieres redirigir basándote en diferentes lógicas de eventos de mensajes. Para obtener más información sobre las referencias de eventos de mensajes, consulta la documentación de referencia