Índice:
Introducción
La biblioteca de bloques fue creada para facilitar el día a día de quien necesita construir un contacto inteligente sin tener un profundo dominio técnico y necesita velocidad para publicar. Con ella, será posible aplicar tanto habilidades determinísticas básicas como Onboarding, LGPD, Inactividad, Cascada de validación, Algo más, Finalización y CSAT como estructuras utilizando los agentes Studio.
Conceptos básicos
Para garantizar el buen funcionamiento, los bloques listos están estructurados en una arquitectura de enrutador, con cada conjunto asignado a un Studio específico. Esto hace que el mantenimiento y la evolución del flujo sean mucho más fáciles.
¿Es posible utilizar los bloques listos dentro de un único Studio?
Sí, es posible, pero la alta interconexión entre los bloques hace que el mantenimiento sea complejo. Editar una parte específica exige entender y revisar toda la estructura conectada, generando un esfuerzo y tiempo alto para la configuración.
Visión macro
Antes de utilizar la biblioteca, es importante definir la estructura conversacional y la interacción entre sus partes. Una conversación debe tener inicio, medio y fin orientados a un objetivo principal. En la visión macro, muy similar a los flujogramas BPMN, es necesario mapear los caminos, los gatillos de decisión y crear símbolos que representen cada evento del flujo de conversación.
La biblioteca
La biblioteca de bloques está dividida en Habilidades, Agentes y Casos de uso.
Habilidad es un conjunto de bloques estándar con un objetivo específico dentro de la conversación del contacto inteligente.
Agente puede ser un bloque de agente o un conjunto de bloques agentes y bloques estándar, siendo que los bloques de agente son fundamentales para el objetivo específico dentro del contacto inteligente.
Caso de uso es un conjunto de habilidades y agentes para un objetivo específico dentro de una jornada del contacto inteligente.
Cada opción dentro de la biblioteca tiene una etiqueta y puede ser buscada en la barra de búsqueda como se representa en la imagen a continuación:
Bloques listos
Habilidades: | |
|
Onboarding LGPD Inactividad Opt-In/Out Algo Más |
Finalización CSAT Transferencia humana Datos Personales Cascada de Validación |
Agente: |
Caso de uso: |
Registro |
Calificación de Leads |
Habilidades
Onboarding
Recepciona al usuario con saludos de bienvenida o de retorno, verifica el estado de consentimiento de la LGPD y orienta sobre cómo utilizar el servicio.
|
Bloque | [LOGIC] A.1.0.0 Validación de entrada Se utiliza la variable {isNewUser} en las condiciones de salida para identificar si es el primer contacto del usuario, dirigiéndolo al bloque correspondiente. Hay una acción de registro de eventos para identificar el origen del usuario.
Bloque | [MSG] A.2.0.0 Sí validación Muestra el mensaje de bienvenida al usuario y ejecuta el registro de eventos (origen y visualización), además de definir la variable {isNewUser}. La condición de salida se activa solo si hay respuesta del usuario.
Bloque | [MSG] A.3.0.0 No validación Muestra un mensaje de retorno para el usuario y ejecuta el registro de eventos (origen y visualización). La condición de salida se activa solo si hay respuesta del usuario.
Bloque | [LOGIC] LP.1.0.0 - LGPD Validación Verifica si el usuario ya ha aceptado los términos de la LGPD a través de la variable {userAceptedPrivacyPolicy}. El flujo valida si la variable existe y si el valor corresponde a la aceptación (Sí/No). Las acciones incluyen el registro de eventos de origen y el estado de la validación de la LGPD.
Bloque | REDIRECT SERVICE Ejecuta el redireccionamiento a otro servicio o habilidad por medio de una acción de salida. |
LGPD:
Explica brevemente qué es la LGPD y recolecta la aceptación del usuario para que el Contacto Inteligente pueda recolectar datos sensibles.
|
Bloque | [START] Gestiona la entrada en la habilidad validando la variable {input.content@redirectId} y dirigiendo al usuario al bloque correspondiente a través del ID.
Bloque | [INPUT] LP.2.0.0 - LGPD Presenta la información sobre la LGPD, incluyendo un enlace para detalles y un menú de opciones para que el usuario acepte, rechace o solicite más información. Bloque | [LOGIC] LP.2.0.0 - [No] Aceite LGPD Realiza la validación a través de un script de la opción elegida.
Bloque | GOTO LP.2.0.0 - Service Name Ejecuta el redireccionamiento a otro servicio o habilidad por medio de la salida estándar en caso de que el usuario haya aceptado los términos.
Bloque | [INPUT] LP.3.0.0 - No concuerda con LGPD En caso de que el usuario no acepte los términos, se muestra un mensaje reforzando la necesidad de la aceptación para proseguir. El bloque vuelve a presentar las opciones anteriores: "Aceptar", "No aceptar" y "Saber más".
Bloque | LP.4.0.0 - Saber Más Se muestra un detalle sobre la LGPD.
Bloque | [LOGIC] LP.3.0.0 - No concuerda con LGPD Realiza la validación a través de un script de la opción elegida.
Bloque | GOTO LP.3.0.0 - Service Name Ejecuta el redireccionamiento a otro servicio o habilidad por medio de la salida estándar en caso de que el usuario haya aceptado los términos.
Bloque | REDIRECT SERVICE Ejecuta el redireccionamiento a otro servicio o habilidad por medio de una acción de salida.
Bloque | Redirect Inactividad Realiza el redireccionamiento a la habilidad de inactividad, garantizando el retorno al punto de espera de entrada del usuario. |
Inactividad:
Envía un mensaje para rescatar la conversación del usuario con el Contacto Inteligente tras un periodo inactivo.
|
Bloque | [INPUT] I.1.0.0 - Inactividad Muestra un mensaje para confirmar si el usuario desea continuar con la atención.
Bloque | [LOGIC] I.1.0.0 - Inactividad La variable {setValidation} se utiliza para validar la decisión del usuario y determinar la continuidad o el cierre del flujo.
Bloque | [INPUT] I.1.2.0 Cierre Muestra el contenido del mensaje de finalización.
Bloque | REDIRECT SERVICE Ejecuta el redireccionamiento a otro servicio o habilidad por medio de una acción de salida. |
Opt-In/Out:
Controla el consentimiento del usuario para el envío de comunicaciones.
|
Bloque | [INPUT] I.1.0.0 - optin Contenido del mensaje de solicitud de consentimiento para el envío de notificaciones.
Bloque | [LOGIC] I.1.0.0 - OPT-IN Validación de la opción elegida a través de un script.
Bloque | OPT 1.0.1 - Aceite Opt-in Contenido de confirmación tras la adhesión (opt-in) del usuario.
Bloque | OPT 2.0.0 - Opt out Mensaje de confirmación de eliminación de la base de destinatarios.
Bloque | OPT.1.0.2 - No aceite Contenido mostrado tras el rechazo del permiso de notificaciones por parte del usuario.
Bloque | REDIRECT SERVICE Ejecuta el redireccionamiento a otro servicio o habilidad por medio de una acción de salida.
Bloque | Redirect Inactividad Realiza el redireccionamiento a la habilidad de inactividad, garantizando el retorno al punto de espera de entrada del usuario. |
Algo Más:
Verifica si la persona desea agregar información o conversar sobre otro asunto.
|
Bloque | [INPUT] AM.1.0.0 - Algo más Mensaje de verificación de asuntos pendientes o soporte adicional.
Bloque | [LOGIC] AM.1.0.0 - Algo más Validación de la opción elegida por medio de un script.
Bloque | REDIRECT SERVICE Ejecuta el redireccionamiento a otro servicio o habilidad por medio de una acción de salida.
Bloque | Redirect Inactividad Realiza el redireccionamiento a la habilidad de inactividad, garantizando el retorno al punto de espera de entrada del usuario. |
Finalización:
Confirma la conclusión de la atención y señala disponibilidad para nuevas solicitudes.
|
Bloque | F.1.0.0 - Finalización Mensaje de cierre con instrucciones para la reapertura del contacto.
Bloque | REDIRECT SERVICE Ejecuta el redireccionamiento a otro servicio o habilidad por medio de una acción de salida. |
CSAT:
Recolecta la evaluación de satisfacción del usuario después de la atención.
EspañolBloque | [START] Controla el acceso a la habilidad validando la variable {{input.content@redirectId}} para dirigir al usuario al bloque de destino correspondiente.
Bloque | [MSG] C.1.0.0 Pregunta Resolutividad Mensaje de confirmación enviado al usuario para validar si su solicitud fue resuelta antes de cerrar el flujo.
Bloque | [LOGIC] C.1.0.0 Pregunta Resolutividad La validación de la opción seleccionada se realiza vía script, utilizando la variable {{userInput}} directamente en las condiciones de salida para determinar el próximo paso del flujo.
Bloque | [MSG] C.1.0.1 Resolutividad negativa Muestra el contenido del mensaje preguntando qué puede ser mejorado.
Bloque | [MSG] C.1.1.1 Pregunta CSAT Muestra el contenido del mensaje preguntando la nota de evaluación.
Bloque | [LOGIC] C.1.1.1 Pregunta CSAT Validación de la nota de evaluación realizada vía script utilizando la variable {{userInput}} para procesar la puntuación recibida.
Bloque | [MSG] C.1.1.2 Finaliza CSAT Muestra el contenido del mensaje de finalización.
Bloque | Redirect Finish Redirecciona el servicio a la habilidad de finalización.
Bloque | Redirect Inactividad Realiza el redireccionamiento a la habilidad de inactividad, garantizando el retorno al punto de espera de entrada del usuario. |
Transferencia humana:
Dirige al usuario a la atención humana siempre que la interacción requiera soporte especializado.
|
Bloque | Customer service Configura las reglas de disponibilidad para gestionar el flujo cuando no haya agentes o el contacto ocurra fuera del horario de operación.
Bloque | ATH.1.0.0 Ningún agente disponible Mensaje de indisponibilidad que informa la ausencia de agentes y pregunta si el usuario desea esperar en la fila.
Bloque | ATH 1.1.0 Espere Mensaje de espera que orienta al usuario a aguardar el inicio de la atención.
Bloque | ATH 1.2.0 Despedida Mensaje de cierre que instruye al usuario sobre qué término o acción utilizar para reiniciar la conversación.
Bloque | ATH 2.0.0 Fuera de horario Mensaje informativo sobre el fin de la jornada laboral que presenta los horarios de funcionamiento del canal.
Bloque | REDIRECT SERVICE Redirecciona al usuario a otro servicio o habilidad utilizando una acción de salida configurada en el bloque.
Bloque | Redirect Inactividad Realiza el redireccionamiento a la habilidad de inactividad, garantizando el retorno al punto de espera de entrada del usuario. |
Datos personales:
Solicita, valida y organiza información personal del usuario con seguridad. CPF - Nombre - Email - Teléfono
|
Bloque | [START] Gestiona la entrada en la habilidad validando la variable {{input.content@redirectId}} y dirigiendo al usuario al bloque correspondiente a través del ID.
Bloque | [MSG] Mensagem intro Mensaje introductorio que comunica al usuario el inicio de la recolección de datos.
Bloque | [LOGIC] DC.1.0.0 Pedir cpf? En las acciones de entrada, la variable {{dadosPessoais}} define qué informaciones serán recolectadas y valida la necesidad de solicitar el CPF.
Bloque | [MSG] DC.1.0.1 Pedir CPF Mensaje que solicita al usuario el número de CPF para proseguir con el registro.
Bloque | [MSG] DC.1.0.1 Pedir CPF Validacao Validación del formato y de la autenticidad del CPF vía script, utilizando la variable {{isValidCpf}} para registrar el documento en los parámetros del contacto.
Bloque | [LOGIC] DC.1.1.0 Pedir Nome? Verifica si la recolección del nombre está habilitada en la variable {{dadosPessoais}}.
Bloque | [MSG] DC.1.1.1 Pedir Nome Mensaje que solicita al usuario completar su nombre completo.
Bloque | [LOGIC] DC.1.1.1 Pedir Nome Validacao Validación del formato nominal vía script utilizando la variable {{nameValidation}} para registrar el nombre en los parámetros del contacto.
Bloque | [LOGIC] DC.1.2.0 Pedir E-mail? Verifica si la recolección de correo electrónico está habilitada en la variable {{dadosPessoais}}.
Bloque | [MSG] DC.1.2.1 Pedir E-mail Mensaje que solicita al usuario la dirección de correo electrónico para contacto o registro.
Bloque | [LOGIC] DC.1.2.1 Pedir E-mail validacao Validación del formato y de la autenticidad del correo electrónico vía script utilizando la variable {{hasEmail}} para registrar la dirección en los parámetros del contacto.
Bloque | [LOGIC] DC.1.3.0 Pedir Telefone? Verifica si la recolección de teléfono está habilitada en la variable {{dadosPessoais}}.
Bloque | [MSG] DC.1.3.1 Pedir Telefone Mensaje que solicita al usuario el número de teléfono para contacto.
Bloque | [MSG] DC.1.3.1 Pedir Telefone validacao Validación del formato y de la autenticidad del teléfono vía script utilizando la variable {{phoneNumber}} para registrar el número en los parámetros del contacto.
Bloque | [MSG] Mensagem transição Mensaje de confirmación que informa al usuario la conclusión exitosa de la recolección de sus datos.
Bloque | REDIRECT SERVICE Redirecciona al usuario a otro servicio o habilidad utilizando una acción de salida configurada en el bloque.
Bloque | Redirect Inatividade Realiza el redireccionamiento a la habilidad de inactividad, garantizando el retorno al punto de espera de entrada del usuario. |
Cascada de Validación:
Es el proceso secuencial de verificación de datos. Cada etapa funciona como un "filtro": la información solo avanza al siguiente nivel si es validada con éxito en el anterior.
| Jerarquía de Validación | |
| Atributos | Descripción |
| customized_errors | Reglas Específicas: Validaciones personalizadas que no encajan en los patrones globales (ej: formatos de datos exclusivos del bot). |
| api_error | Barrera de Sistema: Bloquea el flujo en caso de que el usuario provenga de una falla de integración (HTTP), impidiendo errores en cadena. |
| validation_media_error | Filtro de Medios: Identifica y trata errores relacionados con el envío de archivos y multimedia. |
| audio_error | Validación de audio: Etapa dedicada a verificar la calidad o existencia de audio (ej: integración con Blip Speech-to-Text). |
| link_error | Filtro de Enlaces: Identifica si el mensaje contiene solo enlaces. Si es así, detiene el avance; si hay texto acompañando, permite continuar. |
| emoji_error | Filtro de Emojis: Bloquea mensajes compuestos exclusivamente por emojis, exigiendo texto para la continuidad. |
| botxbot_error | Anti-Spam: Identifica si el usuario es otro robot a través de repeticiones o patrones automáticos (Regex), exigiendo una acción humana para continuar. |
| non_talkables_error | Tratamiento para términos sensibles: Deben definirse las variables: {{config.utilsApiUrl}}, {{config.utilsApiAuth}}, {{config.globalSheetsId}}, {{config.connectionTalksSheetsTabName}}, {{config.connectionTalksSheetsTabRange}}. |
| clear_text | Higienización: Limpia el texto (elimina ruidos) antes de que sea procesado por la inteligencia artificial (NLP). |
| global_regex_error | Patrones Globales: Validación de seguridad y formato aplicada a entradas de texto en el bot en cualquier momento de la jornada. |
| long_message_error | Límite de Tamaño: Bloquea mensajes excesivamente largos (actualmente > 100 caracteres) para no sobrecargar el NLP. |
| connection_talks_error |
Gestión de Smalltalks: Identifica conversaciones informales y define respuestas automáticas o redireccionamientos de bloque. Deben definirse las variables: {{config.utilsApiUrl}}, {{config.utilsApiAuth}}, {{config.globalSheetsId}}, {{config.nonTalkableSheetsTabName}}, {{config.nonTalkableSheetsTabRange}}. |
| short_message | Mensaje Mínimo: Evita llamadas inútiles al NLP para mensajes muy cortos (menos de 3 letras). |
| nlp_error | Integración IA: Valida la conexión y el procesamiento con el proveedor de Inteligencia Artificial. Deben definirse las variables de configuración: {{config.AuthorizationApiKeyIA}} y {{config.commandsUrl}}. |
| content_assistent | Asistente de Contenido: Valida la integración final con el asistente de soporte al contenido. |
Integraciones y Configuraciones de API
Los atributos non_talkables_error y connection_talks_error dependen de conexiones con sistemas externos. Realizan búsquedas dinámicas para entregar respuestas personalizadas, basadas en el contexto actual y en la etapa específica de la conversación.
Cómo configurar en el Studio
Tras añadir la cascada a través de la biblioteca, localice el bloque: [REQ] set variables
El control del flujo se realiza en la pestaña de Acciones, dentro del script Proccess ExceptionHierarchy. En él, puedes definir qué validaciones estarán vigentes en la jornada:
- True: Validación activa.
- False: Validación desactivada.
Por defecto, los atributos non_talkables_error y connection_talks_error se inician desactivados.
- Para Activar: Cambie el valor a true y guarde los cambios.
- Atención: Al activar, asegúrese de configurar las reglas y variables de estas validaciones de acuerdo con el contexto específico de su jornada.
Configuración de las Habilidades
Paso a paso:
Crear un chatbot
Acceder a la biblioteca
Agregando una habilidad
Instrucciones Habilidades
Cada habilidad importada para el Studio incluye un bloque instructivo llamado "Comience Aquí".
Cómo activar: Siga las instrucciones contenidas en ese bloque y aplique las configuraciones solicitadas para que la skill pase a operar correctamente.
Limpieza del Flujo: Tras la importación y configuración, los bloques nativos de "Bienvenida" y "Error Estándar" (generados automáticamente al crear el bot) pueden ser eliminados para evitar duplicidad.
Agente Registro
Este componente de la biblioteca fue diseñado para automatizar la recolección de datos esenciales:
Recolección: Registra nombre, correo electrónico y teléfono del usuario.
Direccionamiento: Tras la captura exitosa, el flujo es encaminado automáticamente a un bloque estándar, donde la conversación continúa.
| Imagen | Prompt |
|
<objetivo>Recolectar y validar NOMBRE, EMAIL y TELÉFONO del usuario en pt-BR.</objetivo> <directrices> <flujo> <campos> Puede ser solo nombre y apellido</pregunta> <campo id="email"> <campo id="telefono"> <mensagens> ¿Son correctos?</resumo> |
Caso de uso - Calificación de Leads
Para el caso de uso, el conjunto completo de habilidades está centralizado en un único entorno en el Studio, tal como se ilustra a continuación:
Centralizar todas las habilidades en un único entorno del Studio facilita la gestión del espacio de trabajo. Sin embargo, el proceso de evolución o adición de nuevas funcionalidades exige atención redoblada en las conexiones entre los bloques para garantizar la integridad de la estructura conversacional.
Para orientaciones detalladas y consejos prácticos sobre el uso de la biblioteca de bloques, consulte el AMA disponible en nuestro canal de YouTube.
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los vídeos en nuestro canal. 😃