Con la función de WhatsApp de ActiveCampaign, puedes usar ChatGPT para crear un flujo que responda las preguntas más frecuentes sobre tu negocio. Al hacerlo, tu equipo de Soporte puede centrarse en problemas más complejos de tus clientes y tú puedes ofrecer información sobre tus productos o servicios 24/7, incluso cuando tus agentes no están en línea.
Este artículo te muestra cómo crear un flujo de agente de IA de soporte entrante que responda preguntas de clientes, con una condición de transferencia para enviar la conversación a una persona si la pregunta es demasiado compleja para la IA.
Toma nota
- Para completar esta configuración, necesitas:
- Una clave OpenAPI para la autenticación. Crear una cuenta de OpenAI
- Un asistente en OpenAI. Leer la "Guía de migración de Assistants"
- Te recomendamos usar el playground si todavía no estás familiarizado con la API. Anota tu assistant_id porque lo vas a necesitar más adelante.
- Esta opción es para usuarios avanzados. Necesitas sentirte cómodo con el código. Nuestro equipo de Experiencia del cliente no puede ayudarte a implementar ni a solucionar problemas de código
- Este flujo requiere que uses un campo personalizado de entrada de texto de contacto para guardar la respuesta de la clientela a tu saludo. En los pasos de abajo usamos un campo llamado "gpt_response". Aprende cómo crear un campo de contacto personalizado
Crear un flujo de soporte GPT
Paso 1: Crear un flujo nuevo.
Desde tu cuenta de ActiveCampaign:
- Hacer clic en WhatsApp > Flujos de mensajes.
- Haz clic en "Nuevo flujo de mensajes".
- En la pestaña "Detalles", asigna a tu flujo un nombre breve pero descriptivo. Luego haz clic en "Siguiente".
- En la pestaña "Desencadenar", define cómo entran los contactos en tu flujo. Para este ejemplo:
- Seleccionar "Mensaje entrante"
- Seleccionar "Cualquier mensaje". Esto asegura que el flujo se inicie cuando un cliente potencial o contacto envíe un mensaje a tu número de soporte
- Haz clic en "Siguiente"
Paso 2: agregar un paso de "Question" a tu flujo.
Cuando una persona cliente desencadena nuestro flujo, queremos saludarla con un mensaje o una pregunta. Para hacerlo, vamos a agregar el paso "Pregunta" a nuestro flujo.
La respuesta del cliente a este paso se guarda en el flujo como una variable de paso. Nos referiremos a esta variable en el paso tres a continuación.
Ten en cuenta que guardamos automáticamente el nombre y apellido y el número de teléfono del cliente cuando inicia un flujo entrante.
- Selecciona la opción de paso "Pregunta", luego haz clic en "Agregar".
-
Configurar el paso "Pregunta":
- Haz clic en el ícono de lápiz y ponle un nombre a tu paso. Te recomendamos usar nombres cortos y descriptivos. En este ejemplo, llamaremos a este paso "Iniciar conversación"
-
Escribe la pregunta que quieres hacer en el campo indicado. Por ejemplo, "Hola ¿Cómo puedo ayudarte hoy?”
Recuadro de sugerencia en verde: Haz clic en el icono de rayo en el editor para personalizar el mensaje. Por ejemplo, puedes saludar a tus clientes por su nombre de pila. - Seleccionar un tipo de respuesta. Ten en cuenta que, según el tipo de respuesta que selecciones, tendrás que hacer configuraciones adicionales. Lee el artículo de la etapa "Question" para obtener más información
- Configurar un mensaje de validación de respuesta
-
Haz clic en las opciones opcionales para activarlas:
- Ir a otro paso si el contacto no responde la pregunta correctamente
- Ir a otro paso si el contacto no responde la pregunta en un periodo de tiempo determinado
- Hacer algo si el mensaje no se envía
Paso 3: Guardar la respuesta del cliente
Luego, queremos guardar la respuesta del cliente en el paso "Pregunta" de arriba. Para hacer eso, vamos a agregar el paso "Actualizar contacto" a nuestro flujo. El paso "Actualizar contacto" guardará la respuesta del cliente como un valor de campo personalizado en su registro de contacto.
-
Agregar el paso "Actualizar contacto" a tu flujo:
- Haz clic en el nodo («+») debajo del paso "Pregunta"
- Seleccionar "Actualizar contacto"
-
Configurar el paso "Actualizar contacto":
- Haz clic en el ícono de lápiz y ponle un nombre a tu paso. En este ejemplo, llamaremos a este paso "Create/Update contact"
- Haz clic en la pestaña "Personalizado" > botón "Agregar propiedad"
- Haz clic en el primer menú desplegable y selecciona el campo personalizado que quieres actualizar con la respuesta del cliente. En este ejemplo, vamos a usar un campo personalizado de contacto llamado "gpt_response"
-
Ahora necesitamos vincular nuestro campo personalizado con la variable del paso que guardó la respuesta del cliente. Para hacerlo, haz clic en el ícono de rayo, haz clic en "Step Variables", luego selecciona la variable de paso disponible. (En este momento solo debería aparecer una en la lista)
Paso 4: integrar GPT para responder preguntas
En este paso, iniciamos un hilo de OpenAI para enviar la respuesta de la persona usuaria al agente de IA.
-
Agregar un paso "API" a tu flujo:
- Haz clic en el nodo (+) debajo del paso "Actualizar contacto"
- Selecciona "Connect APIs" y luego haz clic en "Add"
-
Configurar el paso "Conectar APIs":
- Haz clic en el ícono de lápiz y asigna un nombre a tu paso. En este ejemplo, llamaremos a este paso "Iniciar conversación de OpenAI"
- Seleccionar "Post" en "Tipo de método"
- Ingresa la siguiente URL: https://api.openai.com/v1/threads
- Seleccionar "JSON" en la pestaña "Body". Dejar el "Message body" en blanco
- En la pestaña "Headers", agrega los siguientes tres encabezados:
- Encabezado 1: OpenAI-Beta / assistants=v2
- Encabezado 2: Content-Type / application/json
- Encabezado 3: Autorización / Bearer YOUR_API_KEY
-
Gestionar la respuesta de la API:
- OpenAI responderá con un objeto JSON que contiene el thread_id, y los datos estarán disponibles durante el resto de la ejecución del flujo. Estos datos son temporales. Si necesitas consultar estos datos después de que el contacto salga del flujo, te recomendamos guardarlos
Paso 5: Enviar la consulta del cliente a OpenAI
-
Agregar otro paso de "API" a tu flujo:
- Haz clic en el nodo (+) debajo de la rama "Respuesta" del paso anterior
- Selecciona "Connect APIs" y luego haz clic en "Add"
-
Configurar el paso "Connect APIs":
- Haz clic en el icono de lápiz y asigna un nombre a tu paso. En este ejemplo, llamaremos a este paso "Enviar mensaje al hilo de OpenAI"
- Seleccionar "Post" en "Method Type"
- Introduce la siguiente URL: https://api.openai.com/v1/threads//messages
- Ahora tenemos que actualizar la URL para que incluya la respuesta del cliente a nuestro paso de "Pregunta". Para ello:
- Haz clic entre las dos barras “//” en la URL
- Luego, haz clic en el icono de rayo > Step Variables
- Selecciona la variable de paso que contiene “step.STEPNAME.response.ID”. Para continuar con nuestro ejemplo, nuestra variable se ve así: “step.Enviar mensaje a OpenAI Thread.respose.id"
- En la pestaña "Body", selecciona "JSON"
- Agregar el siguiente objeto JSON en el cuerpo:
{ "role": "usuario", "content": "" } - Ahora necesitamos actualizar el objeto JSON para que haga referencia al campo que usamos en el paso "Actualizar contacto" de arriba.
- Haz clic entre las dos comillas (“”) en la línea de contenido
- Hacer clic en el ícono de rayo > Contacto > Nombre de campo. Para continuar con nuestro ejemplo, usamos el campo llamado "last_chatgpt_response"
Paso 6: Ejecutar el hilo de OpenAI
-
Agregar un paso de API para ejecutar el asistente:
- Haz clic en el nodo (+) debajo de la rama "Respuesta"
- Selecciona "Connect APIs" y luego haz clic en "Add"
-
Configurar el paso "Conectar APIs":
- Haz clic en el ícono de lápiz y ponle un nombre a tu paso. En este ejemplo lo llamaremos "Run OpenAI thread with messages"
- Seleccionar "Publicar" en "Tipo de método"
- Introduce la siguiente URL: https://api.openai.com/v1/threads//runs
- Ahora tenemos que actualizar la URL para que incluya el ID de respuesta del hilo. Para ello:
- Haz clic entre las dos barras “//” en la URL
- A continuación, haz clic en el ícono de rayo > Step Variables
- Seleccionar la variable de paso que contiene el ID del hilo de respuesta. Para seguir con nuestro ejemplo, seleccionaremos "step".Iniciar OpenAI thread.response.id”
- En la pestaña "Body", selecciona "JSON"
- Agregar el siguiente objeto JSON en el cuerpo:
{
"assistant_id": "YOUR_ASSISTANT_ID"
}- Ten en cuenta que tendrás que insertar tu ID de asistente. Puedes obtener el ID del asistente cuando creas un asistente nuevo en OpenAI
Paso 7: Revisar si hay respuesta de GPT
Aquí agregamos otro paso de "Conectar API" para obtener una respuesta de OpenAI. También vamos a añadir un paso "Condicional" para comprobar si se envió una respuesta.
-
Agregar el paso "Conectar API" para verificar si hay una respuesta:
- Haz clic en el nodo (+) debajo de la rama "Respuesta"
- Selecciona "Connect APIs" y luego haz clic en "Add"
-
Configurar el paso "Conectar APIs":
- Haz clic en el ícono de lápiz y ponle un nombre a tu paso. En este ejemplo, llamaremos a este paso "Obtener OpenAI generado"
- Seleccionar "Get" en "Method Type"
- Escribir la siguiente URL: https://api.openai.com/v1/threads//messages
- Ahora necesitamos actualizar la URL para que incluya el ID de respuesta del hilo. Para ello:
- Haz clic entre las dos barras “//” en la URL
- Luego, haz clic en el ícono de rayo > Step Variables
- Selecciona la variable de paso que contiene el ID del hilo de respuesta. Para seguir con nuestro ejemplo, seleccionaremos "step".Iniciar OpenAI thread.response.id”
- No selecciones nada en la pestaña "Body"
-
Agregar un paso "Condicional".
- Haz clic en el nodo (+) debajo de la rama "Respuesta"
- Selecciona "Condicional" luego haz clic en "Agregar"
-
Configurar la condición para comprobar si la respuesta de OpenAI está vacía. Para ello:
- Ponle un nombre a tu paso. Para este ejemplo, la llamaremos "Validar si el mensaje está ahí"
- Usar los campos desplegables para seleccionar tus condiciones. En este ejemplo, usamos lo siguiente:
Dónde: paso.Obtener los mensajes generados de OpenAI.messages.response.data.0.role (Es) Igual a assistant
Paso "AND".Obtener mensajes generados de OpenAI.messages.response.data.0.content.0.text.value "Is empty."
Haz clic en la opción "x No"
-
Configurar la rama "Path 1":
- Agregar un paso "Espera" que espere 10 segundos
-
Añadir un paso "Ir a" para volver al paso de API que verifica la respuesta de GPT
-
Configurar la rama "Else". Aquí necesitamos comprobar si la respuesta de GPT indica la necesidad de una intervención humana:
-
Agregar un paso "Condicional".
- Haz clic en el nodo (+) debajo de la rama "Else"
- Seleccionar "Conditional" luego hacer clic en "Add"
-
Configurar el paso:
- Asigna un nombre a tu paso. En este ejemplo, lo llamaremos "Asignar persona"
-
Usa los campos desplegables para seleccionar tus condiciones. Puedes hacer que revise si hay palabras clave o frases específicas en la respuesta de GPT que indiquen que se necesita intervención humana. Para nuestro ejemplo usamos lo siguiente:
Dónde: paso.Obtener mensajes generados de OpenAI.messages.response. Data.0.content.0.text.value
Contiene Asignar humano
-
Agregar un paso "Condicional".
Paso 8: Configurar la rama "Ruta 1" en el paso "Condicional"
- Haz clic en el nodo (+) debajo de "Ruta 1".
-
Selecciona "Question" y luego haz clic en "Add".
- Haz clic en el ícono de lápiz y ponle un nombre a tu paso. En nuestro ejemplo, la llamaremos "Continuar chat"
- En el cuerpo del mensaje, haz clic en el rayo, luego haz clic en "Step variables"
- Selecciona la variable de paso para el paso "Obtener mensaje generado de OpenAI". En este ejemplo, usaremos "paso".Obtener mensaje generado OpenAI.message.response.data.0.content.0.text.value
-
Seleccionar "Texto libre" para el tipo de mensaje
-
Haz clic en el nodo, luego agrega el paso "Actualizar contacto". Para configurar este paso:
- Haz clic en el ícono de lápiz y ponle un nombre a tu paso. En este ejemplo la vamos a llamar "Crear/actualizar contacto 2"
- Haz clic en la pestaña "Personalizado", luego haz clic en "Agregar propiedad"
- Selecciona el campo personalizado que creaste para este flujo. El nuestro se llama "last_chatgpt_response"
- En el valor, haz clic en el rayo y luego haz clic en "Variables de paso".
- Selecciona la variable de paso para el paso anterior. En este ejemplo, el nuestro se llama "step".Continuar chat"
-
Haz clic en el nodo y añade un paso "Ir a". Aquí queremos que los contactos vayan al paso "Sent Message to OpenAI Thread". Para ello:
- Haz clic en el ícono de lápiz y asigna un nombre a tu paso. Nosotras la llamamos "Volver a OpenAI"
- El paso que estamos seleccionando es "Enviar mensaje a hilo de OpenAI". Ten en cuenta los dos pasos resaltados en la imagen a continuación:
Paso 9: Configurar la rama "Else" y asignar un agente
En esta parte final del flujo, vamos a añadir dos pasos más que envían un mensaje al contacto para que sepa que lo estamos transfiriendo a una persona agente. El paso final es asignar la conversación al agente.
-
Haz clic en el nodo debajo de la rama "Else" y selecciona el paso "Mensaje". Para configurar este paso:
- Haz clic en el icono de lápiz y asigna un nombre a tu paso. Llamaremos a la nuestra "Asignar mensaje de agente"
- Haz clic en el menú desplegable de "Tipo de mensaje" y selecciona "Texto"
- Para el cuerpo, escribe un mensaje breve para que la persona sepa que se está transfiriendo a una persona del equipo
- Asignar la conversación a un equipo o agente. Para ello:
- Haz clic en el nodo debajo del paso anterior, luego selecciona el paso "Conversación"
- Configurar el paso:
- Haz clic en el icono del lápiz y ponle un nombre a tu paso. La nuestra se llama "Asignar agente"
- En el menú desplegable "Usuario(s) para asignar esta conversación", selecciona el usuario al que quieres enviar el mensaje.
- Haz clic en el interruptor de la configuración "Append tags?". Esto significa que cualquier etiqueta que agregues al contacto o a la conversación se sumará a las etiquetas que ya existen.
Paso 10: Guardar y publicar el flujo
Haz clic en "Publicar" para activar el flujo.
Ejemplo de estructura de flujo
Tu flujo ahora debería tener la siguiente estructura:
- Desencadenar: Cualquier mensaje entrante
- Paso de pregunta: Pide al usuario su consulta
- Paso Actualizar contacto: guardar la respuesta del usuario.
- Paso para conectar API: integrar OpenAI para responder preguntas
- Paso Conectar APIs: Enviar la consulta del usuario a OpenAI
- Paso Conectar API: Ejecutar hilo de OpenAI con mensajes
- Paso Conectar API: Revisar respuesta de OpenAI
-
Paso condicional: Comprobar si la respuesta está disponible
-
Rama de recorrido 1:
- Paso de espera: Esperar diez segundos
- Ir a paso: Volver para comprobar si hay respuesta de OpenAI
-
Rama "Else":
-
Paso condicional: Verificar si se necesita intervención humana
-
Rama 1 de ruta:
- Paso de pregunta: Obtener la respuesta generada por OpenAI
- Paso Actualizar contacto: Actualizar campo personalizado con información del cliente
- Ir al paso: Volver al paso "Enviar mensaje al hilo de OpenAI" (paso cinco arriba)
-
Otra rama:
- Paso de mensaje: Indica al cliente que lo vas a dirigir con una persona del equipo de soporte.
- Paso Asignar agente: Asignar la conversación a un agente
-
Rama 1 de ruta:
-
Paso condicional: Verificar si se necesita intervención humana
-
Rama de recorrido 1:
Pasos finales
Enviar un mensaje de prueba a tu número de soporte para asegurarte de que el flujo se desencadena correctamente y que las respuestas de GPT sean precisas. Además, ten en cuenta las conversaciones reales que tus usuarios pueden tener y ajusta la indicación de GPT y la base de conocimientos en consecuencia para mejorar las respuestas.