Je suis actuellement en train de construire un workflow qui :
- récupère les emails d’un compte IMAP
- lit un fichier .csv sur localhost contenant les emails approuvés
- vérifie si l’expéditeur figure dans la liste des emails approuvés
- effectuera d’autres actions après
Quelles sont les options pour vérifier si l’expéditeur figure dans la liste des emails approuvés ?
2 « J'aime »
Salut @BMCMLXV,
Bienvenue dans la communauté,
Tu devrais essayer d’extraire le CSV en lignes, puis filtrer les lignes avec “approvedEmail == senderEmail”.
Si tu obtiens au moins 1 ligne en retour, c’est approuvé ; si 0 lignes, ce ne l’est pas.
Fais-moi savoir si ça t’a aidé !!
Une autre solution consiste à éviter le nœud Code et à utiliser un nœud Merge.
Je normalisé d’abord l’email de l’expéditeur depuis le déclencheur IMAP dans un champ comme email, en utilisant un nœud Edit Fields. Je normaliserais également la colonne d’email approuvé du CSV dans le même nom de champ, également appelé email. Après cela, vous pouvez utiliser un nœud Merge en mode correspondance pour comparer les deux branches par le champ email. Si l’expéditeur existe dans la liste CSV, le nœud Merge devrait retourner un élément correspondant. Vous pouvez ensuite continuer le workflow uniquement s’il y a une correspondance.
La partie importante est que les deux côtés doivent avoir la même valeur comparable. Par exemple, l’expéditeur IMAP devrait être uniquement user@example.com, et non quelque chose comme John Doe <user@example.com>, et les emails du CSV doivent être tronqués et mis en minuscules si possible.
Le flux serait donc quelque chose comme ceci.
Email Trigger IMAP → Edit Fields → Merge
Read File from Disk → Extract CSV → Edit Fields → Merge
Puis après le nœud Merge, continuez uniquement avec les résultats correspondants.
Si la liste d’emails approuvés ne change pas souvent, une autre option plus simple consiste à stocker les emails approuvés quelque part plus facile à interroger, comme Google Sheets, Airtable, une table de base de données, ou même les données statiques n8n, au lieu de lire le CSV du disque à chaque fois.
Merci pour votre aide.
J’ai conçu le workflow en conséquence et voici où j’en suis, avec 2 questions
- Comment faire exécuter le nœud Read File lorsque Email Trigger est déclenché ?
- Le nœud Merge ne fonctionne pas correctement. Qu’est-ce que j’ai oublié dans sa configuration ?
Bonjour @BMCMLXV
Je pense que le nœud Read File devrait être connecté au même déclencheur en tant que branche distincte. De cette façon, il s’exécute lors de la même exécution, et le nœud Merge peut alors combiner correctement les deux entrées.
1 « J'aime »
Merci @Haian_Abou-Karam
Cela fonctionne bien. Voici la version corrigée.
2 « J'aime »
@BMCMLXV
Je suis heureux que le workflow fonctionne finalement.
1 « J'aime »