Zorro Engine

1

Architecture

Composants, flux, stack.

Source

HubSpot

MQL avec pays, segment, score

REST API
Cerveau

Zorro Engine

Filtre + équilibre + score qualité

Node.js · Supabase
Sortie

HubSpot + Slack

Owner mis à jour, Sales notifié

Webhooks
Données
Supabase (Postgres) HubSpot CRM
Logique
Node.js Cron quotidien Edge function
Observabilité
Logs structurés Slack alerts Dashboard interne
2

Code critique

Filtre, choix du Sales, gestion des refus. Extraits réels du moteur qui tourne ci-dessous.

// Un Sales peut-il recevoir ce lead ?
function isEligible(sales, contact) {
  if (!sales.active) return reject("sales_inactive");
  if (sales.market !== contact.market) return reject("wrong_country");

  // Allemagne : la région est imposée
  if (contact.market === "DE" &&
      sales.region && contact.region !== sales.region)
    return reject("wrong_region");

  // SDR ou AE selon le rôle attendu
  if (contact.roleTarget !== sales.role) return reject("wrong_role");

  // On ne dépasse jamais le quota
  if (sales.stock >= sales.target) return reject("quota_full");

  return { pass: true };
}
3

KPIs santé & impact

4 KPIs, pas plus. Trop d'indicateurs tuent l'action : je préfère 4 chiffres qui déclenchent chacun une décision claire.

Équité d'assignation Écart entre Sales < 15 % de drift Quotidien
Dérive du stock Sales au-dessus de la cible 0 en routine Quotidien
Délai d'assignation Lead jusqu'à attribution < 24 h Quotidien
Adoption Sales Corrigés à la main < 10 % Hebdo
4

Dashboard live

La donnée est déjà nettoyée en amont (dédup, qualité, deals en cours). Le moteur applique un dernier filtre : pays, région, rôle, quota. Si rien ne matche, le lead part en « Refusés » pour traitement humain.

Distribution du jour

Écart stock n/a
Délai moyen n/a
% en auto n/a
Refusés n/a

Leads en attente

Société Pays SDR/AE Score État

Stock Sales

Refusés

Société Raison
n/a

Pourquoi ce choix

5

Alerting

Quand on est notifié, sur quoi, et quelle est la réponse attendue.

Critique

Pas d'attribution depuis 4 h

Slack + PagerDuty

Vérifier le cron Zorro, le webhook HubSpot.

Critique

Région DE sans AE actif

Slack Sales Ops

Réactiver un Sales ou réattribuer la région.

Attention

Écart stock > 25 %

Slack Growth

Revoir quotas ou volume de sourcing.

Attention

Plus de 10 % corrigés à la main

Slack Growth

Réviser les règles ou le scoring.

Info

Sales sur-stocké

Dashboard

Suspendre temporairement les attributions.

Info

Refus > 5 % sur 24 h

Dashboard

Vérifier qualité data en amont.