Passer au contenu
megapromotingDiscutons

Expertise · CRM et ventes

Un système où l’on voit qui a été touché, par quel canal et ce qui vient ensuite.

Nous construisons le système commercial d’une organisation : organisations et contacts, un parcours d’étapes, les canaux qui apportent les données automatiquement — appel, email, formulaire, agent vocal — et les freins qui arrêtent les envois avant qu’ils ne deviennent un problème. Nous ne vendons pas notre CRM ; nous en construisons un pour la façon dont vous travaillez.

Déjà construitDeux implémentations propres, en production, citées ci-dessous. (1) MEGA CRM — le système avec lequel notre équipe gère sa propre activité commerciale : `server.js` a 9.516 lignes et 99 routes HTTP, le dépôt contient 96 migrations SQL et environ 95.000 lignes de TypeScript dans l’interface, et le dernier commit date du 18 août 2026. (2) Les connecteurs CRM de la plateforme Kallina : 12 fonctions serveur pour amoCRM, 4 pour Bitrix24, plus un flux OAuth documenté pour Zoho CRM et 10 fonctions pour Google Sheets. La précision qui compte : **MEGA CRM n’est pas à vendre.** Nous le montrons comme preuve du métier, pas comme produit — il n’a pas d’isolation stricte des données entre clients et n’a pas de flux d’installation qui ne suppose pas d’accès au serveur. Le service est « nous construisons un système comme celui-ci pour vous », pas « nous vous donnons une licence sur le nôtre ».

La plupart des entreprises n’ont pas un problème de CRM, elles ont un problème de suivi : on ne sait pas qui a été contacté, par quel canal, ce qui a été dit et ce qui vient ensuite. Un outil prêt à l’emploi résout cela quand votre travail ressemble au travail pour lequel l’outil a été conçu. Quand ce n’est pas le cas — parce que vous travaillez en même temps avec des administrations publiques et des entreprises privées, ou parce que la moitié des contacts viennent d’un agent vocal — vous finissez par malmener l’outil, et l’équipe garde la vérité dans un fichier séparé. Alors, il vaut la peine de construire quelque chose.

Le système que nous montrons comme preuve est celui avec lequel nous travaillons nous-mêmes. Il est structuré en projets séparés, chacun avec son type d’organisation et son schéma de champs, afin que la même application fonctionne à la fois pour une mairie et pour une entreprise privée, sans nouvelles colonnes dans la base à chaque nouveau type. Sous l’organisation se trouvent les contacts, au-dessus se trouvent les campagnes. Un lead progresse à travers un parcours de sept stades, de « non contacté » à « contrat signé », et peut être touché par neuf canaux différents, de l’appel de l’agent vocal à la visite.

La partie difficile, et celle qu’on apprend à ses dépens, ce n’est pas l’envoi. C’est l’arrêt. Le système comporte des heures de travail écrites dans le code, des listes d’exclusion, une déduplication sur l’adresse écrite en minuscules — et non sur l’organisation —, une période de refroidissement entre les campagnes, un plafond quotidien partagé entre les campagnes et un interrupteur qui refuse de démarrer l’orchestrateur, sans possibilité de contournement. Chacun d’eux a été ajouté après qu’il a manqué une fois. Nous les énumérons non pas comme une liste de fonctionnalités, mais comme une liste de leçons.

La deuxième chose que nous construisons presque à chaque fois, c’est l’alimentation automatique. Un CRM dans lequel les données sont saisies à la main se vide en trois semaines. Chez nous, l’appel de l’agent vocal s’écrit tout seul sur la fiche de l’organisation, avec transcript et résumé, et fait avancer le lead sur le parcours si le résultat de l’appel le justifie. Les réponses aux emails sont relevées de la boîte de réception toutes les dix minutes et reliées à l’envoi qui les a provoquées. Les ouvertures et les clics sont suivis séparément. L’humain intervient pour décider, pas pour saisir les données.

Prévention du spam dans le CRM — les demandes qui méritent un suivi · vidéo en roumain, avec sous-titres et transcription en français

La transcription complète

Bonjour ! Dans l’analyse d’aujourd’hui, nous décortiquons un problème que toute entreprise qui veut scaler finit par rencontrer à un moment donné. Comment automatiser exactement la prospection commerciale sans que tout se transforme en spam agaçant et agressif ? Nous voulons grandir, nous voulons optimiser, clairement. Mais aujourd’hui, nous regardons sous le capot d’un matériel technique fascinant pour voir comment on empêche le spam grâce à exactement 6 mécanismes clairs, en anneau, intégrés dans un système vraiment sûr. Il ne s’agit pas seulement des réglages standards que nous cochons et oublions, mais d’architectures réelles, de faits et de chiffres. Allons voir les données ! Bon, en bref, voici la structure de notre discussion. Nous commençons par le problème de l’accélération sans freins, puis nous analysons une étude de cas, l’incident des 42 messages, nous passons au cœur de l’analyse, c’est-à-dire les 6 mécanismes de protection, nous parlons de la bonne gestion des désabonnements et nous terminons avec le dilemme classique : quand faut-il construire un système et quand vaut-il mieux l’acheter.

Commençons ! Donc, la question essentielle avec laquelle nous partons est celle-ci. Comment nous assurer que l’automatisation que nous mettons en place ne devient pas tout simplement du spam ? C’est une ligne incroyablement fine ici. L’intention derrière est toujours bonne, nous voulons contacter des gens, générer des ventes, mais, si le système est laissé à accélérer aveuglément, sans des vérifications techniques très strictes codées directement dans sa structure, l’impact sur la marque peut être désastreux. Nous arrivons à la section 1, accélération sans freins. Regardons le problème fondamental de l’évidence dans ces systèmes automatisés. Pensez-y comme à une voiture très puissante, mais sans système de freinage. Quand un logiciel standard ne s’aligne pas avec la réalité quotidienne du travail, les choses dérapent vite.

Par exemple, disons que l’équipe interagit à la fois avec des administrations publiques et avec des entreprises privées. Des structures de décision complètement opposées, non ? Leurs données ne rentrent tout simplement pas dans les mêmes champs rigides d’un CRM générique. Et que se passe-t-il en pratique ? Les gens commencent à garder la vérité séparément, dans des fichiers Excel ou des notes sur le bureau, tandis que l’automatisation principale continue de tourner à vide sur de mauvaises données. Cela veut tout simplement dire chaos. Et notre source a ici une citation absolument géniale, une vérité brutale du secteur. Un CRM dans lequel les données sont écrites à la main se vide en 3 semaines. C’est très logique. Les gens se fatiguent, des erreurs apparaissent, et le moral baisse.

Les commerciaux doivent construire des relations, pas être des robots de saisie de données. Qu’il s’agisse d’un voice agent intelligent qui transcrit automatiquement les appels, ou d’e-mails qui se synchronisent tout seuls en arrière-plan toutes les 10 minutes, l’idée est claire. L’alimentation automatique des données n’est plus un luxe. C’est la base obligatoire de tout système fonctionnel. Passons à la section deux, l’incident des 42 messages. Décortiquons l’anatomie d’un échec réel. 42. Ce n’est pas juste un nombre quelconque, mais une histoire réelle issue d’une campagne de prospection qui a déclenché une vraie réforme technique. Vous vous rendez compte ? Une seule boîte mail a reçu exactement 42 messages en l’espace de quelques heures, le même jour. Évidemment, l’équipe technique a pensé d’abord : ok, c’est un bug, une simple boucle dans le code qui envoie à l’infini.

Mais quand elle a regardé de plus près dans la base de données, la réalité était bien plus complexe que cela. L’explication ? Le système avait été configuré pour extraire et envoyer des messages par organisation, et non par adresse e-mail. Ainsi, du point de vue logique, l’algorithme avait parfaitement fait son travail. Il avait trouvé 42 entreprises distinctes juridiquement. Le problème, et c’est une réalité que nous voyons souvent sur le marché local, c’était que ces 42 entités utilisaient exactement la même adresse e-mail. Qu’il s’agisse de celle de la société mère, ou de celle du même comptable externe qui gérait des dizaines d’entreprises. Les entités étaient uniques sur le papier, mais la destination finale du message était une seule et même adresse.

Et pour remettre les choses en perspective, vous savez combien de personnes réelles, en chair et en os, ont été touchées par cette avalanche de messages ? Seulement 11. 11 personnes qui géraient ces dizaines d’entreprises. Cet incident a démontré une chose très claire. Les bonnes intentions et un code qui semble correct au premier regard ne suffisent jamais. La base de données a toujours des associations invisibles, et le système doit les anticiper. Ce qui nous amène à la partie la plus importante, la section 3. Les six mécanismes de protection, c’est-à-dire les freins codés directement au cœur du système. Voici la solution. La source détaille un anneau de protection composé de six mécanismes distincts qui se vérifient les uns les autres.

1. La mise en place d’horaires de travail stricts, entre 8 et 18. Personne ne veut un e-mail de vente un dimanche à 3 heures du matin. 2. Des listes d’exclusion permanentes, c’est-à-dire le blocage des institutions sensibles, comme les écoles ou les ambassades. 3. Et cela aurait évité l’incident précédent, la déduplication obligatoire sur l’adresse e-mail mise en minuscules, et non sur le nom de l’entreprise. 4. Une période de refroidissement de 5 jours pour toute adresse contactée, afin d’éviter d’étouffer l’audience. 5. Des plafonds journaliers stricts pour ne pas fâcher les filtres anti-spam globaux. Et, enfin, le sixième mécanisme, le bouton de panique. Parmi tous, ce mécanisme 6, c’est-à-dire le kill switch, ou interrupteur d’urgence, est une pièce maîtresse.

Il a été mis en place exactement après cet incident des 42 messages. Qu’est-ce que c’est, en fait ? Une simple variable qui, si elle est activée, interdit tout simplement au système central de démarrer. Sans exception, sans aucune commande cachée d’écrasement dans le code. Toute architecture sérieuse d’automatisation a besoin d’un tel bouton physique, au sens figuré, sur lequel n’importe qui dans le management puisse appuyer sans avoir de connaissances en programmation. Nous passons à la quatrième section, la gestion correcte des désabonnements. Parce que, attention, cela veut dire bien plus qu’un simple lien placé à la fin de la page. Une fois que vous avez envoyé le message, si la personne veut sortir de la base, le processus doit être irréprochable et blindé.

L’analyse nous montre un processus solide en trois étapes. Étape 1. Le désabonnement depuis l’en-tête en un seul clic, conforme aux nouveaux standards mondiaux, comme le RFC 8058. Étape 2. Un centre de préférences visuel, où la personne peut choisir quel type de message elle ne veut plus recevoir. Mais l’étape 3 est, en fait, la plus critique et celle où beaucoup de systèmes se trompent. La suppression complète. Cela ne veut pas dire mettre une coche inactive. Cela veut dire supprimer l’adresse de, attention, 6 tables différentes de base de données, plus la mettre sur une liste noire permanente. Ce n’est qu’ainsi que vous vous assurez que cette adresse ne réapparaît pas comme par magie lors de la prochaine importation massive de données.

Et nous ne parlons pas seulement de technologie. Nous parlons de respect et de conformité légale directement dans le pied de page de l’e-mail. Qui êtes-vous ? Qui est le DPO ? Quel est le fondement juridique exact sur la base duquel vous avez envoyé le message ? Et surtout, de quel registre public avez-vous extrait les données au départ ? Notre source souligne une règle d’or. Ces fondements doivent être revérifiés à chaque modification législative. Pourquoi ? Parce que vous pouvez avoir le système le plus cher au monde. Si, sur la base d’une loi abrogée, vous avez transformé la technologie en un risque financier majeur pour l’entreprise. Nous arrivons à la dernière section, la cinquième. Quand construire et quand acheter ?

Voyons la bonne réponse pour une infrastructure commerciale mature. La documentation aborde cette décision de manière extrêmement objective. Un CRM prêt à l’emploi, clé en main, est absolument idéal. Avec une seule condition majeure. Que votre flux de travail s’adapte parfaitement à la logique pensée par les créateurs de la plateforme. Cependant, la décision de construire une solution personnalisée devient la seule voie dans trois situations claires. Lorsque vous interagissez avec des types d’organisations très différents, lorsque vous avez un volume massif d’automatisations dans lequel le travail manuel devient impossible et, surtout, lorsque vous avez des règles de protection strictes, comme ces six mécanismes qu’un logiciel prêt à l’emploi ne peut tout simplement pas vous garantir à un niveau aussi profond.

La bonne nouvelle ? Construire quelque chose de sûr en arrière-plan ne veut pas dire jeter par la fenêtre les outils que l’équipe connaît déjà. Ces mécanismes de protection peuvent fonctionner silencieusement comme une couche invisible de sécurité, tout en se connectant aux interfaces habituelles. Il existe des architectures démontrables qui ont des connecteurs exécutant des dizaines de fonctions bidirectionnelles avec des systèmes populaires comme Amos ERM, Bitrix24, Zohos ERM ou même les classiques tableaux Google Sheets. En bref, le noyau de sécurité reste intact, mais l’expérience utilisateur est tout aussi conviviale. Et ainsi, le matériel nous laisse un sujet de réflexion assez inconfortable que cela vaut la peine d’emporter avec nous. Un système commercial super avancé que seul le programmeur qui l’a écrit sait encore comment arrêter est-il vraiment un super atout pour l’entreprise ou, en fait, un risque inacceptable ?

Au bout du compte, la transparence, cet interrupteur d’urgence placé bien en vue et une documentation claire sont les éléments qui distinguent une simple machine aveugle d’un système d’affaires réellement évolutif, professionnel et responsable. J’espère que cette dissection des mécanismes aura un peu plus éclairé la manière dont une automatisation correcte devrait être conçue. À bientôt !

Ce que cela comprend

Le travail, par composantes

Les données entrent dans le flux, avec déduplication sur trois clés

Un fichier allant jusqu’à 50 MB est chargé et traité en flux, par lots de 200 lignes, afin de ne pas dépasser le délai d’exécution de la base, et la progression revient en temps réel, une ligne pour chaque étape. Avant l’import, un index de déduplication est construit sur trois clés — le code fiscal, l’adresse email et le téléphone —, et les adresses sont validées : format, domaines jetables, modèles invalides. La même organisation n’entre pas deux fois sous deux dénominations écrites différemment.

Chaque contact se note sur la fiche de l’organisation

Neuf canaux de communication, de l’agent vocal et de l’appel humain jusqu’à la visite, et un parcours de sept stades avec de vraies étiquettes : non contacté, contacté, réponse reçue, offre envoyée, intéressé actif, négociation, contrat signé. À côté de chaque stade figure le pourcentage qui devrait passer à l’étape suivante — non pas comme promesse, mais comme repère pour celui qui regarde l’entonnoir et veut savoir où cela se perd.

L’appel de l’agent vocal fait avancer le lead tout seul

Quand l’agent termine un appel, le résultat entre dans le système via un webhook dont la signature est vérifiée : transcript, résumé, sentiment, adresse de l’enregistrement, durée. L’organisation est identifiée par le numéro de téléphone, au moyen d’une fonction écrite dans la base pour les formats sous lesquels les numéros apparaissent dans les données réelles, puis l’appel est lié à sa fiche. Si le résultat est « intéressé » ou « rendez-vous programmé », le lead progresse automatiquement sur le parcours et sa date du dernier contact est mise à jour.

L’envoi a des freins, pas seulement de l’accélération

Heures de travail écrites dans le code : 08:00–18:00, fuseau horaire de Chișinău, du lundi au samedi. Listes d’exclusion pour les écoles, lycées, jardins d’enfants, ambassades et consulats. Déduplication sur l’adresse écrite en minuscules — et non sur l’organisation, distinction qui compte énormément lorsque plusieurs entreprises utilisent la même boîte postale. Refroidissement de cinq jours entre les campagnes pour la même adresse. Plafond quotidien global, réparti proportionnellement entre les campagnes, plus un plafond par exécution, afin que les envois soient étalés sur plusieurs heures, et non en bloc.

Un interrupteur qu’on ne peut pas contourner

L’orchestrateur de campagnes vérifie une variable d’environnement avant toute autre chose. Si elle est définie, il refuse de démarrer et s’arrête — il n’existe aucun argument de ligne de commande pour passer outre, il n’existe pas de « forcer ». Il a été ajouté le 1 mai 2026, après un incident d’envois dupliqués. Un système qui envoie en votre nom a besoin d’un arrêt qu’une personne non programmeuse peut actionner.

Désabonnement en un seul clic, en trois étapes

La première étape est l’en-tête standard de désabonnement en un clic, conformément à la RFC 8058 — l’exigence que les grands fournisseurs d’email imposent pour les envois en volume. La deuxième est un centre de préférences, où le désabonnement peut aussi être annulé. La troisième est la suppression complète sur demande, qui efface l’adresse de six tables, l’ajoute à une liste permanente de blocage et laisse une trace dans le journal. Les trois sont protégées par un jeton lié au destinataire, afin que personne ne puisse désabonner quelqu’un d’autre.

Les réponses et les réactions sont collectées automatiquement

Les réponses aux emails sont lues depuis la boîte aux lettres via Microsoft Graph, toutes les dix minutes, et sont reliées automatiquement à l’envoi qui les a provoquées. L’état de livraison est synchronisé depuis le fournisseur d’envoi. Les ouvertures sont suivies avec un pixel, les clics via redirection, et les tableaux de délivrabilité montrent les domaines en difficulté. Un service séparé suit le crédit restant chez les fournisseurs payants et alerte avant qu’il ne soit épuisé — pas après.

Recherche par ce qu’une organisation fait, pas seulement par son nom

En plus de la recherche en texte intégral, la requête est transformée en un vecteur avec un modèle d’embedding et la correspondance se fait dans la base au moyen d’une fonction propre, avec un seuil de similarité réglable (0,25 par défaut) et une limitation par projet. En pratique : « entreprises qui font du transport frigorifique » trouve aussi des organisations qui n’ont aucun de ces mots dans leur dénomination.

Connexion au CRM que vous avez déjà

Si votre équipe travaille déjà dans un CRM, nous ne le remplaçons pas par réflexe. Nous avons écrit et exécuté le connecteur pour amoCRM — 12 fonctions serveur, y compris le flux OAuth complet, l’actualisation du jeton et la vérification de l’état — ainsi que Bitrix24 avec OAuth et webhook, un guide OAuth pour Zoho et dix fonctions pour Google Sheets, de la lecture de la structure d’une feuille à l’import de contacts.

À quoi cela ressemble

Le parcours, étape par étape.

01

D’abord le modèle, ensuite l’interface

Ce qu’est une organisation chez vous, ce qu’est un contact, ce qu’est une opportunité, quels champs sont obligatoires et lesquels sont seulement utiles. Cette discussion semble lente et c’est la seule qu’on ne peut pas rattraper plus tard : un mauvais modèle se paie à chaque rapport que vous demandez ensuite.

02

Le parcours et les stades, écrits comme des règles, pas comme une habitude

Les stades par lesquels passe un lead, ce qui le fait avancer et ce qui le fait reculer, qui est responsable à chaque étape. Nous écrivons aussi les règles automatiques — quel résultat d’appel fait monter le lead, quelle inactivité le fait descendre — parce qu’un parcours qui ne bouge que lorsque quelqu’un se souvient d’appuyer n’est pas un parcours, c’est une liste.

03

Les canaux qui apportent les données d’eux-mêmes

Les appels depuis la téléphonie ou depuis l’agent vocal, les réponses depuis la boîte aux lettres, les formulaires du site, les webhooks d’autres systèmes. Chaque canal est connecté et testé séparément, et pour chacun nous définissons ce qui arrive aux données qui ne correspondent à rien en base — parce que ce sont elles qui se perdent silencieusement.

04

Les freins avant l’accélération

Heures d’envoi, listes d’exclusion, déduplication, refroidissement, plafonds, désabonnement, arrêt d’urgence. Nous les mettons avant la première campagne, pas après la première plainte. C’est la partie où notre expérience coûte le moins et vaut le plus, parce qu’elle est faite d’erreurs déjà payées.

05

La transmission : procédures, rôles, documentation

Qui a quel rôle, comment ajouter une personne, comment arrêter une campagne, où regarder quand quelque chose n’est pas parti, quoi faire lors d’une demande de suppression. Un système commercial que seul le constructeur sait arrêter est un risque, pas un actif.

Un centre. Autour, ce qui y entre — par des trajets séparés.LE CENTRE S’APPUIE SUR CE QUI L’ENTOURE
Les canaux qui convergent vers la même fiche : l'appel de l'agent vocal, l'appel humain, l'email et la réponse de la boîte mail, le formulaire du site, le webhook d'un autre système — et les freins qui décident ce qui repart.

Les données

Ce que nous touchons, où elles sont et combien de temps elles restent

Les questions que pose toute personne ayant un délégué à la protection des données — posées ici avant qu'il ne les pose.

Où se trouvent les données et comment elles sont structurées
PostgreSQL via Supabase, avec 96 migrations versionnées. La structure est hiérarchique : projets, en dessous organisations avec des champs flexibles en JSONB et un vecteur de recherche en texte intégral, en dessous contacts, et les campagnes dépendent du projet. Chaque projet définit son propre schéma de champs — c’est pourquoi la même application gère à la fois des administrations publiques et des entreprises privées, sans faire grossir la base à chaque nouveau type d’organisation.
Ce figure dans le pied de page de chaque e-mail envoyé
L’identité complète de l’entreprise — dénomination, code fiscal, siège social — l’adresse du responsable de la protection des données, le fondement juridique invoqué et l’origine de l’adresse : registres publics et profils publics, dit explicitement, pas sous-entendu. Plus désabonnement en un clic et une variante de secours, avec une réponse en un mot. Ce qui relève du fondement juridique est revérifié à chaque changement de loi — un envoi en masse qui cite un fondement dépassé est un problème même si le reste est impeccable.
Qui voit quoi
L’accès se fait par authentification, les routes de l’application sont fermées derrière un gate, et la zone d’administration a un gate supplémentaire. Les rôles sont séparés : administration, propriétaire, ventes, prospection et un rôle distinct pour l’agent automatisé — parce qu’un agent qui écrit dans le système ne doit pas avoir les droits d’un humain. Il n’existe pas d’inscription ouverte.
Ce que nous vérifions explicitement à l’installation
Que chaque secret est effectivement défini sur le serveur : le secret avec lequel sont signés les webhooks entrants et le secret avec lequel sont signés les jetons de désabonnement. Ce sont des vérifications qui semblent formelles jusqu’au moment où elles ne le sont pas : une vérification de signature n’a rien à comparer si le secret manque, et un jeton prévisible est un jeton qui ne protège personne. Nous les mettons sur la liste de remise, pas dans les suppositions.
Ce qui est supprimé à la demande et ce qui reste
La suppression complète retire l’adresse de six tables et la place sur une liste permanente de blocage, afin qu’un import ultérieur ne la réintroduise pas. Il reste une trace dans le journal, avec le motif — parce qu’il faut pouvoir démontrer, un an plus tard, que la demande a été honorée. Les agrégats statistiques, qui n’identifient personne, restent eux aussi.

Un cas

Une adresse a reçu 42 e-mails en une journée. Ce n’était pas une boucle.

La situation

Dans une campagne de prospection auprès d’organisations, une seule boîte mail a reçu 42 messages le même jour. La première hypothèse, la plus commode, est une boucle dans le code. Ce n’était pas le cas.

Ce que nous avons construit

L’extraction des destinataires se faisait par organisation, et non par adresse. Quarante-deux organisations utilisaient la même boîte mail — situation absolument courante dans l’environnement professionnel local, où un comptable, une société mère ou un administrateur servent plusieurs entités. Chaque organisation était, à juste titre, un destinataire unique ; l’adresse ne l’était pas. Le nombre total de personnes concernées dans cet incident était 11. La correction s’est faite en trois parties, et non en une : la déduplication a été déplacée sur l’adresse écrite en minuscules, un refroidissement de cinq jours entre les campagnes pour la même adresse a été introduit, et tous les scripts d’envoi ont été obligés de passer par un module commun de protection — celui qui refuse d’enregistrer un envoi sans identifiant de campagne. Le même jour, le coupe-circuit qui arrête complètement l’orchestrateur, sans possibilité de contournement, a aussi été ajouté.

Ce qui en est sorti

Aujourd’hui, la déduplication par adresse, la liste de désabonnement, les filtres de domaine et le refroidissement de cinq jours sont des garanties du module commun, et non des habitudes du script qui se trouve s’exécuter. Un script manuel écrit à la hâte ne peut plus contourner les protections, parce qu’il n’a plus le droit d’envoyer seul.

Ce que le cas ne dit pas

La leçon ne se transfère pas automatiquement : chaque base de données a sa propre forme de doublon. Dans une, c’est l’adresse e-mail, dans une autre, c’est le numéro de téléphone d’un groupe d’entreprises, dans une troisième, c’est une personne avec deux fonctions. La première chose que nous faisons lors d’un nouvel import est de chercher quelle est la forme de doublon là-bas — nous ne supposons pas que c’est la même.

Questions

Ce que les gens nous demandent avant d'appeler

Vous me vendez le CRM avec lequel vous travaillez ?

Non, et la raison est technique, pas commerciale. Notre système est conçu pour une seule équipe : il n’a pas de séparation stricte des données entre clients et il n’a pas de flux d’installation qui ne suppose pas un accès au serveur. Pour pouvoir être remis à quelqu’un, il faudrait réécrire exactement ces deux choses. Nous le montrons pour la même raison qu’un menuisier montre son atelier — cela en dit plus sur le métier qu’une brochure. Ce que nous vendons, c’est la construction d’un système pour la façon dont vous travaillez.

Pourquoi construirais-je, au lieu d’acheter un CRM prêt à l’emploi ?

Le plus souvent, vous ne devriez pas, et c’est nous qui vous le disons. Un outil prêt à l’emploi est la bonne réponse lorsque votre travail ressemble à l’hypothèse pour laquelle il a été conçu. La construction devient justifiée dans trois situations concrètes : vous avez des types d’organisations fondamentalement différents qui ne tiennent pas dans le même ensemble de champs ; la moitié des interactions provient de systèmes automatiques qui doivent écrire eux-mêmes dans la fiche ; ou vous avez besoin de règles d’envoi que l’outil ne vous donne pas et que vous ne pouvez pas vous permettre de violer. Si aucune ne s’applique, nous vous disons d’acheter.

Pouvez-vous relier le système au CRM que nous utilisons déjà ?

Oui. Nous avons écrit et exécuté le connecteur pour amoCRM — 12 fonctions serveur, avec le flux OAuth, le renouvellement du jeton, la récupération des leads et la vérification de l’état — et pour Bitrix24, avec OAuth et webhook. Pour Zoho CRM, nous avons documenté le parcours OAuth par régions de centre de données. Et lorsque la source réelle de vérité de l’équipe est une feuille de calcul, nous avons dix fonctions pour Google Sheets, depuis la lecture de la structure de la feuille jusqu’à l’import et la mise à jour des contacts.

Comment les appels arrivent-ils concrètement dans le CRM ?

Par un webhook signé, envoyé à la fin de l’appel. Le système prend le numéro de téléphone et recherche l’organisation au moyen d’une fonction écrite de base pour les formats sous lesquels les numéros apparaissent dans les données réelles — et non par une comparaison de chaînes, qui en manquerait la moitié. L’appel est enregistré avec transcript, résumé, sentiment, adresse d’enregistrement et durée, lié à la fiche, et la règle dans le code peut faire monter le lead dans le parcours en fonction du résultat de l’appel.

Comment vous assurez-vous que nous ne finissions pas par envoyer du spam ?

Par six mécanismes qui se vérifient l’un l’autre, et non par une bonne intention : heures d’envoi, listes d’exclusion par type d’institution, déduplication sur l’adresse écrite en minuscules, refroidissement de cinq jours pour la même adresse, plafonds journaliers et par exécution, et un interrupteur qui arrête l’orchestrateur sans voie de contournement. Ci-dessous se trouve le cas concret qui nous a appris pourquoi la déduplication doit se faire sur l’adresse, et non sur l’organisation.

Que se passe-t-il lorsque quelqu’un demande à ne plus être contacté ?

Cela comporte trois niveaux, tous protégés par un jeton lié au destinataire. Le désabonnement en un clic, directement depuis l’en-tête de l’email, conformément au RFC 8058. Un centre de préférences, où la décision peut aussi être annulée. Et la suppression complète, qui retire l’adresse de six tables et l’ajoute à une liste permanente de blocage — afin qu’un import effectué six mois plus tard ne la ramène pas. La dernière partie est celle que la plupart des systèmes manquent.

Où sont stockées les données et qui peut les voir ?

Dans une base PostgreSQL, sur l’infrastructure convenue au début du projet, avec des migrations versionnées — c’est-à-dire que chaque changement de structure est un fichier, et non une intervention manuelle. L’accès se fait par rôles distincts, avec un rôle séparé pour les agents automatiques, car un système qui écrit dans la base ne doit pas avoir les droits d’un humain. Il n’y a pas d’inscription ouverte et il n’y a pas de surface publique.

Pouvez-vous importer notre ancienne base, doublons compris ?

Oui, et justement les doublons sont la raison pour laquelle l’import est construit ainsi. Le fichier est traité en flux, par lots de 200 lignes, avec un index de déduplication sur le code fiscal, l’email et le téléphone construit avant l’écriture, plus la validation des adresses : format, domaines jetables, schémas invalides. Ce qui ne correspond pas n’est pas supprimé silencieusement — c’est signalé, pour que vous décidiez.

Me garantissez-vous une croissance des ventes ?

Non. Nous pouvons garantir que vous saurez qui a été atteint, par quel canal, ce qui a été dit et ce qui suit — et que le système s’arrête de lui-même quand il le doit. Les chiffres de résultat dépendent de l’offre, du marché et de l’équipe qui appelle, c’est-à-dire de choses que nous ne contrôlons pas. Nous ne publions pas de pourcentages d’amélioration que nous n’avons pas mesurés, ni pour nous, ni pour quiconque.

Sur quoi reposent les affirmations ci-dessus (24 sources)

24 d'entre elles sont du code et des fichiers de nos dépôts. Nous n'en publions ni le nom ni la ligne : réunies sur une seule page, elles décriraient trop précisément comment sont construits des systèmes qui ne sont pas seulement les nôtres. Nous les parcourons avec vous, dans le dépôt, sur demande — la vérification reste possible, elle se fait simplement lors d'un échange.

Qu'est-ce que vous voudriez voir mieux fonctionner ?

Racontez-nous votre processus. Ensemble, nous décidons ce qui vaut la peine d'être construit, ce que nous pouvons connecter et comment nous vérifions le résultat.

Discutons