Prospection B2B  associer approche personnalisée et automatisation

Comment associer l’approche personnalisée et les relances automatisées dans sa prospection B2B ? Notre guide pas à pas.

Vous cherchez à adopter une approche personnalisée pour capter de nouveaux clients sans y consacrer des heures interminables ? Bonne nouvelle, il est tout à fait possible de combiner précision et automatisation pour une prospection efficace et personnalisée. Dans ce tutoriel détaillé, nous vous accompagnons pas à pas pour mettre en place une méthode infaillible : identifier manuellement vos prospects afin d’assurer une approche ciblée, tout en automatisant l’envoi des messages pour gagner en productivité. Que vous soyez novice ou expérimenté en prospection, ce guide pratique vous donnera toutes les clés pour atteindre vos objectifs commerciaux sans perdre en qualité.

Présentation de la mécanique de prospection proposée

Présentation de la mécanique de prospection proposée

La mécanique que nous vous proposons dans cet article repose sur l’utilisation de technologies accessibles (no code) et puissantes, permettant d’automatiser l’envoi de messages tout en conservant une approche personnalisée et stratégique. Voici les différentes étapes clés :

 

  1. Structuration des données via Google Sheets
  2. Automatisation via Apps Script
    • Mise en place d’un script automatisé (fourni dans cet article) pour transférer les prospects prêts à être engagés vers les feuilles correspondantes en fonction du canal de prospection.
    • Gestion automatique des statuts des contacts (activés/inactifs) en fonction des mises à jour dans la base de données principale.
    • Génération de logs pour assurer le suivi des actions effectuées.
  3. Engagement des prospects
    • Importation des prospects dans Instantly pour l’approche mail avec l’envoi automatisé des messages et des relances stratégiques.
    • Suivi et analyse des performances
    • Mise en place de KPI essentiels : taux d’ouverture, taux de réponse, taux de conversion.

🚀 Pour vous faire gagner du temps, nous avons préparé un environnement entièrement configuré, prêt à être dupliqué et adapté à vos besoins. Accédez directement à l’exemple via ce lien :

Préparer son environnement de prospection sur Google Sheets

Les données importantes

Avant de se lancer, il est crucial d’organiser vos données de manière structurée. Voici un exemple d’informations à inclure dans votre environnement :

 

  • urlLinkedin : lien du profil Linkedin du prospect ;
  • gender (Monsieur/Madame) : détecter automatiquement le genre de vos contacts ;
  • fullName : le nom complet de ton prospect (automatique) ;
  • firstName : prénom du prospect ;
  • lastName : nom de famille du prospect ;
  • companyName : l’entreprise du contact ;
  • email ;
  • industry : son secteur d’activité ;
  • Tu/Vous : l’approche à utiliser ;
  • Introduction : comment le message va commencer ;
  • Objet(mail) : facultatif pour l’approche Linkedin ;
  • messagePersonnalise : message à forte contextualisation ;
  • formatageMessage : message automatiquement formaté pour l’import dans l’outil ;
  • MessageFinal ;
  • Canal : sur quel canal le contact va être engagé ;
  • Pret : condition qui va activer le prospect ou non dans l’automatisation.

Créer une feuille de calcule par canal d’acquisition & préparer l’automatisation

Pour la suite du projet, il est nécessaire de “séparer” les différents canaux de prospection en feuilles individuelles. Dans notre exemple, une feuille “Import mail” et une autre “Import Linkedin”.

Celles-ci vont servir à lister automatiquement les prospect à engager dans le processus de prospection. Comment ? En utilisant un script dans l’extension “Apps Script” de votre environnement Google Sheets :

1. Dans le bandeau supérieur cliquer sur « Extensions » puis « Apps Script ».

Créer une feuille de calcule par canal d’acquisition & préparer l’automatisation

2. Supprimer le contenu par défaut du fichier ouvert et copier-coller le script suivant :

détail script à intégrer
function onEdit(e) {
  var sheetSource = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contacts"); // Feuille source
  var sheetMail = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Import mail"); // Feuille cible Mail
  var sheetLinkedin = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Import Linkedin"); // Feuille cible Linkedin

  var columnPret = getColumnIndexByName(sheetSource, "Pret"); // Index de la colonne "Pret"
  var columnCanal = getColumnIndexByName(sheetSource, "Canal"); // Index de la colonne "Canal"
  var columnLogs = getColumnIndexByName(sheetSource, "Logs"); // Index de la colonne "Logs"
  var columnEmail = getColumnIndexByName(sheetSource, "email"); // Index de la colonne "email"
  var columnUrlLinkedin = getColumnIndexByName(sheetSource, "urlLinkedin"); // Index de la colonne "urlLinkedin"

  var editedRow = e.range.getRow();
  var editedColumn = e.range.getColumn();
  var editedValue = e.range.getValue();

  if (editedColumn === columnPret) {
    var emailValue = sheetSource.getRange(editedRow, columnEmail).getValue().toString().trim();
    var urlLinkedinValue = sheetSource.getRange(editedRow, columnUrlLinkedin).getValue().toString().trim();
    var canalValue = sheetSource.getRange(editedRow, columnCanal).getValue().toString().trim();
    
    if (editedValue === true) {
      // Si la case est cochée
      var rowData = sheetSource.getRange(editedRow, 1, 1, sheetSource.getLastColumn()).getValues()[0];
      if (canalValue === "Mail") {
        sheetMail.appendRow(rowData);
        sheetSource.getRange(editedRow, columnLogs).setValue("Succès : contact ajouté à la feuille 'Import mail'");
      } else if (canalValue === "Linkedin") {
        sheetLinkedin.appendRow(rowData);
        sheetSource.getRange(editedRow, columnLogs).setValue("Succès : contact ajouté à la feuille 'Import Linkedin'");
      } else {
        sheetSource.getRange(editedRow, columnPret).setValue(false);
        sheetSource.getRange(editedRow, columnLogs).setValue("Erreur : pas de canal de destination sélectionné");
      }
    } else {
      // Si la case est décochée, supprimer la ligne correspondante dans les feuilles de destination
      var removedFromMail = removeRowFromSheet(sheetMail, columnEmail, columnUrlLinkedin, emailValue, urlLinkedinValue);
      var removedFromLinkedin = removeRowFromSheet(sheetLinkedin, columnEmail, columnUrlLinkedin, emailValue, urlLinkedinValue);

      if (removedFromMail) {
        sheetSource.getRange(editedRow, columnLogs).setValue("Suppression : contact retiré de la feuille 'Import mail'");
      } else if (removedFromLinkedin) {
        sheetSource.getRange(editedRow, columnLogs).setValue("Suppression : contact retiré de la feuille 'Import Linkedin'");
      } else {
        sheetSource.getRange(editedRow, columnLogs).setValue("Erreur : contact non trouvé dans les feuilles de destination");
      }
    }
  }
}

// Fonction pour trouver l'index d'une colonne par son nom
function getColumnIndexByName(sheet, columnName) {
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  for (var i = 0; i < headers.length; i++) {
    if (headers[i] === columnName) {
      return i + 1;  // Les index dans Google Sheets commencent à 1
    }
  }
  return -1;
}

// Fonction pour supprimer une ligne de la feuille cible en comparant les colonnes email et urlLinkedin
function removeRowFromSheet(sheet, colEmailIndex, colUrlIndex, emailValue, urlValue) {
  var data = sheet.getDataRange().getValues();
  for (var i = 1; i < data.length; i++) {
    var emailInSheet = data[i][colEmailIndex - 1].toString().trim();
    var urlInSheet = data[i][colUrlIndex - 1].toString().trim();
    
    if (emailInSheet === emailValue && urlInSheet === urlValue) {
      sheet.deleteRow(i + 1);  // +1 car l'index commence à 0 et il y a une ligne d'en-tête
      return true;
    }
  }
  return false;
}

⚠️ Attention : ne pas oublier de sauvegarder (CTRL+S) avant de tester le fonctionnement

Tester avec des données fictives en cochant la case “Pret” afin d’importer le contact dans l’une des deux feuilles en fonction de son canal d’acquisition (automatiquement détecté).

Configurer une campagne qui va reçevoir les prospects

Utilisation de la variable finale

Lorsque vos données sont prêtes, il est temps de pré-configurer votre campagne qui va reçevoir automatiquement vos contacts. Il vous suffira d’indiquer dans le premier message, la variable “MessageFinal” (et l’objet si le canal sélectionné est le mail) afin d’envoyer votre message ultra personnalisé accompagné des relances automatisées !

variable finale

Rédaction des autres messages (relances)

Pour maximiser l'efficacité de votre premier message, il est crucial de soigner les relances qui le suivront. Chaque message doit être conçu pour maintenir l'intérêt du prospect sans paraître intrusif. Voici quelques bonnes pratiques pour rédiger vos relances :

  • Faites référence à votre premier message en rappelant brièvement l'intérêt pour votre prospect. Ajoutez une valeur supplémentaire en partageant un cas client ou une information pertinente pour son secteur.
  • Adoptez un ton plus directif en proposant une action concrète (planifier un rendez-vous, poser une question précise). Veillez à rester courtois et à ne pas insister de manière excessive.
  • Dernier rappel amical, avec une incitation à vous répondre pour ne pas manquer une opportunité de collaboration. Offrez une alternative, comme un suivi ultérieur à une date précise.

L'objectif de ces relances est de créer un dialogue constructif tout en maintenant une approche personnalisée.

Automatiser toute la mécanique !

Utilisation de zapier

Zapier est un outil puissant permettant d'automatiser vos workflows. Nous allons ici l’utiliser pour envoyer les différents contacts de la feuille “Import mail” dans un outil de prospection (Instantly). Dupliquer le template zapier

Procédure pour connecter votre Google Sheets :

  1. Créez un compte Zapier (gratuit).
  2. Ajoutez Google Sheets en tant qu'application.
  3. Configurez un "Zap" pour envoyer automatiquement les nouvelles entrées vers votre outil de prospection.
  4. Les variables à importer (notamment le “MessageFinal”);
  5. etc.

Tester les flux de données pour garantir la fiabilité (avec des tests en interne par exemple).

Utilisation de Zapier

⚠️ Attention : il vous faudra créer 1 Zap par canal (soit une automatisation par feuille de calcul).

Laisser la magie opérer

Une fois l'automatisation mise en place, surveillez vos performances en suivant les KPIs clés :

  • taux d'ouverture ;
  • taux de réponse ;
  • taux de conversion.

Avec cette stratégie et des outils bien configurés, vous pourrez prospecter efficacement tout en gardant une approche personnalisée et ciblée.

Vous l’avez compris, en combinant ciblage manuel et automatisation intelligente, vous pouvez transformer votre prospection en un processus fluide, efficace et personnalisé. Grâce aux outils et aux étapes décrites dans ce guide, vous avez désormais toutes les clés pour engager vos prospects de manière pertinente tout en optimisant votre temps.

Cependant, mettre en place une stratégie de prospection performante peut nécessiter des compétences ou des ressources spécifiques. C’est pourquoi LEADnGO propose un accompagnement sur mesure : nous mettons notre expertise à votre service pour vous aider à affiner vos campagnes, choisir les bons outils et maximiser vos résultats tout en formant vos collaboateurs. Vous souhaitez aller plus loin ? Contactez-nous pour bénéficier d’un accompagnement personnalisé et booster votre développement commercial.

Pour aller plus loin