Le guide interactif de la prospection B2B›Prospection et IA›Générer des messages personnalisés depuis un CSV

Générer des messages de prospection personnalisés depuis un CSV

Vous donnez un fichier de contacts à votre assistant, il vous rend le même fichier avec quatre messages écrits pour chaque personne, prêts à importer dans une campagne.

La personnalisation habituelle consiste à écrire un modèle et à y glisser un prénom et un nom d'entreprise. Tout le monde fait ça, et les destinataires le repèrent au premier coup d'œil. La méthode décrite ici est différente : on écrit le message entier, pour chaque personne, et c'est le message entier qui devient une variable.

Le kit à donner à votre assistant

Ce n'est pas un simple prompt mais une chaîne complète : le contrôle du fichier d'entrée, la rédaction, le format de sortie, l'écriture dans le CSV et le montage de la campagne.

Générer une séquence personnalisée par contactemelia-messages-personnalises.md · 19 Ko · 3 020 mots

Le prompt de rédaction que nous utilisons, encadré de tout ce qu'il faut autour pour partir d'un fichier de contacts et arriver à une campagne prête à lancer.

  • Le diagnostic à faire sur le fichier avant de dépenser quoi que ce soit en génération
  • La fiche de votre offre, à écrire une fois, qui sert à tous les contacts
  • Le prompt de rédaction en quatre étapes, avec ses garde-fous contre l'invention
  • Le format de sortie exigé, et la porte de sortie quand l'assistant n'a rien de spécifique à dire
  • Le piège des noms de colonnes à l'import, et les deux parades
  • Le contrôle qualité à faire sur dix contacts avant de lancer

Pourquoi le message entier plutôt que des variables au milieu du texte

Un modèle avec un prénom inséré reste un modèle. La phrase est visiblement écrite pour quelqu'un d'autre, avec un mot changé, et c'est précisément ce que fait tout le monde, y compris les gens qui envoient cinquante mille emails par jour.

Écrire le message entier lève cette limite. L'accroche parle de ce que fait vraiment cette entreprise-là, l'analogie est empruntée à son secteur, l'ordre des arguments change selon l'interlocuteur. Rien de tout cela ne rentre dans une variable.

En contrepartie, ça se paie en temps et en jetons : quelques secondes et quelques centimes par contact. C'est rentable sur deux cents décideurs choisis, ça ne l'est pas sur dix mille adresses achetées. Si votre liste ne mérite pas ce traitement, c'est la liste qu'il faut revoir, pas la méthode.

Ce qui entre, ce qui sort

Le fichier de départ a besoin d'un prénom, d'un nom, d'une entreprise et d'une adresse. Il rend nettement mieux avec l'intitulé de poste et le site web de l'entreprise, qui est de loin la colonne la plus utile : c'est elle qui dit ce que l'entreprise vend réellement.

Ce que vous fournissezCe que ça change dans le message
Prénom, nom, entreprisele strict minimum, et le résultat s'en ressent
Intitulé de postele niveau d'argumentation : on ne parle pas à un dirigeant comme à un opérationnel
Site web de l'entreprisel'accroche cesse d'être vague et parle de ce qu'ils font vraiment
URL du profil LinkedInpermet de citer un parcours ou une prise de poste récente
Secteur, effectif, villecalibrent les exemples et les ordres de grandeur

En sortie, huit colonnes s'ajoutent à votre fichier : quatre objets et quatre messages. Les contacts pour lesquels l'assistant n'avait rien de spécifique à dire partent dans un second fichier avec le motif, plutôt que de se retrouver dans le premier avec des cellules vides.

⚠︎ Ce qui n'est pas dans le fichier ne doit pas apparaître dans le message

C'est la règle la plus importante de tout le kit. Une IA à qui il manque une information la remplace volontiers par une invention plausible : un chiffre d'affaires, une levée de fonds, un client. Un prospect qui lit une affirmation fausse sur sa propre entreprise ne répond pas, et il ne répondra plus jamais. Le prompt le lui interdit explicitement, et le contrôle qualité sert à vérifier qu'il a obéi.

Le piège qui casse tout à l'import

Quand Emelia reçoit une colonne qu'il ne connaît pas, il essaie de la ranger tout seul : il regarde le nom, puis la valeur, et ne crée une variable personnalisée qu'en dernier recours. À ce moment-là, il aplatit le nom.

Une colonne message_etape_1 devient donc la variable messageetape1, et le {{message_etape_1}} que vous avez mis dans votre campagne reste désespérément vide. C'est le genre de problème qu'on ne voit qu'après l'envoi.

Nommer les colonnes sans séparateur : Les mots collés survivent tels quels à l'import. C'est la parade la plus simple, et le kit l'applique par défaut.

messageEtape1, objetEtape1, messageEtape2, objetEtape2, messageEtape3, objetEtape3, messageEtape4, objetEtape4

La seconde parade, complémentaire, consiste à déclarer les variables avant le premier import, ce qui les fait gagner sur la détection automatique. Le fichier donne la route exacte.

Dans la campagne, chaque étape ne contient que la variable

Une fois la liste importée, il n'y a plus rien à écrire. Le message a été rédigé en entier, il se suffit à lui-même : l'étape se contente de l'afficher.

Contenu de l'étape 1 : Et rien d'autre. Pas de formule de politesse ajoutée autour, pas de signature : le prompt les a déjà exclues pour que le message soit utilisable tel quel.

{{messageEtape1}}

Sur les étapes 2, 3 et 4, laissez l'objet vide : la relance reste dans le fil du premier email, ce qui augmente nettement les chances d'être lue. Gardez quand même les objets générés dans le fichier, ils serviront si vous décidez plus tard d'ouvrir un nouveau fil.

Prévoyez enfin le cas de la cellule vide. Une variable sans valeur laisse un blanc, et l'email part vide. Le plus sûr reste de ne pas importer les contacts sans message.

Quand ne pas faire ça

  • Sur une liste que vous n'avez pas choisie. La personnalisation ne rattrape pas un mauvais ciblage, elle le rend seulement plus cher.
  • Sur des contacts sans information exploitable. Quatre messages écrits à partir du seul prénom sont quatre messages génériques, produits au prix de quatre messages personnalisés.
  • Sur plus de deux ou trois personnes dans la même entreprise. Elles se parlent, et recevoir des emails « écrits pour vous » manifestement issus du même moule est le meilleur moyen de griller le compte entier.
  • À la place de la délivrabilité. Un message parfait dans le dossier indésirables reste un message non lu. Le domaine, la chauffe et l'authentification passent avant l'écriture.

Questions fréquentes

Les questions qu'on nous pose sur ce sujet, et les réponses courtes.

Quel modèle utiliser pour écrire les messages ?

Le prompt du kit fonctionne avec n'importe quel modèle récent de bon niveau. Ce qui fait la différence n'est pas le modèle mais la matière : un assistant qui reçoit le site web et l'intitulé de poste écrira mieux qu'un modèle plus puissant à qui on ne donne qu'un prénom.

Pourquoi le prompt est-il en anglais alors que les emails sont en français ?

C'est volontaire. Les modèles suivent mieux des instructions structurées en anglais, tout en écrivant parfaitement en français quand on le leur demande. Les consignes de style qui touchent au français, comme le vouvoiement et l'interdiction des formules flatteuses, sont d'ailleurs écrites en français à l'intérieur du prompt.

Combien ça coûte ?

Quelques centimes par contact selon le modèle, et rien du côté d'Emelia : les crédits servent à la donnée et aux actions IA faites dans Emelia, or ici c'est votre propre assistant qui écrit. Le coût réel est celui de votre fournisseur d'IA.

Peut-on faire la même chose pour LinkedIn ?

Oui, en adaptant les consignes de longueur : une note d'invitation ne dépasse pas 200 caractères, et un message LinkedIn se lit sur téléphone. Le principe reste le même, une colonne par message et une variable dans l'étape.

Faut-il relire les messages un par un ?

Non, mais il faut en relire dix, pris au hasard. On cherche trois choses : une affirmation invérifiable sur l'entreprise, une variable restée visible entre accolades, et une signature ou un nom inventé. Si ces dix-là sont propres, le reste l'est généralement aussi.