Marketing Automation • Lead Scoring • Python

Système de Lead Scoring Automatisé

Mise en place d'un système de scoring automatisé pour évaluer la qualité et le niveau d'intérêt des prospects, avec intégration complète entre Eloqua, Salesforce et Power BI.

Client Reed Midem (RX France)
Durée 6 mois
Année 2021
Rôle Data Analyst

Contexte et enjeux

Reed Midem (aujourd'hui RX France), organisateur de salons professionnels internationaux de premier plan (MIPIM, MIPCOM, MAPIC, etc.), faisait face à un défi majeur : identifier efficacement les prospects les plus qualifiés parmi des milliers de contacts générés lors de campagnes marketing.

Sans système de scoring automatisé, les équipes commerciales consacraient un temps considérable à analyser manuellement les prospects, ce qui entraînait une perte d'efficacité et des opportunités manquées. Le processus de qualification était long, subjectif et ne permettait pas de prioriser les actions de prospection.

🎯 Objectif principal

En identifiant précisément les prospects les plus prometteurs, permettre aux commerciaux de concentrer leur temps et leur énergie sur les opportunités qui ont le plus de chances d'aboutir, pour des taux de conversion significativement améliorés.

15K+
Prospects scorés
3
Niveaux de scoring
8
Événements suivis
Auto
Mise à jour quotidienne

Architecture de la solution

Le système de lead scoring repose sur une architecture intégrée connectant quatre plateformes clés :

📧
Eloqua
Calcul du score basé sur l'engagement (ouvertures, clics, téléchargements)
☁️
Salesforce
Stockage et gestion des Campaign Members avec statuts
🐍
Python Script
Synchronisation automatique des scores et statuts
📊
Power BI
Visualisation et suivi des performances du scoring

Dashboard Power BI - Vue d'ensemble

Le rapport Power BI "Scoring" offre une vision complète de l'activité de lead scoring avec des indicateurs clés de performance permettant d'évaluer l'efficacité du processus de qualification.

Dashboard Power BI - Lead Scoring Overview

Indicateurs clés du dashboard

Logique de scoring et statuts

Le système utilise une logique de scoring à 4 niveaux (1, 2, 3, 4) calculée dans Eloqua qui se traduit en statuts Salesforce spécifiques grâce au script Python d'automatisation :

Règles de transition des statuts

Événements couverts

Le système de scoring couvre les principaux salons Reed Midem :

MIPIM MIPCOM MIPTV MAPIC MAPIC Italy Propel by MIPIM Esports BAR MIPJUNIOR

Script Python d'automatisation

Le cœur du système repose sur un script Python qui automatise la synchronisation entre les différentes plateformes.

📄 Lead_Scoring.py (extraits) Python 3.x
# Fonction principale : Récupération des Campaign Members à mettre à jour
def ls_cm_status():
    # Connexion à la base de données Salesforce
    server = 'XXX'
    database = 'YYY'
    cnxn = pyodbc.connect(connection_string)
    
    # Requête SQL complexe avec logique de scoring
    SQL = """
    SELECT 
        Event_Edition, Event_Name, Event_Year,
        CM_ID AS CampaignMemberID,
        Status AS Old_Status,
        -- Logique de transition des statuts selon le score Eloqua
        CASE 
            WHEN Status = 'UQ - Not started' AND Score = '1' 
                THEN 'QCB - Score 1'
            WHEN Status = 'UQ - Not started' AND Score = '2' 
                THEN 'QCB - Score 2'
            WHEN Status = 'QCB - Score 2' AND Score = '1' 
                THEN 'QCB - Score 2'
            -- Désengagement : retour au statut initial
            WHEN Score IN ('3','4') 
                THEN 'UQ - Not started'
        END AS New_Status
    FROM Campaign_Members
    JOIN Custom_Attributes ON ...
    WHERE Attribute_Date > GETDATE() - 30
    """
    
    df = pd.read_sql_query(SQL, cnxn)
    return df

# Insertion dans la table de reporting Power BI
def insert_Lead_Scoring():
    cnxn = pyodbc.connect(staging_connection)
    crsr = cnxn.cursor()
    crsr.fast_executemany = True
    
    crsr.executemany(
        "INSERT INTO Lead_Scoring VALUES (?, ?, ...)",
        list(cm_status.itertuples())
    )
    crsr.commit()

# Mise à jour Salesforce via DemandTools
subprocess.Popen([demandtools_exe, scenario_file, data_file])

Fonctionnalités du script

Méthodologie et réalisation

1

Analyse des besoins et définition du modèle de scoring

Collaboration avec les équipes marketing et commerciales pour définir les critères de qualification et les niveaux de scoring pertinents pour chaque type d'événement.

2

Configuration Eloqua

Mise en place du modèle de lead scoring dans Eloqua basé sur les interactions (ouvertures d'emails, clics, téléchargements, visites de pages) avec attribution de points et définition des seuils.

3

Paramétrage Salesforce

Création des Custom Attributes pour stocker les scores Eloqua, configuration des statuts Campaign Member et définition des règles de validation.

4

Développement du script Python

Création du script d'automatisation avec logique de scoring, connexion aux bases de données, gestion des erreurs et intégration avec DemandTools pour les mises à jour Salesforce.

5

Création du dashboard Power BI

Développement du rapport "Scoring" avec indicateurs clés, visualisations par événement et suivi de la performance du processus de qualification.

6

Tests et déploiement

Phase de tests intensifs sur un échantillon de campagnes, validation des règles de scoring, planification de l'exécution quotidienne automatique et formation des équipes.

Technologies utilisées

Python Pandas PyODBC Eloqua Salesforce SQL Server Power BI DemandTools Windows Task Scheduler

Résultats et bénéfices

Gains opérationnels

Gains commerciaux

Gains stratégiques

Défis techniques et solutions

Synchronisation multi-plateformes

Intégration complexe entre Eloqua, Salesforce et Power BI avec des formats de données différents. Solution : Développement d'un script Python robuste avec gestion des erreurs et logs détaillés pour assurer la fiabilité.

Gestion de la volumétrie

Traitement quotidien de milliers de prospects sur plusieurs événements simultanés. Solution : Optimisation des requêtes SQL, filtrage sur 30 jours glissants et utilisation de DemandTools pour les mises à jour en masse.

Règles métier complexes

Logique de transition de statuts différente selon les événements et les comportements. Solution : Modélisation claire des règles dans le code avec commentaires détaillés et tests unitaires exhaustifs.

Fiabilité et monitoring

Nécessité d'assurer le bon fonctionnement quotidien sans intervention manuelle. Solution : Système de notifications email en cas d'erreur, logs détaillés et planification via Windows Task Scheduler.

Un projet d'automatisation marketing ?

Je peux vous accompagner dans la mise en place de systèmes de lead scoring, l'intégration de plateformes marketing et le développement de dashboards de pilotage.