Workflow n8n

Automatisation Mautic avec n8n : gestion des utilisateurs simplifiée

Ce workflow n8n a pour objectif d'automatiser la gestion des utilisateurs dans Mautic, un outil de marketing automation. Dans un contexte où les entreprises cherchent à optimiser leur communication et à mieux gérer leurs contacts, ce workflow permet de gérer efficacement les informations des utilisateurs, de les taguer, de les désinscrire ou de les mettre à jour en fonction de leurs interactions. Grâce à cette automatisation n8n, les équipes marketing peuvent se concentrer sur des tâches à plus forte valeur ajoutée tout en s'assurant que les données de leurs utilisateurs sont toujours à jour. Le workflow commence par un déclencheur Webhook qui reçoit les données des utilisateurs. Ensuite, il utilise plusieurs noeuds Mautic pour rechercher un utilisateur existant, mettre à jour ses informations ou le désinscrire si nécessaire. Par exemple, l'étape 1 consiste à recevoir une requête via le Webhook, suivie par une recherche d'utilisateur dans Mautic. Si l'utilisateur est trouvé, ses informations sont mises à jour ou il est tagué selon le type d'interaction. Si l'utilisateur n'est pas trouvé, le workflow gère cette situation en renvoyant une réponse appropriée. Ce processus inclut également des vérifications conditionnelles pour s'assurer que les utilisateurs qui se désinscrivent des emails marketing sont correctement traités. Les bénéfices business de ce workflow sont multiples : il réduit le temps consacré à la gestion manuelle des contacts, minimise les erreurs humaines et garantit que les données des utilisateurs sont toujours à jour. En intégrant cette automatisation n8n, les entreprises peuvent améliorer leur efficacité opérationnelle et offrir une meilleure expérience à leurs utilisateurs. Tags clés : automatisation, Mautic, workflow.

Catégorie: Webhook · Tags: automatisation, Mautic, workflow, gestion des utilisateurs, n8n0

Vue d'ensemble du workflow n8n

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Détail des nœuds du workflow n8n

  • Webhook

    Ce noeud reçoit des requêtes HTTP via un webhook.

  • Mautic

    Ce noeud envoie des données à Mautic pour créer ou mettre à jour un contact.

  • Find User

    Ce noeud recherche un utilisateur dans Mautic selon des critères spécifiés.

  • Update User

    Ce noeud met à jour les informations d'un utilisateur existant dans Mautic.

  • Tag User

    Ce noeud ajoute un tag à un utilisateur dans Mautic.

  • Unsubscribe User

    Ce noeud désinscrit un utilisateur de la liste de diffusion dans Mautic.

  • Split Full Name

    Ce noeud traite une chaîne de caractères pour séparer le nom complet en prénom et nom.

  • If not found return -1

    Ce noeud retourne -1 si un utilisateur n'est pas trouvé.

  • @MAIN STUDENT DATA

    Ce noeud fusionne les données des étudiants selon les paramètres spécifiés.

  • Remove unsubscribe

    Ce noeud supprime la désinscription d'un utilisateur dans Mautic.

  • Find User To Tag Sale

    Ce noeud recherche un utilisateur à taguer pour une vente dans Mautic.

  • Set userFound

    Ce noeud définit une variable pour indiquer si un utilisateur a été trouvé.

  • Switch Webhook Types

    Ce noeud configure les valeurs d'une requête webhook.

  • Set Webhook Request

    Ce noeud évalue des conditions pour diriger le flux de travail en fonction du type de webhook.

  • IF NOT userFound

    Ce noeud vérifie si un utilisateur n'a pas été trouvé et dirige le flux en conséquence.

  • Switch User.type

    Ce noeud évalue le type d'utilisateur pour diriger le flux de travail.

  • IF unsubscribe_from_marketing_emails

    Ce noeud vérifie si un utilisateur a choisi de se désinscrire des emails marketing.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -550,
        450
      ],
      "parameters": {
        "path": "PuHq2RQsmc3HXB/hook",
        "options": {
          "rawBody": false
        },
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "name": "Mautic",
      "type": "n8n-nodes-base.mautic",
      "position": [
        1260,
        180
      ],
      "parameters": {
        "email": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"email\"]}}",
        "company": 1,
        "options": {},
        "lastName": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"lastName\"]}}",
        "firstName": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"firstName\"]}}",
        "authentication": "oAuth2",
        "additionalFields": {}
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "name": "Find User",
      "type": "n8n-nodes-base.mautic",
      "position": [
        170,
        260
      ],
      "parameters": {
        "limit": 1,
        "options": {
          "search": "={{$node[\"Set Webhook Request\"].json[\"student\"][\"email\"]}}"
        },
        "operation": "getAll",
        "authentication": "oAuth2"
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "notesInFlow": false,
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "name": "Update User",
      "type": "n8n-nodes-base.mautic",
      "position": [
        1560,
        250
      ],
      "parameters": {
        "options": {},
        "contactId": "={{$node[\"@MAIN STUDENT DATA\"].json[\"userFound\"]}}",
        "operation": "update",
        "updateFields": {
          "email": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"email\"]}}",
          "lastName": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"lastName\"]}}",
          "firstName": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"firstName\"]}}"
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "typeVersion": 1
    },
    {
      "name": "Tag User",
      "type": "n8n-nodes-base.mautic",
      "position": [
        430,
        670
      ],
      "parameters": {
        "options": {},
        "contactId": "={{$node[\"Find User To Tag Sale\"].json[\"id\"]}}",
        "operation": "update",
        "updateFields": {
          "tags": "={{$node[\"Set Webhook Request\"].json[\"student\"][\"course\"][\"name\"]}}"
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "typeVersion": 1
    },
    {
      "name": "Unsubscribe User",
      "type": "n8n-nodes-base.mautic",
      "position": [
        2170,
        410
      ],
      "parameters": {
        "options": {},
        "contactId": "={{$node[\"@MAIN STUDENT DATA\"].json[\"userFound\"]}}",
        "operation": "update",
        "updateFields": {
          "tags": "=#unsubscribe"
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "typeVersion": 1
    },
    {
      "name": "Split Full Name",
      "type": "n8n-nodes-base.function",
      "position": [
        340,
        420
      ],
      "parameters": {
        "functionCode": "const student = items[0].json.student\nstudent.firstName = student.name ? student.name.split(' ').slice(0, -1).join(' ') : ''\nstudent.lastName= student.name ? student.name.split(' ').slice(-1).join(' ') : ''\nitems[0].json.student = student\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "name": "If not found return -1",
      "type": "n8n-nodes-base.function",
      "position": [
        450,
        260
      ],
      "parameters": {
        "functionCode": "items[0].json.id = items[0].json.id || -1\nreturn items"
      },
      "typeVersion": 1
    },
    {
      "name": "@MAIN STUDENT DATA",
      "type": "n8n-nodes-base.merge",
      "position": [
        900,
        400
      ],
      "parameters": {
        "join": "inner",
        "mode": "mergeByIndex"
      },
      "typeVersion": 1
    },
    {
      "name": "Remove unsubscribe",
      "type": "n8n-nodes-base.mautic",
      "position": [
        1770,
        500
      ],
      "parameters": {
        "options": {},
        "contactId": "={{$node[\"@MAIN STUDENT DATA\"].json[\"userFound\"]}}",
        "operation": "update",
        "updateFields": {
          "tags": "=-#unsubscribe"
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "typeVersion": 1
    },
    {
      "name": "Find User To Tag Sale",
      "type": "n8n-nodes-base.mautic",
      "position": [
        190,
        670
      ],
      "parameters": {
        "limit": 1,
        "options": {
          "search": "={{$node[\"Set Webhook Request\"].json[\"student\"][\"user\"][\"email\"]}}"
        },
        "operation": "getAll",
        "authentication": "oAuth2"
      },
      "credentials": {
        "mauticOAuth2Api": "OAuth2 Mautic"
      },
      "notesInFlow": false,
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "name": "Set userFound",
      "type": "n8n-nodes-base.set",
      "position": [
        700,
        260
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "userFound",
              "value": "={{$node[\"If not found return -1\"].json[\"id\"]}}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "name": "Switch Webhook Types",
      "type": "n8n-nodes-base.switch",
      "position": [
        -70,
        450
      ],
      "parameters": {
        "rules": {
          "rules": [
            {
              "value2": "User.",
              "operation": "contains"
            },
            {
              "output": 1,
              "value2": "Sale.",
              "operation": "contains"
            }
          ]
        },
        "value1": "={{$node[\"Set Webhook Request\"].json[\"type\"]}}",
        "dataType": "string"
      },
      "typeVersion": 1
    },
    {
      "name": "Set Webhook Request",
      "type": "n8n-nodes-base.set",
      "position": [
        -310,
        450
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "student",
              "value": "={{$node[\"Webhook\"].json[\"body\"][\"object\"]}}"
            },
            {
              "name": "type",
              "value": "={{$node[\"Webhook\"].json[\"body\"][\"type\"]}}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "name": "IF NOT userFound",
      "type": "n8n-nodes-base.if",
      "position": [
        1090,
        400
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$node[\"@MAIN STUDENT DATA\"].json[\"userFound\"]}}",
              "value2": "-1",
              "operation": "regex"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Switch User.type",
      "type": "n8n-nodes-base.switch",
      "position": [
        1380,
        420
      ],
      "parameters": {
        "rules": {
          "rules": [
            {
              "value2": "User.updated"
            },
            {
              "output": 1,
              "value2": "User.unsubscribe_from_marketing_emails"
            },
            {
              "output": 2,
              "value2": "=User.subscribe_to_marketing_emails"
            }
          ]
        },
        "value1": "={{$node[\"@MAIN STUDENT DATA\"].json[\"type\"]}}",
        "dataType": "string"
      },
      "typeVersion": 1
    },
    {
      "name": "IF unsubscribe_from_marketing_emails",
      "type": "n8n-nodes-base.if",
      "position": [
        1770,
        250
      ],
      "parameters": {
        "conditions": {
          "string": [],
          "boolean": [
            {
              "value1": "={{$node[\"@MAIN STUDENT DATA\"].json[\"student\"][\"unsubscribe_from_marketing_emails\"]}}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Set Webhook Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find User": {
      "main": [
        [
          {
            "node": "If not found return -1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update User": {
      "main": [
        [
          {
            "node": "IF unsubscribe_from_marketing_emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set userFound": {
      "main": [
        [
          {
            "node": "@MAIN STUDENT DATA",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Full Name": {
      "main": [
        [
          {
            "node": "@MAIN STUDENT DATA",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "IF NOT userFound": {
      "main": [
        [
          {
            "node": "Mautic",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Switch User.type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch User.type": {
      "main": [
        [
          {
            "node": "Update User",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Unsubscribe User",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Remove unsubscribe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "@MAIN STUDENT DATA": {
      "main": [
        [
          {
            "node": "IF NOT userFound",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Webhook Request": {
      "main": [
        [
          {
            "node": "Switch Webhook Types",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch Webhook Types": {
      "main": [
        [
          {
            "node": "Find User",
            "type": "main",
            "index": 0
          },
          {
            "node": "Split Full Name",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Find User To Tag Sale",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find User To Tag Sale": {
      "main": [
        [
          {
            "node": "Tag User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If not found return -1": {
      "main": [
        [
          {
            "node": "Set userFound",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF unsubscribe_from_marketing_emails": {
      "main": [
        [
          {
            "node": "Unsubscribe User",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Remove unsubscribe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing et aux responsables de la gestion des contacts au sein des entreprises de taille moyenne à grande qui utilisent Mautic pour leurs campagnes de marketing. Un niveau technique intermédiaire est recommandé pour la personnalisation du workflow.

Problème résolu

Ce workflow résout le problème de la gestion manuelle des utilisateurs dans Mautic, qui peut être chronophage et sujet à des erreurs. En automatisant la recherche, la mise à jour et la désinscription des utilisateurs, il élimine les frustrations liées à la gestion des données. Les utilisateurs bénéficient d'une base de données toujours à jour, ce qui améliore la communication et l'engagement client.

Étapes du workflow

Étape 1 : Le workflow est déclenché par un Webhook qui reçoit les données de l'utilisateur. Étape 2 : Une recherche est effectuée dans Mautic pour trouver l'utilisateur correspondant. Étape 3 : Si l'utilisateur est trouvé, ses informations sont mises à jour ou il est tagué selon le type d'interaction. Étape 4 : Si l'utilisateur n'est pas trouvé, le workflow gère cette situation en renvoyant une réponse appropriée. Étape 5 : Des vérifications conditionnelles sont effectuées pour traiter les désinscriptions des emails marketing.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre système. Assurez-vous également de configurer les paramètres d'authentification pour Mautic afin d'accéder aux données des utilisateurs. Vous pouvez ajuster les conditions dans les noeuds 'IF' pour répondre à vos besoins spécifiques, comme le type d'interaction à taguer. Enfin, n'oubliez pas de tester le flux pour garantir son bon fonctionnement avant de le mettre en production.