Automatisches Hinzufügen von Gmail-Absenderkontakten zu einer MySQL-Datenbank
Fortgeschritten
Dies ist ein Lead Generation-Bereich Automatisierungsworkflow mit 7 Nodes. Hauptsächlich werden Code, MySql, GmailTrigger und andere Nodes verwendet. Automatisches Hinzufügen von Gmail-Absenderkontakten zu einer MySQL-Datenbank
Voraussetzungen
- •MySQL-Datenbankverbindungsdaten
- •Google-Konto + Gmail API-Anmeldedaten
Verwendete Nodes (7)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"meta": {
"instanceId": "d6e2f2f655b1125bbcac14a4cac6d2e46c7a150e927f85fc96fdca1a6dc39e0e",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c6250c78-41e1-4977-8f3b-d34a76a24f82",
"name": "Notiz",
"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": "Notiz1",
"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": "Neuen Kunden in MySQL einfügen",
"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": "E-Mail empfangen",
"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": "Kundenname und E-Mail extrahieren",
"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": "Notiz2",
"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": "Notiz3",
"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
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Lead-Generierung
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Dynamisches Senden von Abwesenheits-/Urlaubsnachrichten
Dynamische Sende-Urlaubs-/Abwesenheitsnachrichten mit Gmail und Google Calendar
If
Code
Gmail
+
If
Code
Gmail
14 NodesRosh Ragel
Persönliche Produktivität
Automatische Erstellung von Rechnungen aus Gmail-Labels mit GPT-4O + QuickBooks
Automatische Erstellung von Rechnungen aus Gmail-Labeln mit GPT-4O + QuickBooks
Code
Gmail
Quickbooks
+
Code
Gmail
Quickbooks
23 NodesRosh Ragel
Rechnungsverarbeitung
Automatischer Import von Square-Verkaufs-Zusammenfassungsberichten in Google Tabellen
Automatischer Import von Square-Verkaufs-Zusammenfassungsberichten in Google Tabellen
If
Code
Split Out
+
If
Code
Split Out
14 NodesRosh Ragel
Kundenbeziehungsmanagement
Automatisches Senden des täglichen Square-Verkaufsberichts per Gmail
Automatisches Senden des täglichen Square-Verkaufsberichts per Gmail
If
Code
Gmail
+
If
Code
Gmail
15 NodesRosh Ragel
Kundenbeziehungsmanagement
Automatisches Senden des täglichen Square-Verkaufs-Zusammenfassungsberichts per Microsoft Outlook
Automatisches Senden des täglichen Square-Verkaufs-Zusammenfassungsberichts per Microsoft Outlook
If
Code
Split Out
+
If
Code
Split Out
15 NodesRosh Ragel
Kundenbeziehungsmanagement
Automatisches Senden des monatlichen Square-Verkaufsberichts per Gmail
Automatisches Senden des monatlichen Square-Verkaufsberichts per Gmail
If
Code
Gmail
+
If
Code
Gmail
16 NodesRosh Ragel
Content-Erstellung
Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes7
Kategorie1
Node-Typen4
Autor
Rosh Ragel
@roshragelExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen