Cómo usar ChatGPT en N8N a través de WebHook sin API

Cuando hablamos de automatización y flujo de trabajo utilizando Inteligencia Artificial, la solución más común es usar la API de GPT. Sin embargo, este enfoque puede generar costos significativos, especialmente dependiendo del modelo utilizado.

¿Pero qué pasaría si fuera posible utilizar ChatGPT Plus, que cuesta solo 20 USD al mes, para enviar información directamente a N8N? Imagina automatizar tareas como crear un artículo escrito por ChatGPT, registrar usuarios o ejecutar otras acciones que antes requerían formularios externos y el llenado manual de campos.

Afortunadamente, ChatGPT ofrece esta posibilidad a través de la comunicación vía POST, utilizando Chats Personalizados. En este artículo, vamos a explorar cómo configurar esta integración de manera eficiente.

Ventajas de usar ChatGPT

Además del ahorro con la API de modelos más caros, quizás ya tengas que pagar el ChatGPT Plus, así que necesitas aprovechar al máximo la mensualidad de la plataforma. Otra ventaja es que las respuestas del ChatGPT suelen ser mejores que las de la API, incluso configurando correctamente la temperatura.

Usar ChatGPT en lugar de la API también da libertad para realizar cambios en los prompts manualmente. Si creas un Workflow con la API, puede que necesites editar el Workflow cada vez que quieras hacer cambios. Si existe automatización en el Chat, puedes conversar con el propio ChatGPT para enviar los datos de la manera que desees, permitiendo incluso usar un único Chat para activar varias automatizaciones diferentes.

También puedes enviar imágenes y otra información a través de Webhook que probablemente costaría mucho más caro usando API.

Conectando ChatGPT a N8N

En el video de abajo explico mejor cómo hice esta automatización, pero a lo largo del artículo te ayudaré a configurarla. Todo lo que hice fue realizado con la ayuda del propio GPT, así que pregúntale cómo generar el código y crear tu automatización de acuerdo con tus necesidades.

Configurando el ChatGPT con N8N a través de WebHook

1. Crear un Chat Personalizado en ChatGPT

  • Accede a ChatGPT Plus.
  • Haz clic en “Explorar GPTs” en el menú lateral.
  • Seleccione "Crear nuevo GPT".
  • Personaliza el comportamiento del GPT según tus necesidades.
  • En la solapa Acciones, haz clic en “Crear Nueva Acción”:
    • Dale un nombre a la acción (por ejemplo, “Enviar a N8N”).
    • Configure el método HTTP como POST.
    • Inserta la URL del WebHook generado por N8N.

2. Configurar el WebHook en N8N

  • Abre el panel de N8N y crea un nuevo flujo.
  • Añade un nodo WebHook:
    • Elige un nombre para el nodo.
    • Configura el método como POST.
    • Copia la URL del WebHook generado para usar en el Chat Personalizado.
  • Prueba el WebHook enviando una solicitud directamente a través de ChatGPT para verificar si los datos se están recibiendo correctamente.

3. Enviar datos de ChatGPT al WebHook

  • No ChatGPT, al interactuar con el Chat Personalizado, activa la acción creada.
  • Los datos procesados por ChatGPT se enviarán automáticamente al WebHook de N8N.

4. Crear el flujo en N8N

  • Después de recibir los datos en el WebHook, configura otros nodos en N8N para procesar la información. Ejemplos:
    • Almacenar los datos en una hoja de cálculo (Google Sheets).
    • Enviar notificaciones por correo electrónico.
    • Crear tareas en herramientas de gestión como Trello o ClickUp.
    • Actualizar una base de datos o sistema de CRM.

Código Usado

El código a continuación envía tanto la respuesta como la pregunta hecha en el chat a N8N, ahora depende de usted configurar correctamente el prompt y N8N para utilizar los datos de la manera que desee. ChatGPT también puede ser capaz de enviar y separar más datos, solo necesita configurar correctamente nuevos códigos y Prompts.

openapi: 3.1.0
info:
  title: Enviar pergunta e resposta ao n8n
  description: Envia a pergunta e a resposta geradas pelo ChatGPT para o seu Webhook no n8n.
  version: 1.0.1
servers:
  - url: https://LINKDOWEBHOOKN8N
    description: Webhook configurado no n8n
paths:
  /:
    post:
      operationId: sendQuestionAndResponseToN8n
      summary: Envia a pergunta e a resposta para o n8n.
      description: Envia um JSON contendo a pergunta, a resposta gerada pelo ChatGPT e metadados opcionais.
      x-openai-isConsequential: false # Permite que o usuário autorize permanentemente sem confirmações futuras
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                question:
                  type: string
                  description: A pergunta enviada ao ChatGPT que será enviada ao n8n.
                response:
                  type: string
                  description: A resposta gerada pelo ChatGPT que será enviada ao n8n.
                metadata:
                  type: object
                  description: Metadados adicionais que podem ser usados para contexto.
                  properties:
                    userId:
                      type: string
                      description: Um identificador opcional para o usuário.
                    timestamp:
                      type: string
                      format: date-time
                      description: O horário em que a resposta foi gerada.
                    source:
                      type: string
                      description: A origem da solicitação, se aplicável.
      responses:
        '200':
          description: Dados enviados com sucesso.
        '400':
          description: Solicitação inválida.

x-openai-isConsequential: false

En algunos casos, puedes encontrarte con una pregunta de permiso para conectarte a un dominio externo cada vez que ChatGPT realice una acción, la forma de eludir esto es con la opción x-openai-isConsequential: false que permite activar la opción de Siempre Permitir.

Es esencial usar esta función en tu código para agilizar aún más el proceso, ya que se trata de una acción manual contactar con el chat para realizar la conexión con N8N y enviar la información.