Acceso al Agente de RRHH (Slacky):
Acceso al Datastore:
Para reindexar o importar nuevos datos:
Este documento explica cómo nuestro chatbot (Slacky) integrado con Slack puede responder preguntas frecuentes (FAQ) utilizando una base de conocimiento (nuestra Wiki) y la Inteligencia Artificial Generativa. Esto nos permite responder a muchas preguntas sin tener que programar cada una individualmente.
1. ¿Cómo Funciona la IA Generativa en Nuestro Bot?
El bot puede combinar dos enfoques pero la versión de Slacky es 100% IA Generativa para reducir errores con la integración de Slack.
Intenciones (Intents) Clásicas: Para preguntas muy específicas o flujos conversacionales estructurados (ej., "Quiero pedir mis vacaciones", "Cuál es mi puesto"). Estas son como "botones" que el bot reconoce.
Inteligencia Artificial Generativa (IA Gen): Para preguntas abiertas, inesperadas o aquellas que el bot no tiene programadas explícitamente. Aquí es donde la IA Gen entra en juego, usando nuestra wiki de RRHH como fuente de información.
El proceso es así:
Alguien pregunta al bot de RRHH (ej., "¿Qué beneficios tengo por antigüedad?").
El Bot Intenta Entender: Dialogflow CX (el "cerebro" del bot) primero intenta hacer coincidir la pregunta con una "Intención" predefinida (ej., "Pregunta sobre Vacaciones").
Si no hay Coincidencia Directa (Aquí entra la IA Gen): Si el bot no reconoce una intención específica, activa la función de IA Generativa.
Consulta la Base de Conocimiento (Data Store): La IA Generativa busca en nuestra Wiki de RRHH (que está indexada como un "Data Store" para el bot) para encontrar información relevante sobre la pregunta.
Genera una Respuesta: Utilizando los fragmentos de información más pertinentes de la Wiki, la IA Generativa crea una respuesta natural y coherente para el usuario.
Responde al Usuario: El bot entrega esta respuesta generada.
2. Componentes Clave en Dialogflow CX para la IA Generativa
Para que esto funcione, configuramos los siguientes elementos en Dialogflow CX:
A. Data Stores (Bases de Datos de Conocimiento):
¿Qué son?: Son las "bibliotecas" de información que Dialogflow CX puede leer y entender. Indexamos nuestra Wiki de RRHH aquí.
¿Cómo se Crean?: Se configuran en la sección Manage > Data stores de Dialogflow CX. Apuntamos a las URLs de la Wiki o subimos documentos con su contenido. Dialogflow "lee" y organiza esta información para futuras búsquedas.
En nuestro caso: Tenemos un Data Store llamado Procedimiento de Vacaciones_Wiki que contiene la información de nuestras políticas de vacaciones y días libres.
B. Fallback Generativo (Generative Fallback):
¿Qué es?: Es la "red de seguridad" del bot. Cuando una pregunta no coincide con ninguna intención programada, el bot "cae" en este modo y usa la IA Generativa y los Data Stores para intentar responder.
¿Cómo se Configura?:
Se habilita en la Start Page de nuestro flujo conversacional (o en otras páginas si es necesario) bajo Event handlers > No-match default.
Dentro de este "handler", se asocia el Data Store creado y se activa la opción "Generative AI". Esto le dice al bot: "Si no sabes qué hacer, busca en esta base de conocimiento y genera una respuesta."
También se configura a nivel global del agente en Agent Settings > Generative AI > Generative Fallback.
C. Generators (Opcional, para Respuestas Específicas de IA Gen):
¿Qué son?: Son "plantillas" o "instrucciones" que le damos a la IA Generativa para que cree respuestas muy específicas o resuma información.
¿Cómo se Usan?: Podemos usarlos directamente en el "Fulfillment" de una intención específica. Por ejemplo, si el usuario pregunta "Quiero un resumen de la política de vacaciones", un Generator podría tomar el documento de política y resumirlo con IA.
En nuestro caso: Podríamos tener un Generator asociado al Intent Preguntar_Vacaciones_DiasOff para asegurarnos de que siempre use la Wiki para responder.
3. ¿Cómo Mantenemos la Información Actualizada?
La IA Generativa es tan buena como la información que le proporcionamos.
Actualización de la Wiki: ¡La fuente principal de conocimiento es nuestra Wiki! Asegúrense de mantenerla siempre actualizada con las últimas políticas y procedimientos de RRHH.
Re-indexación de Data Stores: Cuando se hacen cambios significativos en la Wiki, es importante indicarle a Dialogflow CX que "re-lea" o "re-indexe" el Data Store. Esto se hace desde la sección Manage > Data stores, seleccionando el Data Store y buscando una opción para actualizar o re-indexar.
4. Consideraciones Importantes
Privacidad y Permisos: Para información sensible, la IA Generativa solo responderá si la información está presente en la Wiki. Si la Wiki tiene niveles de acceso, necesitaremos un sistema más avanzado (un Webhook) para validar los permisos del usuario antes de buscar la información. Actualmente, el bot responderá con la información disponible en el Data Store indexado, sin validación de permisos a nivel de usuario.
"Alucinaciones" (Alucinaciones de IA): Aunque la IA Generativa es muy buena, a veces puede "inventar" información si no encuentra lo que busca o si el contexto es ambiguo. Por eso, es vital que la Wiki sea precisa y completa.
Monitoreo y Mejora: Podemos revisar el "Historial de Conversaciones" en Dialogflow CX para ver cómo responde la IA Generativa y si necesitamos ajustar las frases de entrenamiento de las intenciones o añadir más contenido a la Wiki.
Para que nuestro chatbot de RRHH funcione en Slack, hizo falta configurar una "aplicación" en Slack y luego conectar esa aplicación con nuestro agente de Dialogflow CX.
Fase 1: Configurar la Aplicación en Slack (Slack API)
Esta fase crea la aplicación de Slack que será nuestro bot.
Crea una Nueva Aplicación de Slack:
Ve al sitio de la API de Slack: https://api.slack.com/apps
Haz clic en "Create New App" (Crear nueva aplicación).
Selecciona "From scratch" (Desde cero).
Dale un "App Name" (Nombre de la aplicación) descriptivo y elige tu "Workspace" (Espacio de trabajo) de Slack.
Haz clic en "Create App" (Crear aplicación).
Configura los Permisos (Scopes) del Bot:
En el menú de la izquierda de la página de tu nueva aplicación de Slack, ve a "Features" > "OAuth & Permissions".
Desplázate hacia abajo hasta la sección "Bot Token Scopes".
Haz clic en "Add an OAuth Scope" (Agregar un Alcance de OAuth).
Agrega los siguientes "scopes" (permisos):
chat:write: Permite al bot enviar mensajes.
channels:read: Permite al bot ver los nombres y detalles de los canales públicos.
groups:read: Permite al bot ver los nombres y detalles de los canales privados.
im:read: Permite al bot ver los detalles de los mensajes directos.
users:read: Permite al bot leer información básica del perfil del usuario (como el ID, necesario para responder).
app_mentions:read: Permite al bot recibir eventos cuando es mencionado.
reactions:read (opcional): Si planeas usar reacciones.
commands (opcional): Si planeas usar comandos de barra inclinada.
Importante guardar estos cambios.
Instala la Aplicación en tu Espacio de Trabajo (Workspace):
Vuelve a la parte superior de la página "OAuth & Permissions".
Haz clic en el botón "Install to Workspace" (Instalar en el espacio de trabajo).
Sigue las instrucciones para autorizar la instalación.
Después de la instalación, se generará un "Bot User OAuth Token" (Comienza con xoxb-). ¡Copia este token! Lo necesitarás para la configuración en Dialogflow CX.
Configura las Suscripciones a Eventos (para que el bot escuche):
En el menú de la izquierda, ve a "Features" > "Event Subscriptions".
Activa "Enable Events" (Habilitar Eventos).
"Request URL": Aquí es donde Slack enviará los mensajes de los usuarios. Dejaremos este campo en blanco por un momento, ya que lo obtendremos de Dialogflow CX en la siguiente fase.
Desplázate hasta "Subscribe to bot events" (Suscribirse a eventos del bot).
Haz clic en "Add Bot User Event" (Agregar Evento de Usuario de Bot) y añade los siguientes eventos:
app_mention: Para que el bot responda cuando lo arroban (ej., @bot hola).
message.channels: Para que el bot responda a mensajes directos en canales públicos sin necesidad de arrobarlo.
message.groups: Para que el bot responda a mensajes directos en canales privados sin necesidad de arrobarlo.
message.im: Para que el bot responda a mensajes directos al bot sin necesidad de arrobarlo.
¡Importante! Aún no guardes.
Fase 2: Conectar Dialogflow CX con Slack
Aquí es donde vinculamos la aplicación de Slack que acabas de crear con tu agente de Dialogflow CX.
Abre tu Agente de Dialogflow CX:
Ve a https://dialogflow.cloud.google.com/cx y selecciona tu agente.
Ve a la Sección de Integraciones:
En el menú de la izquierda, haz clic en "Manage" (Administrar).
Luego haz clic en "Integrations" (Integraciones).
Conecta la Integración de Slack:
Busca la integración de "Slack" en la lista.
Haz clic en el botón "Connect" (Conectar) al lado de Slack.
Configura los Detalles de Slack en Dialogflow CX:
Se abrirá una ventana de configuración.
Access token: Pega aquí el "Bot User OAuth Token" (xoxb-) que copiaste en el Paso 3 de la Fase 1.
Signing token: Debes obtener este token de tu aplicación de Slack.
Vuelve a la configuración de tu App de Slack.
En el menú de la izquierda, ve a "Features" > "Basic Information".
Desplázate hacia abajo hasta la sección "App Credentials".
Copia el "Signing Secret". Pégalo en el campo "Signing token" en Dialogflow CX.
Environment (Entorno): Elige el entorno de tu agente que deseas conectar (normalmente "Test" para pruebas iniciales).
Haz clic en "Start" (Iniciar).
Copia la "Webhook URL" de Dialogflow CX:
Una vez que la integración se inicie, la ventana de configuración de Slack en Dialogflow CX te mostrará una "Webhook URL". Copiarla, ésta es la URL que Slack usará para enviar los mensajes a tu bot.
Fase 3: Completar la Configuración en Slack (¡Crucial!)
Vuelve a la Configuración de tu App de Slack:
Accede de nuevo a tu aplicación en https://api.slack.com/apps.
Ve a "Features" > "Event Subscriptions".
Pega y Verifica el "Request URL":
En el campo "Request URL", pega la "Webhook URL" que copiaste de Dialogflow CX en el paso anterior.
¡Importante! Slack intentará verificar la URL automáticamente. Debería aparecer un mensaje verde que diga "Verified" debajo del campo. Si hay un error o no se verifica, la integración NO funcionará correctamente. Esto es un punto común de fallo.
Guarda los Cambios:
Una vez que esté verificado, desplázate hasta la parte inferior de la página y haz clic en "Save Changes".
Fase 4: Probar tu Bot en Slack
Añade el Bot a un Canal (si es para canales):
Abre tu espacio de trabajo de Slack.
Ve a un canal (público o privado) donde quieras probar el bot.
En la barra de mensajes, escribe /invite @<nombre_de_tu_bot> y presiona Enter para invitar al bot al canal.
Comienza a Chatear:
En un canal: Escribe un mensaje directamente en el canal (ej., Hola, ¿cuál es el procedimiento para tomarse vacaciones?) o arroba al bot (ej., @slacky hola).
En mensaje directo: Puedes iniciar un mensaje directo con tu bot buscándolo en la lista de "Apps".
Ahora el bot de Dialogflow CX debería responder.