Import contacts
Présentation
Le module Import contacts injecte dans le CRM Dolibarr les contacts issus d'exports CSV LinkedIn (format Waalaxy). Chaque ligne du CSV est rapprochée d'un tiers déjà présent dans Dolibarr via le nom de société (company_name), puis poussée sur ce tiers sous forme de fiche contact.
Le module ne crée jamais de nouveau tiers. Seuls les contacts dont la société est déjà connue du CRM sont injectés. Les autres restent en attente d'un rapprochement manuel ou d'un import préalable (Import collectivités, Import entreprises).
Public visé : administrateur Dolibarr qui prépare le CRM avant l'usage du module (création des champs complémentaires, ouverture des droits API, lecture du cadre RGPD applicable).
Ce que le module fait
- Lecture d'exports CSV Waalaxy en UTF-8 (BOM accepté), tolérance sur l'ordre et la casse des colonnes.
- Rapprochement contact → tiers Dolibarr par scoring de recouvrement du nom de société (0 à 100).
- Classement de chaque ligne en trois phases : automatique (score ≥ 70), à vérifier (30 ≤ score < 70), non trouvé (score < 30).
- Création ou mise à jour idempotente du contact, identifié par le couple (tiers, nom, prénom).
- Enrichissement automatique du poste : si la personne figure dans le Répertoire National des Élus (RNE) et que son tiers est une collectivité, le suffixe « Fonction (mandat AAAA → AAAA+6) » est ajouté.
- Journalisation des opérations sans donnée nominative (compteurs seulement).
Ce que le module ne fait pas
- Aucune création de tiers à partir d'un CSV. Le champ
company_namesert uniquement à rapprocher d'un tiers existant. - Aucune suppression de contact. Le module est exclusivement en mode « créer ou mettre à jour ».
- Aucune fusion ni déduplication entre tiers existants.
- Aucune écriture sur la fiche du tiers (seuls les contacts sont touchés).
- Aucune transmission de données vers un service externe.
Prérequis Dolibarr
| Élément | Détail |
|---|---|
| Modules activés | Tiers (Société), Contacts |
| Utilisateur API | Compte dédié recommandé, droits de lecture sur Tiers et de lecture/écriture sur Contacts |
| Champs complémentaires | Trois champs array_options à créer sur la fiche Contact (cf. ci-dessous) |
Données lues depuis le CRM
| Endpoint | Champs utilisés | Usage |
|---|---|---|
GET /thirdparties |
id, name |
Recherche du tiers candidat par token significatif du nom de société |
GET /thirdparties?sqlfilters=… |
id, name, idprof1 |
Lookup exact par nom ou par SIREN |
GET /contacts?sqlfilters=(t.fk_soc:=:N) |
id, lastname, firstname |
Anti-doublon avant écriture |
Aucun autre champ du CRM n'est lu par le module.
Données écrites dans le CRM
Champs standard de la fiche Contact
| Champ | Type | Exemple | Finalité |
|---|---|---|---|
socid / fk_soc |
entier | 1234 |
Tiers de rattachement |
lastname |
texte | DUPONT |
Nom, en majuscules |
firstname |
texte | Marie |
Prénom, capitalisé |
poste |
texte (240 c.) | Directrice générale — Maire (mandat 2020 → 2026) |
Poste source du CSV, suffixé avec la fonction d'élu et la période de mandat si applicable |
email |
texte | m.dupont@ville.fr |
E-mail professionnel (priorité au champ proEmail du CSV) |
phone_pro |
texte | 05 49 12 34 56 |
Téléphone professionnel |
socialnetworks_linkedin |
texte | https://linkedin.com/in/marie-dupont |
URL du profil LinkedIn |
note_public |
texte multilignes | (cf. exemple ci-après) | Résumé lisible regroupant poste, localisation, LinkedIn, e-mail personnel, téléphone et source |
statut |
entier | 1 |
Contact actif |
Exemple de note_public générée :
Poste : Directrice générale
Localisation : Poitiers
LinkedIn : https://linkedin.com/in/marie-dupont
E-mail (perso) : marie.dupont@gmail.com
Téléphone : 05 49 12 34 56
Source : Waalaxy (LinkedIn)
Champs complémentaires à créer sur la fiche Contact
| Code extrafield | Type | Exemple | Finalité |
|---|---|---|---|
urllinkedin |
Texte | https://linkedin.com/in/marie-dupont |
URL LinkedIn (doublon volontaire de socialnetworks_linkedin pour les vues qui exploitent les array_options) |
linkedin |
Booléen | 1 |
Indicateur de présence LinkedIn, utile pour les filtres de liste |
emailperso |
Texte | marie.dupont@gmail.com |
E-mail personnel, distinct de l'e-mail professionnel |
Les codes sont préfixés options_ côté API Dolibarr (options_urllinkedin, options_linkedin, options_emailperso). Si l'un de ces champs n'est pas créé, la valeur correspondante est silencieusement ignorée par Dolibarr et l'import se poursuit sans erreur.
Endpoints appelés
| Méthode | URL | Quand | Idempotent |
|---|---|---|---|
GET |
/api/index.php/thirdparties |
Recherche floue d'un tiers candidat | Oui |
GET |
/api/index.php/thirdparties?sqlfilters=… |
Recherche exacte par nom ou SIREN | Oui |
GET |
/api/index.php/contacts?sqlfilters=(t.fk_soc:=:N) |
Anti-doublon avant écriture | Oui |
POST |
/api/index.php/contacts |
Création d'un contact inconnu | Oui (clé tier + nom + prénom) |
PUT |
/api/index.php/contacts/{id} |
Mise à jour d'un contact existant | Oui |
Aucun autre endpoint n'est appelé par le module.
Limitations
- Un contact dont la société n'est pas reconnue dans Dolibarr reste en phase « non trouvé » et n'est pas poussé. L'opérateur peut le rattacher manuellement à un tiers depuis l'interface, ou attendre un import collectivités / entreprises préalable.
- Le rapprochement repose sur le champ
company_namedu CSV. Une orthographe trop éloignée du nom Dolibarr ramène un score faible et fait basculer la ligne en phase « à vérifier ». - L'enrichissement « mandat élu » repose sur le référentiel RNE (Répertoire National des Élus) ingéré dans Z1, la base locale Oraklic. Z1 ne quitte jamais le poste de l'opérateur : seuls les champs documentés plus haut sont écrits dans le CRM client. Si Z1 n'est pas peuplé, le poste est conservé tel quel.
- Le module ne lit jamais le CRM en arrière-plan : toute requête API est déclenchée par un import explicite lancé depuis l'interface.
- La taille maximale d'un import dépend du quota REST de l'utilisateur API Dolibarr. Aucun plafond applicatif n'est imposé côté Oraklic.
Conformité RGPD
Oraklic agit en qualité de sous-traitant au sens de l'article 28 du RGPD pour le compte du client, responsable de traitement, qui détient et opère le CRM Dolibarr.
Données traitées par ce module
| Catégorie | Champs concernés | Origine |
|---|---|---|
| Identification | nom, prénom | CSV opérateur |
| Coordonnées professionnelles | e-mail pro, téléphone pro, URL LinkedIn | CSV opérateur |
| Coordonnée personnelle | e-mail personnel (si présent dans l'export) | CSV opérateur |
| Activité professionnelle | poste, employeur (nom de société) | CSV opérateur |
| Mandat électif (le cas échéant) | fonction, date de début de mandat | Z1 (référentiel RNE public) |
Aucune autre catégorie de donnée n'est manipulée. En particulier : aucune donnée sensible au sens de l'article 9 du RGPD (santé, opinions politiques, etc.) n'est lue, ni écrite.
Finalité
Injection de contacts professionnels existants (export LinkedIn / Waalaxy de l'opérateur) dans le CRM du client, en vue d'opérations de prospection commerciale B2B menées par le client lui-même.
Sous-traitants ultérieurs
Aucun. Le module fonctionne intégralement sur le poste de l'opérateur. Aucun service tiers, aucune API externe, aucun stockage cloud n'est sollicité.
Flux de données
CSV opérateur ──► RAM Oraklic ──► API REST Dolibarr (HTTPS) ──► CRM client
│
└──► (optionnel) lookup Z1 local pour enrichissement mandat
Z1 est une base de référence publique locale (RNE, BANATIC, INSEE, etc.). Elle n'est jamais transmise au CRM ; seuls les champs documentés plus haut sont écrits.
Conservation des données côté Oraklic
| Donnée | Persistée par Oraklic | Durée |
|---|---|---|
| Contenu du CSV importé | Non | Lecture RAM uniquement |
| Résultat du matching | Non | RAM, purgé en fin d'import |
| Données du CRM lues | Non | RAM, purgé en fin d'import |
| Journaux applicatifs | Compteurs uniquement | Selon politique de logs du poste |
Aucune donnée nominative n'est conservée par Oraklic au-delà de la durée de l'import. Le CRM client reste l'unique référentiel durable.
Logs
Les journaux applicatifs ne contiennent ni nom, ni prénom, ni e-mail, ni téléphone, ni contenu d'export. Sont consignés :
- nombre de lignes lues, créées, mises à jour, en erreur ;
- identifiant numérique du tiers de rattachement ;
- classe d'erreur en cas d'échec (
TimeoutError,HTTPError, etc.) sans payload.
Exercice des droits des personnes concernées
Les droits d'accès, de rectification, d'effacement, d'opposition et de portabilité s'exercent intégralement via le CRM du client, qui détient seul les données après import. Oraklic n'est pas en mesure de répondre à une demande d'exercice de droit puisque le module ne conserve aucune donnée après import.
Base légale (à confirmer avec le DPO du client)
Selon la nature de la relation entre le client et la personne concernée :
- intérêt légitime de prospection B2B (art. 6.1.f RGPD) lorsque la personne est contactée dans un cadre strictement professionnel, sur des coordonnées professionnelles, pour une offre en lien avec son activité ;
- consentement préalable (art. 6.1.a RGPD) dans les autres cas, notamment lorsque l'e-mail personnel est utilisé.
Le client (responsable de traitement) est seul habilité à arrêter ce choix et à documenter sa base légale dans son registre des traitements.