Automatisation MySQL et Pipedrive avec n8n : synchronisation bidirectionnelle
- Le workflow n8n proposé permet d'automatiser la synchronisation bidirectionnelle entre Pipedrive et une base de données MySQL. Cette automatisation n8n est particulièrement utile pour les équipes commerciales et marketing qui souhaitent maintenir à jour leurs contacts et données clients sans intervention manuelle. Grâce à ce processus, les utilisateurs peuvent éviter les erreurs de saisie et garantir que les informations sont toujours à jour dans les deux systèmes, ce qui améliore la productivité et la cohérence des données.
- Le workflow commence par un déclencheur programmé qui active le processus à intervalles réguliers. Ensuite, il compare les ensembles de données entre MySQL et Pipedrive pour identifier les différences. Si des données ont changé, le workflow utilise des nœuds pour créer ou mettre à jour des contacts dans Pipedrive et MySQL, en s'assurant que toutes les informations sont synchronisées. Des nœuds comme 'Create Person' et 'Update Person' pour Pipedrive, ainsi que 'Create Contact' et 'Update Contact' pour MySQL, sont utilisés pour gérer ces opérations.
- En intégrant ce workflow, les entreprises peuvent réduire considérablement le temps consacré à la gestion des données, minimiser les erreurs humaines et garantir que toutes les équipes travaillent avec des informations à jour. Cela permet non seulement d'améliorer l'efficacité opérationnelle, mais aussi d'optimiser les interactions avec les clients en ayant accès à des données précises et fiables.
Workflow n8n Pipedrive, MySQL, synchronisation : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Pipedrive, MySQL, synchronisation : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": 65,
"meta": {
"instanceId": "104a4d08d8897b8bdeb38aaca515021075e0bd8544c983c2bb8c86e6a8e6081c"
},
"name": "Two Way Sync Pipedrive and MySQL",
"tags": [],
"nodes": [
{
"id": "7355c5ac-a9a6-4fa5-8036-71fd09e95cd4",
"name": "Compare Datasets",
"type": "n8n-nodes-base.compareDatasets",
"position": [
1220,
480
],
"parameters": {
"options": {},
"resolve": "includeBoth",
"mergeByFields": {
"values": [
{
"field1": "email",
"field2": "email"
}
]
}
},
"typeVersion": 1
},
{
"id": "7a422493-94d4-4f94-b39c-f6c3980a967c",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
800,
320
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1
},
{
"id": "b3a0e831-7030-43dd-863a-0c2a4697a14d",
"name": "MySQL",
"type": "n8n-nodes-base.mySql",
"position": [
1000,
320
],
"parameters": {
"query": "SELECT id, name, email, phone, updated_on FROM contact",
"operation": "executeQuery"
},
"credentials": {
"mySql": {
"id": "23",
"name": "MySQL account"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "a3a64bb5-8a6f-4011-bc2d-3996a823012c",
"name": "Pipedrive",
"type": "n8n-nodes-base.pipedrive",
"position": [
800,
620
],
"parameters": {
"resource": "person",
"operation": "getAll",
"additionalFields": {}
},
"credentials": {
"pipedriveApi": {
"id": "29",
"name": "Pipedrive account"
}
},
"typeVersion": 1
},
{
"id": "089e91df-abf7-4de9-b088-357cffce6949",
"name": "Create Person",
"type": "n8n-nodes-base.pipedrive",
"position": [
1420,
300
],
"parameters": {
"name": "={{ $json[\"name\"] }}",
"resource": "person",
"additionalFields": {
"email": [
"={{ $json[\"email\"] }}"
],
"phone": [
"={{ $json[\"phone\"] }}"
]
}
},
"credentials": {
"pipedriveApi": {
"id": "29",
"name": "Pipedrive account"
}
},
"typeVersion": 1
},
{
"id": "a99c3242-8263-4a92-a1f2-dcce7a9a6d81",
"name": "Create Contact",
"type": "n8n-nodes-base.mySql",
"position": [
1420,
620
],
"parameters": {
"table": {
"__rl": true,
"mode": "list",
"value": "contact",
"cachedResultName": "contact"
},
"columns": "name, email, phone",
"options": {}
},
"credentials": {
"mySql": {
"id": "23",
"name": "MySQL account"
}
},
"typeVersion": 1
},
{
"id": "7697d03a-7bc4-40b3-9e06-e38c13ccaaf3",
"name": "Date & Time",
"type": "n8n-nodes-base.dateTime",
"position": [
1760,
460
],
"parameters": {
"value": "={{ $json[\"different\"][\"updated_on\"][\"input1\"] }}",
"custom": true,
"options": {},
"toFormat": "YYYY-MM-DD HH:mm:ss",
"dataPropertyName": "different.updated_on.input1"
},
"typeVersion": 1
},
{
"id": "f882a2e7-a8cf-4683-abe3-77a5b7376bb2",
"name": "Update Contact",
"type": "n8n-nodes-base.mySql",
"position": [
2340,
620
],
"parameters": {
"query": "=UPDATE contact\nSET name = '{{$json[\"name\"]}}', phone= '{{$json[\"phone\"]}}'\nWHERE id = {{$json[\"id\"]}};",
"operation": "executeQuery"
},
"credentials": {
"mySql": {
"id": "23",
"name": "MySQL account"
}
},
"typeVersion": 1
},
{
"id": "d7549678-5d35-4a8a-b440-5c347b4434f4",
"name": "Set Input2",
"type": "n8n-nodes-base.set",
"position": [
2120,
620
],
"parameters": {
"values": {
"string": [
{
"name": "id",
"value": "={{ $json[\"different\"][\"id\"] ? $json[\"different\"][\"id\"][\"input1\"] : $json[\"same\"][\"id\"] }}"
},
{
"name": "name",
"value": "={{ $json[\"different\"][\"name\"] ? $json[\"different\"][\"name\"][\"input2\"] : $json[\"same\"][\"name\"] }}"
},
{
"name": "phone",
"value": "={{ $json[\"different\"][\"phone\"] ? $json[\"different\"][\"phone\"][\"input2\"] : $json[\"same\"][\"phone\"] }}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"id": "0018751e-c295-4f8d-b9df-257b9538eedc",
"name": "Set Input1",
"type": "n8n-nodes-base.set",
"position": [
2120,
300
],
"parameters": {
"values": {
"string": [
{
"name": "id",
"value": "={{ $json[\"different\"][\"id\"] ? $json[\"different\"][\"id\"][\"input2\"] : $json[\"same\"][\"id\"] }}"
},
{
"name": "name",
"value": "={{ $json[\"different\"][\"name\"] ? $json[\"different\"][\"name\"][\"input1\"] : $json[\"same\"][\"name\"] }}"
},
{
"name": "phone",
"value": "={{ $json[\"different\"][\"phone\"] ? $json[\"different\"][\"phone\"][\"input1\"] : $json[\"same\"][\"phone\"] }}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"id": "89af3385-4788-4693-ad02-917b927e7384",
"name": "Update Person",
"type": "n8n-nodes-base.pipedrive",
"position": [
2340,
300
],
"parameters": {
"personId": "={{ $json[\"id\"] }}",
"resource": "person",
"operation": "update",
"updateFields": {
"name": "={{ $json[\"name\"] }}",
"phone": [
"={{ $json[\"phone\"] }}"
]
}
},
"credentials": {
"pipedriveApi": {
"id": "29",
"name": "Pipedrive account"
}
},
"typeVersion": 1
},
{
"id": "8ffbbb4b-7c2f-457e-ae73-464620aa1588",
"name": "IF Data Changed",
"type": "n8n-nodes-base.if",
"position": [
1560,
480
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ !!$json[\"different\"][\"name\"] || !!$json[\"different\"][\"phone\"] }}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"id": "f8d60404-942d-4bb3-96e7-a247a9447a32",
"name": "IF Updated On",
"type": "n8n-nodes-base.if",
"position": [
1940,
460
],
"parameters": {
"conditions": {
"dateTime": [
{
"value1": "={{ $json[\"different\"][\"updated\"][\"input1\"] }} {{ $json[\"different\"][\"updated_on\"][\"input1\"] }}",
"value2": "={{ $json[\"different\"][\"updated\"][\"input2\"] }} {{ $json[\"different\"][\"updated_on\"][\"input2\"] }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "6965e281-10bd-4e8a-b016-f788030a6d9f",
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
1000,
620
],
"parameters": {
"values": {
"string": [
{
"name": "id",
"value": "={{ $json[\"id\"] }}"
},
{
"name": "name",
"value": "={{ $json[\"name\"] }}"
},
{
"name": "email",
"value": "={{ $json[\"primary_email\"] }}"
},
{
"name": "phone",
"value": "={{ $json[\"phone\"][0][\"value\"] }}"
},
{
"name": "updated_on",
"value": "={{ $json[\"update_time\"] }}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {},
"connections": {
"Set": {
"main": [
[
{
"node": "Compare Datasets",
"type": "main",
"index": 1
}
]
]
},
"MySQL": {
"main": [
[
{
"node": "Compare Datasets",
"type": "main",
"index": 0
}
]
]
},
"Pipedrive": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
},
"Set Input1": {
"main": [
[
{
"node": "Update Person",
"type": "main",
"index": 0
}
]
]
},
"Set Input2": {
"main": [
[
{
"node": "Update Contact",
"type": "main",
"index": 0
}
]
]
},
"Date & Time": {
"main": [
[
{
"node": "IF Updated On",
"type": "main",
"index": 0
}
]
]
},
"IF Updated On": {
"main": [
[
{
"node": "Set Input1",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Input2",
"type": "main",
"index": 0
}
]
]
},
"IF Data Changed": {
"main": [
[
{
"node": "Date & Time",
"type": "main",
"index": 0
}
]
]
},
"Compare Datasets": {
"main": [
[
{
"node": "Create Person",
"type": "main",
"index": 0
}
],
[],
[
{
"node": "IF Data Changed",
"type": "main",
"index": 0
}
],
[
{
"node": "Create Contact",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "MySQL",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Pipedrive, MySQL, synchronisation : pour qui est ce workflow ?
Ce workflow s'adresse aux équipes commerciales et marketing des PME et grandes entreprises qui utilisent Pipedrive et MySQL pour la gestion de leurs contacts. Un niveau technique intermédiaire est recommandé pour la mise en place et la personnalisation de ce flux d'automatisation n8n.
Workflow n8n Pipedrive, MySQL, synchronisation : problème résolu
Ce workflow résout le problème de la désynchronisation des données entre Pipedrive et MySQL, ce qui peut entraîner des erreurs et des incohérences dans les informations clients. En automatisant ce processus, les utilisateurs éliminent les frustrations liées à la mise à jour manuelle des données, réduisent le risque d'erreurs humaines et gagnent un temps précieux. À la fin de la mise en place, les utilisateurs bénéficient d'une base de données toujours à jour, facilitant ainsi la prise de décision et l'engagement client.
Workflow n8n Pipedrive, MySQL, synchronisation : étapes du workflow
Étape 1 : Le workflow est déclenché par un événement programmé.
- Étape 1 : Les ensembles de données de MySQL et Pipedrive sont comparés pour détecter les différences.
- Étape 2 : Si des données ont changé, des nœuds sont utilisés pour créer ou mettre à jour des contacts dans Pipedrive et MySQL.
- Étape 3 : Les informations sont synchronisées, garantissant que les deux systèmes contiennent des données cohérentes et à jour.
Workflow n8n Pipedrive, MySQL, synchronisation : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier les paramètres du nœud 'Schedule Trigger' pour ajuster la fréquence de synchronisation. Les requêtes SQL dans les nœuds MySQL peuvent être adaptées pour cibler des tables spécifiques ou des champs particuliers. De plus, les identifiants de ressources dans les nœuds Pipedrive doivent être mis à jour pour correspondre à votre configuration. Assurez-vous également de tester le flux pour vérifier que les données sont correctement synchronisées et que les erreurs sont gérées efficacement.