Le WordPress d'aujourd'hui, décodé pour les développeurs

Astuces

Afficher la dernière synchronisation avec un CRM externe dans l’admin

Montrer la date du dernier envoi réussi vers un CRM externe pour rassurer une équipe commerciale, sans reconstruire la synchronisation elle-même.

Par WordPress Développement • 15 août 2022 • 4 min de lecture • Aucun commentaire
Afficher la dernière synchronisation avec un CRM externe dans l'admin

Un tableau de bord commercial sans indicateur de fraîcheur des données, c’est comme un tableau de bord de voiture sans jauge de carburant : les chiffres sont peut-être justes, mais personne ne sait s’ils datent de la dernière minute ou de la semaine passée. C’est exactement le doute qui s’était installé chez une équipe commerciale utilisant un CRM externe — HubSpot, dans ce cas — alimenté automatiquement par les formulaires du site WordPress : les leads arrivaient bien, mais personne ne pouvait dire avec certitude si la synchronisation fonctionnait encore normalement ou si elle était silencieusement cassée depuis plusieurs jours.

La synchronisation elle-même — un appel à l’API HubSpot déclenché à chaque soumission de formulaire — fonctionnait très bien et n’avait pas besoin d’être reconstruite. Ce qui manquait, c’était simplement une trace visible de son dernier succès, consultable sans avoir à ouvrir les journaux serveur.

Enregistrer un horodatage à chaque envoi réussi

La fonction existante d’envoi vers HubSpot recevait déjà une réponse de l’API à chaque appel. Il suffisait d’exploiter cette réponse pour enregistrer un horodatage en cas de succès, via une simple option WordPress :

function wpm_envoyer_lead_hubspot( $donnees_lead ) {
    $reponse = wp_remote_post( 'https://api.hubapi.com/crm/v3/objects/contacts', array(
        'headers' => array( 'Authorization' => 'Bearer ' . WPM_HUBSPOT_TOKEN ),
        'body'    => wp_json_encode( array( 'properties' => $donnees_lead ) ),
    ) );

    if ( ! is_wp_error( $reponse ) && 200 === wp_remote_retrieve_response_code( $reponse ) ) {
        update_option( 'wpm_derniere_sync_hubspot', time() );
        return true;
    }

    update_option( 'wpm_derniere_erreur_sync_hubspot', time() );
    return false;
}

Deux options distinctes sont enregistrées : l’une pour le dernier succès, l’autre pour la dernière erreur rencontrée. Cette séparation permet, par exemple, d’afficher un avertissement si une erreur récente est survenue après le dernier succès enregistré — signe qu’un problème est probablement apparu depuis.

Afficher l’information dans un widget de tableau de bord

L'essentiel à retenir : Horodatage enregistré à chaque envoi réussi vers le CRM ; Widget de tableau de bord dédié pour l'équipe commerciale ; Aucune modification de la logique de synchronisation existante
function wpm_widget_sync_hubspot() {
    $derniere_sync = get_option( 'wpm_derniere_sync_hubspot' );
    $derniere_erreur = get_option( 'wpm_derniere_erreur_sync_hubspot' );

    if ( ! $derniere_sync ) {
        echo '<p>Aucune synchronisation HubSpot enregistrée pour le moment.</p>';
        return;
    }

    printf(
        '<p>Dernière synchronisation réussie : %s</p>',
        esc_html( human_time_diff( $derniere_sync ) . ' avant maintenant' )
    );

    if ( $derniere_erreur && $derniere_erreur > $derniere_sync ) {
        echo '<p style="color:#a94442;">Une erreur est survenue depuis la dernière synchronisation réussie.</p>';
    }
}

add_action( 'wp_dashboard_setup', function() {
    wp_add_dashboard_widget(
        'wpm_sync_hubspot_widget',
        'Synchronisation CRM',
        'wpm_widget_sync_hubspot'
    );
} );

La fonction native human_time_diff() transforme l’horodatage brut en une phrase lisible (« il y a 12 minutes »), bien plus parlante pour une équipe commerciale qu’un timestamp Unix ou une date au format technique.

Pourquoi un widget de tableau de bord plutôt qu’une page dédiée

Le tableau de bord d’administration WordPress est l’écran que l’équipe commerciale consultait déjà quotidiennement pour d’autres informations. Ajouter une page séparée dans un sous-menu aurait exigé de leur apprendre un nouveau chemin de navigation, pour une information qu’ils souhaitaient au contraire voir passivement, sans effort de recherche.

  • Widget visible dès la connexion à l’administration, sans clic supplémentaire
  • Restreint aux rôles commerciaux via current_user_can() dans la fonction d’enregistrement du widget
  • Aucune information technique brute affichée, seulement une phrase et, le cas échéant, une alerte

Ce que cet indicateur ne fait pas

Ce widget signale qu’une synchronisation a eu lieu récemment, il ne garantit pas que chaque lead individuel a bien été transmis : un envoi ponctuel en échec, suivi d’un envoi réussi pour un autre lead quelques minutes plus tard, resterait invisible avec ce seul indicateur global. Un suivi lead par lead, avec statut individuel, constituerait une évolution possible mais nettement plus lourde à mettre en place.

En résumé

Deux options WordPress et un widget de tableau de bord suffisent à transformer une synchronisation CRM invisible en indicateur de confiance consulté quotidiennement par l’équipe commerciale, sans toucher à la logique d’envoi elle-même.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi