Generar respuestas personalizadas a prospectos utilizando OpenAI y Gmail a partir de Google Sheets

Intermedio

Este es unautomatización que contiene 9 nodos.Utiliza principalmente nodos como Gmail, HttpRequest, GoogleSheets, ManualTrigger, OpenAi. Basado en Google Sheets, usar OpenAI y Gmail para generar respuestas personalizadas a clientes potenciales

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI

Categoría

-
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "0a25db4fd0692af64b58f35e01611f2ef0b5bb9d6654c57ef3741021e7d8cc11",
    "templateId": "7163"
  },
  "nodes": [
    {
      "id": "af621613-d8c3-411e-8f5b-26e08eb27133",
      "name": "Obtener fila(s) en la hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        816,
        1168
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_SHEET_ID}",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{YOUR_GOOGLE_SHEET_ID}/edit#gid=0",
          "cachedResultName": "{YOUR_SHEET_NAME}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_GOOGLE_DOCUMENT_ID}",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{YOUR_GOOGLE_DOCUMENT_ID}/edit?usp=drivesdk",
          "cachedResultName": "n8nEmail"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "cjPjcwa3RdiMAu79",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "cf8bc124-04fd-4930-9040-6fc6ee6f25c4",
      "name": "Al hacer clic en 'Ejecutar flujo de trabajo'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        592,
        1168
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "613fd1d4-ec8a-40be-9f31-ef64483acf87",
      "name": "Enviar correos personalizados",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1616,
        1168
      ],
      "webhookId": "{YOUR_WEBHOOK_ID}",
      "parameters": {
        "sendTo": "={{ $('Get row(s) in sheet').item.json['Email ID'] }}",
        "message": "={{ $json.message.content }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Re:{{ $('Get row(s) in sheet').item.json.Intent }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "vdI9VLsEmuPzPxxo",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "cfb4be86-d24c-4eb5-ab7e-649c851bbadc",
      "name": "Enviar mensaje a un modelo",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1264,
        1168
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_OPENAI_MODEL}",
          "cachedResultName": "{YOUR_OPENAI_MODEL_NAME}"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Write a professional and friendly email reply to {{ $('Get row(s) in sheet').item.json['First Name'] }} . Their intent is \"{{ $('Get row(s) in sheet').item.json.Intent }}\". They wrote: \"{{ $('Get row(s) in sheet').item.json['Why They Sent Email'] }}\". Make the response specific to their message and helpful.No need to add the subject line. Generate in HTML formatting.\nThe footer signature should be of the following format\nThanks,\n{{ $json.sendAs[0].displayName }}\n"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "Kzhpo6yW8AwY3uMm",
          "name": "OpenAI account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "e2b7d857-9ebb-4bff-914c-c7c8c4c87de2",
      "name": "Solicitud HTTP",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1040,
        1168
      ],
      "parameters": {
        "url": "https://gmail.googleapis.com/gmail/v1/users/me/settings/sendAs",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "gmailOAuth2"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "vdI9VLsEmuPzPxxo",
          "name": "Gmail account"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "fd1f0cb8-1711-442d-b6be-2ebff70cee29",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        848
      ],
      "parameters": {
        "color": 4,
        "width": 276,
        "height": 294,
        "content": "## STEP 1 · Lead Intake (Google Sheets)\nReads rows from your sheet.\n\nFields used:\n• Email ID → recipient\n• First Name / Intent / Why They Sent Email → prompt context\n\nTip: Replace the placeholder Document/Sheet IDs before running."
      },
      "typeVersion": 1
    },
    {
      "id": "8fd52a43-0143-460f-bd93-74ddbf123544",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        880
      ],
      "parameters": {
        "color": 5,
        "width": 212,
        "height": 252,
        "content": "## STEP 2 · Sender Identity (Gmail sendAs)\nFetches Gmail sendAs to get your display name for the signature.\n\nOutput used in LLM prompt:\n• sendAs[0].displayName"
      },
      "typeVersion": 1
    },
    {
      "id": "45c4dee3-ff27-4577-a5dc-d2ecb97d9db9",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        912
      ],
      "parameters": {
        "color": 6,
        "width": 392,
        "height": 192,
        "content": "## STEP 3 · Draft Generation (LLM)\nCreates a personalized HTML reply.\n\nPrompt inputs:\n• First Name, Intent, Why They Sent Email\n• Signature uses Gmail displayName\n\nNote: Model should output **HTML** (no subject)."
      },
      "typeVersion": 1
    },
    {
      "id": "3d8c5212-fcf4-4262-aeb7-047a9c6e58e7",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        912
      ],
      "parameters": {
        "color": 7,
        "width": 324,
        "height": 214,
        "content": "## STEP 4 · Send Email (Gmail)\nTo: Email ID from sheet\nSubject: \"Re:\" + Intent\nBody: LLM HTML\n\n⚠️ Set Gmail node **emailType = html** so the formatting renders."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "HTTP Request": {
      "main": [
        [
          {
            "node": "cfb4be86-d24c-4eb5-ab7e-649c851bbadc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cfb4be86-d24c-4eb5-ab7e-649c851bbadc": {
      "main": [
        [
          {
            "node": "613fd1d4-ec8a-40be-9f31-ef64483acf87",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "af621613-d8c3-411e-8f5b-26e08eb27133": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cf8bc124-04fd-4930-9040-6fc6ee6f25c4": {
      "main": [
        [
          {
            "node": "af621613-d8c3-411e-8f5b-26e08eb27133",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos9
Categoría-
Tipos de nodos6
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Meak

Meak

@meak

I help people build $5k+/month online by starting their own AI agency. Without BS.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34