broken image
broken image
broken image
  • A propos
  • Portfolio
  • Blog
  • Références
  • Nocodext
  • Bubble plugins
  • Medes IE
  • …  
    • A propos
    • Portfolio
    • Blog
    • Références
    • Nocodext
    • Bubble plugins
    • Medes IE
    Contactez-moi
    broken image
    broken image
    broken image
    • A propos
    • Portfolio
    • Blog
    • Références
    • Nocodext
    • Bubble plugins
    • Medes IE
    • …  
      • A propos
      • Portfolio
      • Blog
      • Références
      • Nocodext
      • Bubble plugins
      • Medes IE
      Contactez-moi
      broken image

      Enrichissement croisé multi-CRMs

      pour : [confidentiel]

      · Portfolio use-cases

      #CRM #hubspot #pipedrive #bizdev #B2B #qualification #prospect #leads #clients

      Stack :

      • Bubble
      • Vercel, Edge Function, Redis K/V
      • NextAuth, Pathfix, Oauth2
      • NestJS
      • Typescript
      • Webhook

      Disclamer : Pour des raisons de confidentialité, la plupart des captures sont indisponibles.

      Bob est Sales / Bizdev. Il fait de la propsection commerciale pour dénicher de nouveaux clients

      Il est partenaire de Tom.

      Il estiment que l'union fait la force et qu'en partagant mutuellement certaines données précises, ils peuvent rendre leur prospection commerciale beaucoup plus efficace.

      Bob a son CRM chez Pipedrive, Tom a son CRM chez Hubspot. Les 2 acceptent un partage croisé.

      Tom synchronise son CRM avec celui de Bob, et réciproquement.

      Dès lors,
      - Bob est informé que l'entreprise X qu'il a en commun avec Tom est Client de Tom.
      - Tom est informé que l'entreprise X qu'il a en commun avec Bob est Lead de Tom.

      Et ca, pour toutes les entreprises qu'ils ont en commun.


      Leurs CRM respectifs viennent d'etre enrichis, qualifiés de manière croisée.
      mais ca ne s'arrête pas là : puisque le 2 ont aussi d'autres partenaires. Donc ils démultiplient la qualification de leur carnet d'entreprises. :

      - Bob est informé que l'entreprise Y qu'il a en commun avec Tom est Client d'un autre partenaire de Tom.
      - Tom est informé que l'entreprise X qu'il a en commun avec Bob est Lead d'un autre partenaire de Bob.

      ...et la liste s'allonge pour autant de partenaires de chaque côté.

      Spoiler : les screenshots sont à l'heure actuell sous le sceau de la confidentialité

      broken image

      Résultat d'une synchro : même entreprise, sur 2 CRM différents, enrichie des 2 côtés

      Un aperçu de l'architecture

      Pourquoi cette architecture ?

      Rappleon le contexte fonctionbnel eigent : il y a 3 algos dans ce système :

      1. first-synchro :
      je compare tous les entreprise client avec toutes celles de son partenaire
      et j'enrichis les enterperises du client. Partenaire fera pareil de son côtré en sens inverse

      2. hook-create
      je créer une nouvelle entreprise dans mon CRM : l'algo vérifie auprès de mes partnaires lesquels référencent cette entreprise et s'ils travaillent avec ou pas.

      3. hook-update
      il y a du mouvement dans le CRM de mes partenaire : si l'entreprise mise à jour chez lui à une correspondance chez moi, mon CRM bénéiffice immédiatement de cette mise à jour.

      Cette architecture est avant tout asynchrone, c'est nécessaire car on traite du volume :

      Une firt-synchro peut comparer 30.000 enterprises de part et d'autres

      Une update peut concerner N entreprise à la fois

      Un création d'entreprise qui matcher N entreprises chez mes patenaires
      Un import d'entreprises (création en masse) peut matcher N entreprise chez mes patenaires

      Les webhook coté CRM qui viennent notifier la plateform sont très exigent sur la durée timeout du endpoint chez nous. On ne peut pas attendre la fin d'un fin d'exec algo pour enfin répondre au webhook du CRM.

      A ce titre nous avon

      Redis

      - stocke temporairement les collections à comparer
      - stocke les access-tokens des CRM clients et partenaire
      - stocke les settings client (migration à prévoir sur une DB noSQL sur un volume, pas in-memory)

      BullMQ

      - enmagazine dans Redis les ordres à executer de manière asynchrone (les jobs)
      - déclenche et orchestre les Workers qui exec les étapes composant chaque algo (collecte, API updates, export CSV, ...)

      NestJS

      - pilote bullMQ
      - implémente les algos
      - planifie le renouvellement des tokens OAuth2

      NextJS (legacy)

      - Gère les actions CRUD des settings client en lien direct avec Bubble
      - C'est le backend technique pour Bubble

      Bubble.io
      - tout le frontend
      - gestion des settings clients
      - branchement au CRM
      - gestion relations partenaires et partage de données

      broken image

      Et d'un flow de synchro

      broken image
      broken image

      S'abonner
      Billet précédent
      Photographes : serveur FTP 5G upload photos temps-réel &...
      Billet suivant
       Revenir au site
      strikingly iconPropulsé par Strikingly
      Photo de profil
      Annuler
      Utilisation des cookies
      Nous utilisons des cookies pour améliorer l'expérience de navigation, la sécurité et la collecte de données. En acceptant, vous consentez à l'utilisation de cookies à des fins publicitaires et d'analyse. Vous pouvez modifier vos paramètres de cookies à tout moment. En savoir plus
      Accepter tout
      Paramètres
      Refuser Tout
      Paramètres des Cookies
      Cookies nécessaires
      Ces cookies sont destinés pour des fonctionnalités de base telles que la sécurité, la gestion du réseau et l'accessibilité. Ces cookies ne peuvent pas être désactivés.
      Cookies pour les statistiques
      Ces cookies nous aident à mieux comprendre comment les visiteurs interagissent avec notre site web et nous aident à découvrir les erreurs de navigation.
      Préférence pour les Cookies
      Ces cookies permettent au site web de se souvenir des choix que vous avez faits afin de fournir une fonctionnalité et une personnalisation améliorées.
      Enregistrer