iSonic Analytics Enrichment
Plugin WordPress pour enrichir Gravity Forms avec les données Matomo avant envoi à Salesforce
by iSonic · github.com/jmiezin/isonic-analytics-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/jmiezin/isonic-analytics-plugin/archive/refs/heads/master.zipiSonic Analytics Enrichment for Salesforce
Plugin WordPress qui enrichit automatiquement les soumissions Gravity Forms avec les données Matomo avant envoi à Salesforce.
🎯 Objectif
Capturer le contexte web complet de chaque Lead pour :
- Améliorer le scoring (leads "chauds" = parcours long, pages stratégiques)
- Personnaliser l'approche commerciale (connaître l'intérêt réel)
- Mesurer le ROI des campagnes web
📊 Données Capturées (13 champs)
Parcours Web
- Temps passé : Durée totale de la session
- Page d'entrée : Première page visitée
- Parcours complet : Liste des pages consultées
Source & Campagne
- Source web : Google, Facebook, Direct, etc.
- Medium : cpc, email, social, etc.
- Mot-clé : Mot-clé de recherche
Formulaire
- Page formulaire : URL exacte du formulaire
- Type formulaire : Demo, Support, Formation, etc.
- Nom formulaire : Nom Gravity Forms
Engagement
- Nombre de visites : Visites avant soumission
- Première visite : Date de découverte du site
- Pages consultées : Nombre total de pages vues
🚀 Installation
Installation complète détaillée : Voir INSTALLATION.md
Installation rapide :
- Uploader le plugin dans
/wp-content/plugins/ - Activer via WordPress Admin
- Créer Connected App Salesforce (voir guide)
- Configurer dans Réglages → iSonic Analytics
- Tester :
/wp-content/plugins/isonic-analytics-plugin/test-plugin.php
⚙️ Configuration
Un menu dédié iSonic Analytics apparaît désormais dans la barre d’admin WordPress :
iSonic Analytics → Configuration: paramètres Matomo + Salesforce.iSonic Analytics → Logs: visionneuse des dernières entrées[iSonic Analytics ...]issues du fichierWP_DEBUG_LOG(par défautwp-content/debug.log).- Section Test de connexion : boutons pour vérifier l’auth Salesforce et créer un Lead de test (avec campagne auto) en un clic.
Matomo
🎉 Si vous utilisez le plugin Matomo WordPress :
- ✅ Détection automatique - Aucune configuration requise !
- Juste renseigner le Site ID (généralement
1)
Si vous utilisez un Matomo externe :
- URL :
https://matomo.isonic.fr - Site ID :
1 - Auth Token : [Générer dans Matomo → Personal → Security]
Salesforce (single org)
- Une seule org Salesforce configurée.
- Connected App Consumer Key & Secret (obligatoires).
- Mode d’authentification : Client Credentials, Authorization Code (bouton « Connecter Salesforce »), ou Username + Password + Security Token.
📋 Campaigns Salesforce
| Formulaire | Campaign Salesforce | ID |
|---|---|---|
| Inscription Isonic | Contenu pédagogique | 701Jv00000oEgv7IAC |
| Autres formulaires | Site web isonic.fr | 701Jv00000oEi1EIAS |
🏗 Architecture et flux
Deux flux envoient les données vers Salesforce (endpoint unique POST /services/apexrest/MatomoInbound) :
- Soumission (immédiat) : à chaque
gform_after_submission, envoi delead,campaignId,session,visits(données Matomo exhaustives),meta(mode=submission). Si Matomo indisponible : envoi quand même avecvisits=[]etmeta.matomoStatus=unavailable. - Sync périodique (toutes les 5 min) : cron WordPress envoie les nouvelles visites depuis le dernier watermark ; payload
visits+meta(mode=periodic_5min), sans lead.
Documentation détaillée : docs/ARCHITECTURE_2_FLUX.md (schéma payload, idempotence, retry, variables de config).
- Visitor ID : Récupéré côté serveur via le cookie Matomo
_pk_id.{site_id}. Aucun JavaScript front requis pour le tracking. - Matomo : Si le plugin Matomo WordPress est détecté, l’API PHP native est utilisée ; sinon fallback sur l’API HTTP (URL + Auth Token).
- Retry : Backoff progressif sur erreurs transitoires (timeout, 429, 5xx). Aucun secret loggé.
🔧 Développement
Structure
isonic-analytics-plugin/
├── isonic-analytics.php (Main plugin)
├── includes/
│ ├── class-logger.php
│ ├── class-matomo-api.php
│ ├── class-matomo-payload-builder.php
│ ├── class-matomo-sync-cron.php
│ ├── class-salesforce-api.php
│ ├── class-campaign-mapper.php
│ └── class-form-enricher.php
├── admin/
│ └── settings-page.php
├── tests/
│ ├── bootstrap.php
│ ├── Test_Matomo_Payload_Builder.php
│ └── README.md
└── docs/
├── ARCHITECTURE_2_FLUX.md
└── (Documentation technique)
Hooks
Le plugin utilise gform_after_submission pour intercepter les soumissions Gravity Forms.
Logs
Activez WP_DEBUG et WP_DEBUG_LOG dans wp-config.php :
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
Logs dans : fichier défini par WP_DEBUG_LOG (par défaut wp-content/debug.log)
📝 TODO
v1.0 (Fait ✅)
- [x] OAuth2 complet pour Salesforce (Username-Password flow)
- [x] Page settings admin complète
- [x] Boutons "Test Connection" Matomo + Salesforce
- [x] Script de test et validation
v1.1 (À venir)
- [ ] Queue système (fallback si SF down)
- [ ] Dashboard WordPress avec métriques
- [ ] Tests unitaires
🔗 Documentation
Voir dossier docs/ pour documentation complète :
ARCHITECTURE_2_FLUX.md: Deux flux (soumission + cron 5 min), schéma payload, erreurs/fallback, configSPEC_TECHNIQUE.md: Spécifications techniquesSPEC_CHAMPS_ANALYTICS.md: Détail des 13 champsSPEC_MAPPING_CAMPAGNE.md: Mapping formulaires → campaigns
Tests : ./vendor/bin/phpunit (voir tests/README.md).
⚠️ Prérequis
- WordPress 6.0+
- PHP 8.0+
- Gravity Forms 2.5+
- Matomo installé et configuré
- Salesforce avec champs custom déployés
📄 Licence
GPL-2.0+
👤 Auteur
iSonic - https://isonic.fr