function genererEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  
  var patternMap = {};

  Logger.log("Starting pattern identification...");

  // Step 1: Identify email patterns for each company
  for (var i = 1; i < data.length; i++) {
    var email = data[i][3];
    if (email) {
      var company = data[i][2];
      var firstName = data[i][5] ? data[i][5].toString().toLowerCase() : "";
      var lastName = data[i][6] ? data[i][6].toString().toLowerCase() : "";
      var firstInitial = firstName.charAt(0);
      var lastInitial = lastName.charAt(0);
      
      Logger.log("Checking email: " + email + " for company: " + company);

      var patterns = [
        firstName + "." + lastName,
        firstName + lastName,
        lastName + firstName,
        firstName,
        firstName + "_" + lastName,
        lastName + "_" + firstName,
        lastName,
        lastName + "." + firstName,
        firstInitial + "." + lastName,
        firstInitial + "." + lastInitial
      ];

      for (var k = 0; k < patterns.length; k++) {
        if (email.includes(patterns[k])) {
          let tempPattern;

          if (k <= 7) {
            tempPattern = email.replace(new RegExp(firstName, 'g'), "{first_name}").replace(new RegExp(lastName, 'g'), "{last_name}");
          } else if(k === 8) {
            tempPattern = email.replace(new RegExp(firstInitial, 'g'), "{first_initial}").replace(new RegExp(lastName, 'g'), "{last_name}");
          } else {
            tempPattern = email.replace(new RegExp(firstInitial, 'g'), "{first_initial}").replace(new RegExp(lastInitial, 'g'), "{last_initial}");
          }
          
          patternMap[company] = tempPattern;
          Logger.log("Pattern identified for company " + company + ": " + tempPattern);
          break;
        }
      }
    }
  }

  Logger.log("Pattern identification complete. Starting email generation...");

  // Step 2: Generate emails for missing entries
  for (var j = 1; j < data.length; j++) {
    if (!data[j][3]) {
      var company = data[j][2];
      var firstName = data[j][5] ? data[j][5].toString().toLowerCase() : "";
      var lastName = data[j][6] ? data[j][6].toString().toLowerCase() : "";
      var firstInitial = firstName.charAt(0);
      var lastInitial = lastName.charAt(0);
      var pattern = patternMap[company];

      if (pattern) {
        var newEmail = pattern.replace("{last_name}", lastName)
                              .replace("{first_name}", firstName)
                              .replace("{first_initial}", firstInitial)
                              .replace("{last_initial}", lastInitial);
        sheet.getRange(j + 1, 4).setValue(newEmail);
        sheet.getRange(j + 1, 8).setValue("TRUE");
        Logger.log("Generated email for " + firstName + " " + lastName + ": " + newEmail);
      } else {
        sheet.getRange(j + 1, 8).setValue("FALSE");
        Logger.log("No pattern found for " + firstName + " " + lastName + " in company " + company);
      }
    } else {
      sheet.getRange(j + 1, 8).setValue("FALSE");
      Logger.log("Email already exists for row " + (j + 1));
    }
  }

  Logger.log("Email generation complete.");
}

Auto mail enrichment

Auto mail enrichment

Auto mail enrichment

Enrichissez automatiquement les e-mails manquants d'une entreprise à partir d'un seul e-mail existant en utilisant notre script Google App Script.

Nos 3 agences spécialisées en automatisation, UX/UI design et dev web vous accompagnent à chaque étape de votre projet pour vous faire atteindre un ROI de folie.

Nos 3 agences spécialisées en automatisation, UX/UI design et dev web vous accompagnent à chaque étape de votre projet pour vous faire atteindre un ROI de folie.

Nos 3 agences spécialisées en automatisation, UX/UI design et dev web vous accompagnent à chaque étape de votre projet pour vous faire atteindre un ROI de folie.

Nos 3 agences spécialisées en automatisation, UX/UI design et dev web vous accompagnent à chaque étape de votre projet pour vous faire atteindre un ROI de folie.