Añadir automáticamente los contactos de remitentes de Gmail a una base de datos MySQL

Intermedio

Este es unLead Generationflujo de automatización del dominio deautomatización que contiene 7 nodos.Utiliza principalmente nodos como Code, MySql, GmailTrigger. Añadir automáticamente contactos de remitentes de Gmail a una base de datos MySQL

Requisitos previos
  • Información de conexión de la base de datos MySQL
  • Cuenta de Google y credenciales de API de Gmail
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": "d6e2f2f655b1125bbcac14a4cac6d2e46c7a150e927f85fc96fdca1a6dc39e0e",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "c6250c78-41e1-4977-8f3b-d34a76a24f82",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        140,
        -340
      ],
      "parameters": {
        "height": 1480,
        "content": "## This workflow processes emails received in Gmail and adds the sender's **name** and **email address** to a MySQL database.\n\n## Use Cases:\n- A sales or marketing agency can use this to automatically save client contact info to a database to build a list of leads\n- Companies can use this to automatically save contacts to a database in case of Gmail data loss / losing access to their Gmail account\n- Companies can build mailing lists to automatically send promotions to all of the clients who have contacted them in a given time period\n\n## Before using, you need to have:\n- Gmail credential\n- MySQL database credential\n- A Table in the MySQL database to store your contacts\n- The table should have a \"name\" column, which allows NULL values\n- The table should have an \"email\" column, which should be UNIQUE\n\n## How it works:\n- The Gmail Trigger will listen for a new email every minute\n- For each email, the code node will extract the name and email address of the sender. If there is no name, it will return null\n- The MySQL node will insert the new contact into a table in your database\n- If the contact email already exists in your database, the MySQL node will update the contact name\n\n\n## How to use:\n- Please set up the MySQL node by selecting the correct table to store contacts in\n- Please choose your \"email\" column to match on\n- Please choose your \"name\" column to store names\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3688fcda-44ad-47c1-bc76-3f3fa04ca436",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -80
      ],
      "parameters": {
        "width": 300,
        "height": 680,
        "content": "## Please setup this node first\n- Create a table in your MySQL database to store your contacts.\n- The table should include the following fields\n  - Name column (should allow null values)\n  - Email column (should be set to unique)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## How to use:\n- Please set up the MySQL node by selecting the correct table to store contacts in\n- Please choose your \"email\" column to match on\n- Please choose your \"name\" column to store names"
      },
      "typeVersion": 1
    },
    {
      "id": "1cbe3946-6b48-483e-9983-2f0c3f243c40",
      "name": "Insertar nuevo cliente en MySQL",
      "type": "n8n-nodes-base.mySql",
      "onError": "continueRegularOutput",
      "position": [
        1040,
        200
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "contacts",
          "cachedResultName": "contacts"
        },
        "options": {},
        "dataMode": "defineBelow",
        "operation": "upsert",
        "valuesToSend": {
          "values": [
            {
              "value": "={{ $json.name }}",
              "column": "name"
            }
          ]
        },
        "valueToMatchOn": "={{ $json.email }}",
        "columnToMatchOn": "email"
      },
      "credentials": {
        "mySql": {
          "id": "MYdqb2i2fz5O21ui",
          "name": "BT Operations Database"
        }
      },
      "typeVersion": 2.4,
      "alwaysOutputData": true
    },
    {
      "id": "ff005111-3172-4022-92b1-9280458d6741",
      "name": "Recibir correo electrónico",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        500,
        200
      ],
      "parameters": {
        "filters": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "YVZiLPppXZw84rIU",
          "name": "Gmail account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5a266f76-1c4d-48ed-a50b-65998cfe135c",
      "name": "Extraer nombre y correo del cliente",
      "type": "n8n-nodes-base.code",
      "position": [
        760,
        200
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "let email = $json.From.trim();\nlet name = null;\n\nif (email.includes('<')) {\n  name = email.split('<')[0].trim();\n  email = email.split('<')[1].replace('>', '').trim();\n}\n\nreturn {\n  \"name\": name,\n  \"email\": email\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "0b4cf2a9-e890-4561-a6c5-e0c85838a777",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        -80
      ],
      "parameters": {
        "color": 5,
        "height": 460,
        "content": "## Customize this to your liking\n\nYou can add filters to this node to only save certain contact emails\n\n**Example:** You can add a \"Label\" filter to only add emails with a specific label"
      },
      "typeVersion": 1
    },
    {
      "id": "58e5e9bd-3bf7-4c3a-80be-c4ac2ff0f370",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -20
      ],
      "parameters": {
        "color": 5,
        "height": 420,
        "content": "## Customizing this Workflow:\n- You can customize this workflow to save more data to MySQL. Here are some examples:\n- In the MySQL node, click \"Add Value\", and choose one of the fields from the Gmail node to save in your database column. You can try saving the following items:\n  - Subject line\n  - MessageID\n  - ThreadID\n  - Snippet\n  - Recipient Info"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "ff005111-3172-4022-92b1-9280458d6741": {
      "main": [
        [
          {
            "node": "5a266f76-1c4d-48ed-a50b-65998cfe135c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5a266f76-1c4d-48ed-a50b-65998cfe135c": {
      "main": [
        [
          {
            "node": "1cbe3946-6b48-483e-9983-2f0c3f243c40",
            "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 - Generación de leads

¿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 nodos7
Categoría1
Tipos de nodos4
Descripción de la dificultad

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

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34