Utiliza Architect para crear un bot digital para concertar una cita
Puede crear un flujo de bot digital en Architect para programar una cita y utilizar el flujo de bot en un flujo de mensajes entrantes. Crea el bot digital dentro del flujo, o créalo por separado y luego llámalo desde el flujo de mensajes entrantes.
Crear un bot digital para programar citas con Architect
Este procedimiento describe cómo crear un bot para un flujo de mensajes entrantes. En este ejemplo, los usuarios eligen una fecha y hora de cita a partir de una lista de franjas horarias que el bot les proporciona. Los eventos del calendario se recuperan de un punto final API de terceros que ayuda a programar o reservar.
También puede crear acciones personalizadas en Genesys Cloud para usar con sus integraciones de acciones de datos. Copie una acción existente (estática o personalizada) para usarla como plantilla, o siga estos pasos para crear una acción completamente nueva. Cuando agrega una acción, puede agregar contratos y configuración o importarlos desde otra acción de datos.
En Genesys Cloud, utilice una acción de datos para recuperar los valores durante la conversación del bot. Definir el contrato de entrada y el contrato de salida. El Contrato de salida en la acción de datos debe coincidir con el mensaje de retorno que configure en su ruta a endpoint.
Para crear una acción de datos en Genesys Cloud, complete estos pasos:
- En Genesys Cloud, haga clic en Administración.
- Debajo Integraciones, haga clic en Comportamiento.
- Crea una acción personalizada para integraciones
- Agregar contratos.
- Agregar configuración.
- Prueba la acción.
Para más información, ver Gestionar acciones individuales para integraciones.
Ejemplo: Un punto final API de prueba
Ejemplo: Ficha Contratos de acciones de datos de Genesys Cloud
- Desde la página de inicio de Architect, haga clic o coloque el cursor sobre el Flujos menú y seleccione Flujos de bots digitales.
- Hacer clic Agregar. Se abre el cuadro de diálogo Crear flujo de bot.
- En el Nombre campo, ingrese un nombre único para el flujo.
- (Opcional) En el Descripción campo, agregue una oración o frase corta para describir este flujo.
- Haga clic en el Idioma predeterminado lista y seleccione el idioma admitido predeterminado del flujo.
- Haga clic en el Divisiones lista y seleccione la división en la que colocar el flujo.
- Hacer clic Crear flujo. Se abre la página de configuración del flujo.
Para llamar a una acción de datos desde un flujo de bot de Architect, siga estos pasos:
- Desde la caja de herramientas de Architect, arrastre un Llamar a la acción de datos en el editor de tareas, debajo del elemento Inicio.
- Bajo Categoría, seleccione la categoría de integraciones adecuada; por ejemplo, acciones de datos de servicios web.
- En Data Action, seleccione la acción de datos del programador que creó en Genesys Cloud Admin.
- Para configurar las salidas de éxito, haga lo siguiente:
- Configure una variable en el campo slots.startTime para almacenar los valores DateTime de inicio recuperados de Call Data Action. Por ejemplo,
Flow.availableStartTimes
. - Configure una variable en el campo slots.duration para almacenar el valor de duración recuperado de Call Data Action. Por ejemplo,
Flow.appointmentDurations
.
- Configure una variable en el campo slots.startTime para almacenar los valores DateTime de inicio recuperados de Call Data Action. Por ejemplo,
- Definir salidas de fallo y tiempo de espera.
Ejemplo: Llamada Data Action
Prepare una lista de objetos de franja horaria para utilizar en su flujo convirtiendo los datos de su acción de datos.
Para leer los datos recuperados, utilice una acción Loop:
- Desde la caja de herramientas de Architect, arrastre una acción Loop al editor de tareas, debajo de la acción Call Data.
- Añada un nombre de datos de índice como
Flow.loopindex
. - Establezca el recuento máximo del bucle en la expresión,
Count(Flow.availableStartTimes)
. Puede elegir cualquiera de las variables definidas en la ruta Success de su Call Data Action.
Siguiendo este método, se ejecuta el bucle una vez por cada elemento devuelto por la acción de datos. Posteriormente, puede crear una lista de objetos de franja horaria y almacenarla en el tipo de datos Colección. - Para crear una colección de franjas horarias,
- Desde la caja de herramientas, expanda la categoría Data y arrastre una acción Update Data a la acción Loop.
- En el área de trabajo Actualizar datos, haga clic en junto a Actualizar sentencias y seleccione Colecciones.
- Con la lista de colecciones abierta, seleccione Timeslot Collection.
- En Nombre de variable 1, introduzca un nombre para la lista que debe almacenar la lista completa de franjas horarias. Por ejemplo,
Flow.timeslots
. - En Valor a asignar 1, añada la expresión,
AddItem(Flow.timeslots, MakeTimeslot(ToDateTime(Flow.availableStartTimes[Flow.loopindex]), ToDuration(Flow.appointmentDurations[Flow.loopindex])))
.
La expresión anterior toma el elemento de la lista deFlow.availableStartTimes
que coincide con el índice del bucle actual y lo convierte en un objeto DateTime. También toma el elemento correspondiente de la lista deFlow.appointmentDurations
y lo convierte en un objeto de duración. Por último, combina los dos en un nuevo objeto de franja horaria y añade ese objeto a la variable Timeslot Collection.
- Algunos canales de mensajería no admiten la selección de tiempo en segundos o milisegundos. En tales casos, puede limitar el formato de la hora a horas y minutos en su flujo para evitar cualquier desajuste en la entrada del usuario.
- Cada colección de franjas horarias puede tener hasta 50 valores DateTime.
Ejemplo: Acción en bucle
Ejemplo: Acción Actualizar datos
- En Natural Language Understanding, haga clic en Slots.
- Haga clic en Slot.
- Introduzca un nombre significativo para la ranura y haga clic en Guardar.
- En Natural Language Understanding, haga clic en Slot Types.
- Haga clic en el nombre del tipo de ranura recién añadido.
- En franjas horarias, haga clic en Añadir colección. Aparece la ventana Timeslots.
- Añada la expresión,
Flow.timeslots
y haga clic en Cierre.
Ejemplo: Franjas horarias en modo Expresión
- Desde la caja de herramientas de Architect, arrastre una acción Pedir ranura al editor de tareas, debajo de la acción Bucle.
- En Franja horaria, seleccione la franja horaria que creó anteriormente y, a continuación, rellene los campos correspondientes.
- Personalice la imagen, el título, el subtítulo y la dirección del aviso según cómo deba ser presentado por el bot.
- Publica el flujo.
Ejemplo: Solicitar franja horaria con personalización del selector de tiempo
Caso: Falla la acción de datos
Si la API de terceros encuentra un error, el flujo del bot toma la ruta de fallo de la Call Data Action. Personalice la ruta de fallo en función de su caso de uso. Por ejemplo, puede utilizar una acción Transfer to ACD para enrutar la interacción a un agente disponible.
Caso: Se agota el tiempo de acción de los datos
Si se agota el tiempo de espera de la solicitud a la API de terceros, el flujo del bot toma la ruta Timeout de la acción Call Data Action. La acción de datos puede tener éxito en un segundo o tercer intento. Para configurar múltiples intentos, puede colocar la acción de datos de llamada dentro de una acción Loop con un recuento máximo de bucles bastante bajo. Asegúrese de colocar también una acción Salir del bucle después de la acción Llamar a datos.
Caso: La API de terceros no devuelve franjas horarias
Incluso si todas las franjas horarias están reservadas, la acción Call Data Action toma la ruta Success porque la solicitud se procesa con éxito. El bot puede encontrar un error ya que no hay valores de franja horaria disponibles para alimentar la ranura. En este caso, se muestra el mensaje Error.Expresson.EmptyCollection. Para evitar este error, puede colocar un bloque Decisión después de la acción Actualizar datos (dentro de la acción existente Bucle ). Puede utilizar el bloque Decision para ejecutar la acción Ask for Slot sólo si hay valores de franja horaria válidos disponibles. Para saber si la lista de franjas horarias está vacía o no, utilice la expresión IsNotSetOrEmpty(Flow.timeslots)
.
Caso: Todas las franjas horarias están en el pasado
Incluso si todas las franjas horarias están en el pasado, la acción Call Data Action toma la ruta Success porque la solicitud se procesa con éxito. Sin embargo, el bot no puede presentar una franja horaria pasada. Para asegurarse de que todas las franjas horarias presentadas a un usuario son futuras, puede colocar otro bloque Decision antes de la acción Update Data (dentro de la acción Loop ).
La expresión, ToDateTime(Flow.availableStartTimes[Flow.loopIndex]) > GetCurrentDateTimeUtc()
, le ayuda a encontrar si una franja horaria está en fecha pasada o futura.
Ahora puede llamar a este flujo de bots digitales desde un flujo de mensajes entrantes.