Dolibarr : comment réussir Google Sheets avec des exemples concrets

Dolibarr est un ERP / CRM léger, open‑source, qui centralise la gestion des devis, factures, stocks, contacts, etc.
Google Sheets est, quant à lui, la solution collaborative de tableur en ligne de Google.
Lorsque les deux sont combinés, on obtient une vue à la fois opérationnelle (via Dolibarr) et analytique / partagée (via Sheets) de vos données métier.

Dans cet article, nous allons détailler pas à pas comment :

  1. Exporter des données de Dolibarr vers Google Sheets.
  2. Importer des données depuis Sheets vers Dolibarr.
  3. Automatiser le tout avec des scripts ou des connecteurs low‑code.

Tout est illustré par des exemples concrets (ex. : factures en attente, stocks critiques, suivi des contacts). Vous n’avez besoin que d’un accès administrateur à Dolibarr et d’un compte Google (Sheets) pour reproduire les scénarios.


1. Pourquoi connecter Dolibarr à Google Sheets ?

Besoin métier Apport de Google Sheets
Partage instantané avec des équipes qui ne disposent pas de Dolibarr (ex. partenaires, services marketing). Interface familière, édition en temps réel, commentaires.
Analyse rapide de tendances (facturation par mois, rotation des stocks). Fonctionnalités de formules, graphiques, tableaux croisés dynamiques.
Reporting automatisé sans copier‑coller manuel. Possibilité d’utiliser Apps Script et des déclencheurs (onEdit, onOpen).
Export vers d’autres outils (ex. tableau de bord Power BI). Connexion directe à Google BigQuery ou à Looker Studio.
Gestion de données dynamiques (ex. liste de prix fournisseurs qui évolue). Modifications instantanément propagées vers tous les utilisateurs.

En bref, Google Sheets devient la couche « lecture / analyse » de vos processus Dolibarr tout en restant entièrement contrôlée par les utilisateurs finals.


2. Méthodes d’intégration

Méthode Niveau de technicité Points forts Points faibles
Export CSV natif (Dolibarr → fichier CSV) → Import manuel dans Sheets Très faible Simple, aucune installation supplémentaire. Pas d’automatisation, nécessite une étape manuelle à chaque fois.
Connexion API REST de Dolibarr (ou module “Dolibarr Export/Import” via CSV) Moyen Possibilité de scripter l’export (ex. curl, Python). Nécessite des compétences en programmation.
Connecteur web‑hook (Zapier / Make / n8n) Faible à moyen Déclencheurs & actions « no‑code », planification facile. Limite des free‑tier, coût à grande échelle.
Google Apps Script + Web Service Dolibarr Moyen à avancé Automatisation complète, possibilité de transformer les données en temps réel. Nécessite du code JavaScript côté serveur.
Docker / Reverse‑proxy avec API (Dolibarr‑API‑Connector) Avancé Solution maintenable sur serveur dédié. installation & maintenance plus lourde.

Dans la plupart des petites et moyennes structures, la solution « CSV → Import » associée à un script de rappel automatique suffit. Nous détaillerons ci‑dessous les deux approches les plus populaires :

  • A) Export CSV via l’interface Dolibarr (action rapide). * B) Automation via Google Apps Script + Web Service Dolibarr.


3. Export CSV de Dolibarr – Exemple concret « Factures en attente »

3.1. Étape 1 – Générer le rapport dans Dolibarr1. Connectez‑vous à Dolibarr.

  1. Accédez au menu « Factures → Devis/ factures à payer » (ou « Factures → Factures à payer »).
  2. Cochez les cases à cocher de la/les facture(s) à exporter (filtre par statut En attente).
  3. En haut à droite, cliquez sur « Exporter »« CSV ». 5. Un fichier export.csv est généré contenant les colonnes :

    utf8
    ID,Reference,Date_Echéance,Montant_TTC,Statut,Client,Adresse,Produit...

3.2. Étape 2 – Placer le CSV sur Google Drive

  1. Ouvrez Google Drive > Nouveau > dossier » Factures Dolibarr« (ou créez‑le).
  2. Déposez le fichier CSV dans ce dossier.

3.3. Étape 3 – Importer automatiquement dans Sheets (Apps Script)

Nous allons écrire un script qui, tous les jours à 08 h, lit le CSV depuis Drive et le colle dans un onglet dédié.

/**
* Fonction déclenchée par un déclencheur temporel (time‑driven)
* Permet d'importer le CSV "export_factures.csv" dans l'onglet "FacturesEnAttente".
*/
function importFacturesEnAttente() {
const dossierId = '1ABcDeFGhIjKlMnOpQrStUvWxYz'; // ID du dossier Drive contenant le CSV
const fichierNom = 'export_factures.csv';
const feuillecible = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID')
.getSheetByName('FacturesEnAttente');
// Ouvre le fichier CSV depuis Drive
const fichier = DriveApp.getFolderById(dossierId).getFilesByName(fichierNom).next();
const contenu = Utilities.parseCsv(fichier.getBlob().getDataAsString('utf-8'));
// Efface le contenu précédent
feuillecible.clearContents();
// Copie les nouvelles données
feuillecible.getRange(1, 1, contenu.length, contenu[0].length).setValues(contenu);
}

3.4. Activer le déclencheur

  1. Ouvrez l’éditeur Apps Script (Extensions > Apps Script).
  2. Copiez‑collez le script ci‑dessus.
  3. Sauvegardez (Ctrl+S).
  4. Dans le menu Déclencheurs (icône horloge), ajoutez un déclencheur de type « Temps‑déclenché » :

    • Fonction : importFacturesEnAttente
    • Événement source : Timer
    • Type de déclencheur : Toutes les heures ou Tous les jours à 08:00 (heure du compte Google).
  5. Autorisez les permissions (drive.read, spreadsheets).

Résultat : chaque jour, le cahier FacturesEnAttente se met à jour avec les dernières factures en attente de Dolibarr, sans aucun copier‑coller manuel.


4. Importer des données depuis Google Sheets vers Dolibarr

4.1. Cas d’usage : Création de nouveaux contacts

4.1.1. Format du tableau dans Sheets

Dans l’onglet « NouveauxContacts » du même classeur, organisez les colonnes ainsi :

A B C D
Nom Civilité E‑mail Téléphone
Dupont Jean Monsieur jean.dupont@email.com 06 12 34 56 78

4.1.2. Script d’import (Apps Script)

/**
* Ajoute automatiquement les lignes du tableau "NouveauxContacts"
* comme nouveaux contacts dans le module "CRM > Contacts" de Dolibarr.
*/
function importNouveauxContacts() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const onglet = ss.getSheetByName('NouveauxContacts');
const data = onglet.getRange(2, 1, onglet.getLastRow()-1, 4).getValues(); // ignorer l'en‑tête
data.forEach(row => {
const [nom, civilite, email, tel] = row;
const payload = {
"nom": nom,
"civilite": civilite, // 1=M, 2=F, 3=Autre
"email": email,
"phone": tel,
"status": "active"
};
// Appel API REST de Dolibarr (login via token ou login/password)
const apiUrl = 'https://votreserveur.com/dolibarr/api/cardclient/'; // endpoint générique
const options = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload),
headers: {
'Authorization': 'Basic ' + Utilities.base64Encode('login:password') // Basic Auth
}
};
const response = UrlFetchApp.fetch(apiUrl, options);
Logger.log('Réponse : ' + response.getContentText());
});
}

Note :

  • La URL api/cardclient/ correspond à l’API cardclient de Dolibarr (gestion des contacts).
  • Si vous avez configuré l’authentification API Token, remplacez 'Authorization' par le token ('Bearer <TOKEN>').
  • Vous pouvez sécuriser l’accès API via un token personnel ou un OAuth dédié (voir la configuration dans Dolibarr → Administration > Setup > API).

4.1.3. Déclencheur d’import

  • Ajoutez le même déclencheur onEdit ou onOpen pour appeler importNouveauxContacts dès qu’une nouvelle ligne est ajoutée. – Exemple avec déclencheur simple :
    function onEdit(e){
    const sheet = e.range.getSheet();
    if (sheet.getName() === 'NouveauxContacts' && e.range.getRow() > 1 && e.range.getColumn() === 1){
    importNouveauxContacts();
    }
    }

Résultat : chaque fois qu’une équipe ajoute un contact dans le tableau NouveauxContacts, le script le transmet automatiquement à Dolibarr → le contact apparaît immédiatement dans le CRM.


5. Modèles de tableau Google Sheets orientés « données Dolibarr »

5.1. Exemple 1 – Tableau de suivi des stocks critiques

Référence Nom produit Stock actuel Seuil d’alerte Commande à passer
102345 Câble USB 2 m 12 10 =SI(C2<D2;"OUI";"NON")
209874 Chargeur 5 V 3 5 =SI(C3<D3;"OUI";"NON")

  • Source : Export CSV de Dolibarr → Onglet Produits.
  • Formule : =SI(Stock<Seuil,"OUI","NON") indique en rouge les lignes où la colonne Commande à passer vaut OUI.
  • Graphique : Ajoutez un graphique à barres du nombre de produits en dessous du seuil, pour visualiser la tendance hebdomadaire.

5.2. Exemple 2 – Dashboard mensuel des factures réglées

Mois Factures créées Factures payées % payé
01/2025 =NBVAL(Factures!A2:A100) =NBVAL.SI(Factures!C2:C100;"payée") =B2/A2

  • Source : Export de la liste des factures via l’API facture → importée chaque début de mois.
  • Visualisation : Insérez un graphique en cascades pour montrer le flux ouvert → payé.

5.3. Exemple 3 – Suivi des appels commerciaux (CRM)

Numéro de deal Client Date d’appel Produit ciblé Réponse (Oui/Non) Prochain contact
1001 Société X =AUJOURDHUI() Service Cloud Oui =AUJOURDHUI()+7

  • Source : Fiches projets du module Dolibarr CRM → Opérations commerciales.
  • Automatisation : Un simple onEdit met à jour la colonne Prochain contact avec la date prévue du prochain appel.


6. Automatisation avancée avec Google Apps Script + Webhook Dolibarr

6.1. Pourquoi un webhook ?

Dolibarr possède un module “Webhooks” (ajouté depuis la version 20+) qui permet d’envoyer une requête HTTP dès qu’un événement survient (ex. création d’une facture). Vous pouvez ainsi pousser automatiquement la donnée vers Google Sheets sans passer par l’export CSV.

6.2. Étapes de configuration

Étape Action
1 Dans Dolibarr → Administration > Setup > Webhooks, ajoutez une nouvelle URL.
2 URL cible : https://script.google.com/macros/s/<DEPLOYMENT_ID>/exec (URL du script Apps Script).
3 Choisissez l’événement : Facture créée.
4 Définissez le format : JSON ({ "ref_facture":"12345", "date":"2025‑10‑01", "total":1250 }).
5 Sauvegardez.

6.3. Script Apps Script côté serveur (déployé en tant que Web App)

« `javascript/**

  • Webhook reçu par Dolibarr. Ajoute la ligne dans l’onglet "FacturesEnDirect".
  • Déploiement : Publier > Déployer en tant que Web App,
    • Exécuter l’application : « Moi-même »,

    • Qui a accès : « Toute personne disposant du lien ».
      */
      function doPost(e) {
      const payload = JSON.parse(e.postData.contents);

    const ss = SpreadsheetApp.openById(‘YOUR_SPREADSHEET_ID’);
    const sheet = ss.getSheetByName(‘FacturesEnDirect’) ||
    ss.insertSheet(‘FacturesEnDirect’);

    // Ajoute les valeurs en bout de feuille
    const nouvellesValeurs = [[
    payload.ref_facture,
    payload.date,
    payload.total,
    new Date() // date de réception
    ]];

    sheet.appendRow(nouvellesValeurs[0]);
    return ContentService.createTextOutput(‘OK’);
    }

Déploiement :

  1. Dans l’éditeur Apps Script → Fichier > Publier > Déployer comme application web. > 2. Copiez l’URL du Web App (incluant le exec).
  2. Collez cette URL dans le champ « URL cible » du hook Dolibarr.
  3. Testez avec l’événement Facture créée → verrez apparaître une nouvelle ligne dans le tableau FacturesEnDirect.

Avantage : dès qu’une facture est générée dans Dolibarr, la ligne apparaît instantanément dans Sheets, prête à être analysée ou à déclencher d’autres actions (ex. envoi d’un mail de rappel).


7. Bonnes pratiques & pièges à éviter

Bonnes pratiques Pièges fréquents
Nommer clairement les onglets (FacturesEnAttente, NouveauxContacts). Oublier de mettre à jour les références de feuille dans le script lorsqu’on ajoute ou renomme un onglet.
Utiliser des déclencheurs temporels** (time‑driven) pour planifier les imports/exports. Créer des boucles infinies via onEdit qui ré‑exécute le même script et bloque le classeur.
Sauvegarder régulièrement le classeur (versionnage Google Drive). Négliger les quota d’Apps Script (temps d’exécution ≤ 6 min).
Sécuriser l’accès API Dolibarr (token, IP whitelist). Exposer des identifiants en clair dans le code (déplacer les credentials dans Properties Service).
Tester dans un environnement de dev (classeur dédié) avant de pousser en prod. Supposer que le CSV demeure toujours bien ordonné: des mises à jour de Dolibarr peuvent modifier l’ordre des colonnes.
Archiver les exports (ex. Factures_2025_10_01.csv) dans Drive pour traçabilité. Ne pas manage les conflits de verrous lorsque plusieurs scripts écrivent sur la même feuille simultanément.


8. Checklist rapide pour passer à la production| ✅ | Action |

|—-|——–|
| 1 | Exporter un exemple CSV de chaque module Dolibarr utilisé (factures, contacts, produits). |
| 2 | Créer les onglets correspondants dans Google Sheets et vérifier la correspondance des colonnes. |
| 3 | Déployer le script d’import (CSV → Sheets) avec déclencheur quotidien. |
| 4 | Mettre en place le webhook si vous avez besoin d’une synchronisation en temps réel. |
| 5 | Configurer les déclencheurs d’import (sur édition ou onOpen). |
| 6 | Sécuriser les identifiants (Basic Auth → token, Properties Service). |
| 7 | Tester un scenario complet : création d’un contact → validation dans Dolibarr → apparition dans Sheets. |
| 8 | Documenter le processus (doc interne, screenshots) pour la pérennité. |
| 9 | Programmablement vérifier les quotas d’exécution (Apps Script > Rapports). |
| 10| Planifier un audit mensuel des données afin de nettoyer les doublons ou les lignes orphelines. |


9. Conclusion

Dolibarr fournit déjà des outils d’export/import très simples, mais Google Sheets offre une couche collaborative et analytique qui rend ces données accessibles à tous les acteurs de l’entreprise. En suivant les deux modèles présentés :

  1. Export / import (CSV → Sheets + Apps Script), idéal pour les besoins ponctuels ou hebdomadaires.
  2. Webhook direct + Apps Script (temps réel), parfait pour les flux continus (nouveaux contacts, factures, stocks critiques).

Vous disposerez alors d’un écosystème de données ouvert, où chaque ligne de vos processus Dolibarr peut être visualisée, analysée et agie en temps réel via les puissants outils de Google Sheets.

Astuce bonus : Combinez les deux approches – exportez chaque nuit pour garder une sauvegarde structurelle, tout en utilisant le webhook pour les changements critiques qui nécessitent une réaction immédiate.

En maîtrisant ces intégrations, vous gagnerez en efficacité opérationnelle, en transparence cross‑équipe, et en capacité d’analyse sans devoir investir dans des solutions ERP coûteuses.

Bonne intégration ! 🚀


Sources et références utiles

N’hésitez pas à adapter les scripts à votre contexte (noms d’onglets, URLs, auth) et à les placer sous versionning (Git) pour des évolutions futures.


Vous avez besoin d’un exemple plus spécifique (ex. gestion des lots de produits, suivi des temps de facturation…) ? Faites‑le moi savoir, je peux vous fournir le code adapté.

Publications similaires