Vision produit V2
Synthèse du feedback audit produit (avril 2026), ce qui manque, ce qui change, ce qu'on doit construire
En deux phrases
Reciprok sert à une chose : quand un organisateur d'événement cherche un lieu, l'équipe Reciprok trouve le meilleur match dans son réseau de membres, envoie un catalogue, et touche une commission sur la mise en relation. L'IA (Maxy) aide à chaque étape mais c'est l'équipe qui décide, l'IA propose, l'humain dispose.
Le concept manquant : les Pools
C'est quoi un Pool ?
Un Pool c'est une catégorie métier. Pense à ça comme un "tiroir" dans lequel l'équipe range ses membres.
| Pool | Exemples de membres |
|---|---|
| Hotels | Hôtel Le Meurice, Hôtel du Louvre |
| Restaurants | L'Alcazar, Le Train Bleu |
| Restaurants Rooftop | Perruche, Le Ciel de Paris |
| Traiteurs | Potel & Chabot, Lenôtre |
| Châteaux | Château de Versailles, Vaux-le-Vicomte |
| Lieux atypiques | Musée du Louvre, Tour Eiffel |
Pool vs Group, c'est pas pareil
- Pool = la catégorie (Restaurants, Hotels, Traiteurs…)
- Group = le groupe d'entreprise (Groupe Alcazar = 7 restaurants dans Paris)
Chaque membre a obligatoirement les deux. Même un freelance DJ a un pool ("DJ") et un group ("INDEPENDANT").
Pourquoi c'est important ?
- Quand un organisateur dit "je cherche un hôtel pour 60 personnes" → l'équipe crée une demande dans le Pool Hotels
- Le formulaire de recherche s'adapte au Pool → Hotels montre un champ "nombre de chambres", Restaurants non
- On peut ajouter un Pool entier à une demande → "Ajoute le pool Restaurants Rooftop" → 13 membres ajoutés d'un coup
- On peut ajouter un Group entier → "Ajoute le Groupe Alcazar" → 7 restaurants ajoutés
La page Demande = le cockpit
C'est LA page la plus importante de l'app. Tout se passe ici. L'équipe ne devrait jamais avoir à quitter cette page pour faire son travail.
Ce qu'on doit pouvoir faire depuis une demande
Gérer les membres du catalogue
- Chercher dans le Pool de la demande → moteur de recherche intégré
- Ajouter un membre, un Group entier, ou un Pool entier
- Retirer un membre
- Cacher/montrer un membre dans le catalogue (icône œil, pas des tabs, caché par défaut à l'ajout)
- Choisir le gagnant, action manuelle, c'est l'équipe qui décide (ou l'organisateur via le catalogue public)
- Voir sur la carte, où sont les membres de la demande géographiquement
Communiquer
Par carte de membre (chaque membre a ses propres boutons) :
- Envoyer le catalogue
- Demander les dispos
- Demander le positionnement
- Envoyer un "non retenu"
- Envoyer un devis
En général (à tous les membres visibles) :
- Envoi catalogue groupé
- Demande de dispo groupée
Vers l'organisateur :
- Mail de suivi
- Confirmation referral
- Mail post-événement (review)
Éditer tout sans changer de page
N'importe quelle info est modifiable inline :
- Email/téléphone d'un membre
- Tags d'un membre ou de la demande
- Email de l'organisateur
- Infos du membre referral
- Images des membres
- Budget, dates, description de la demande
L'IA intégrée
- Chat Maxy directement dans la page, pas besoin d'aller sur
/chat - Proposer un catalogue, Maxy analyse le brief + la knowledge base et suggère les meilleurs membres
- Dicter un prompt, bouton micro, transcription Whisper, envoi à Maxy
- Maxy peut aussi "choisir" un membre (même si c'est gâchis de tokens selon l'audit)
Bloc-notes
Un mémo pour que l'équipe écrive ce qu'elle veut. Notes perso, rappels, "plus jamais je rend service à ce client", whatever. Pas analysé par l'IA, juste un pad privé.
Le catalogue public (côté organisateur)
Quand l'équipe envoie le catalogue, l'organisateur reçoit un lien. Sur cette page il peut :
- Voir les lieux proposés (recommandés + compatibles)
- Choisir un ou plusieurs lieux (pas forcément 1 seul)
- Partager le catalogue à quelqu'un d'autre
- Demander un nouveau catalogue, ça bloque l'organisateur côté public tant que l'équipe n'a pas cliqué "Nouveau catalogue à jour" dans la demande
Après le choix
Le design du catalogue change : il affiche uniquement les membres choisis, avec un statut ("Événement en préparation", etc.). Les membres non choisis disparaissent.
Après l'événement
L'équipe peut envoyer un mail de review :
- Note (étoiles 1-5) sur Reciprok en général
- Note (étoiles 1-5) sur le membre d'accueil
- 3-4 questions max, rapide à remplir
Le referral : qui a transmis la demande ?
C'est critique pour les commissions. Pour chaque demande, il faut savoir :
- Qui a transmis l'organisateur ? (quel membre du réseau)
- C'est la première fois que ce membre nous envoie cet organisateur ? Ou la 2ème, 3ème… ?
- Ou bien est-ce un contact direct (l'organisateur a trouvé Reciprok tout seul) ?
Pourquoi c'est important : la commission change selon la source. Si un membre nous envoie un nouveau client → taux X. Récurrent → taux Y. Contact direct → pas de commission referral.
Les commissions expliquées simplement
C'est tout bête :
- L'organisateur choisit un membre pour son événement
- Le membre d'accueil (celui qui a été choisi) verse un pourcentage du montant à Reciprok
- Reciprok redistribue une partie de ce pourcentage au membre referral (celui qui a transmis l'organisateur)
Les taux sont configurables :
- Par membre individuellement
- Globalement sous conditions
- Différent si nouveau client vs récurrent
- Différent si contact direct vs referral
Paiement : liens Stripe envoyés aux membres pour faciliter l'encaissement.
Les disponibilités : le bon paradigme
Ce qui est faux
Remplir un calendrier manuellement. L'équipe ne sait pas les dispos des membres, ce sont eux qui les donnent.
Ce qui est vrai
- Depuis une demande, l'équipe envoie un mail/WhatsApp à un membre : "Es-tu dispo pour l'événement X le 12 mai ?"
- Le membre clique sur un lien → Disponible / Pas disponible. Fin.
- La réponse remonte dans la demande et sur la page de dispo.
Pour les dispos générales (pas liées à une demande) :
- Le membre dicte ou écrit en langage naturel via son lien perso : "Fermé du 1er au 15 août"
- L'IA interprète et structure
La page /availability devrait montrer :
- Les réponses à valider (pas un calendrier à remplir)
- Filtres par Pool
- Multi-select pour les confirmations batch
Nouvelle page : la Carte
Afficher les membres d'un Pool sur une carte interactive (coordonnées GPS déjà dans le schema).
- Filtres par Pool
- Accessible aussi depuis la page demande ("voir sur la carte")
- Utile pour les cas "je cherche un resto dans le 8ème", visualisation géographique directe
Le kanban /requests, clarifications
- Le kanban se met-il à jour tout seul ? Oui, quand on fait avancer une demande via les actions dans la page détail, le statut change et la carte bouge automatiquement dans la bonne colonne.
- Pourquoi on ne peut pas glisser en arrière ? C'est voulu côté backend (transitions non autorisées). Mais c'est peut-être trop strict, à discuter si on autorise certains retours avec confirmation.
État d'avancement (avril 2026)
| Chantier | Statut | Notes |
|---|---|---|
| Schema Pool (entité + FK member/request) | ✅ Fait | 7 pools seedés, pool.extraFields pour formulaires dynamiques |
Refonte page /requests/[id] (le HUB) | ✅ V1 | Catalogue interactif, memo, Maxy drawer, recherche dans pool, lien public persistant |
| Formulaire création demande dynamique | ✅ Fait | Pool obligatoire, champs extra par pool, sélecteur organisateur |
| Carte Mapbox 3D | ✅ Fait | Clusters GPU, filtres pool, fly-to depuis fiche membre, carte sur catalogue public |
| Système de tickets | ✅ Fait | CRUD + workflow admin validation, catégorisation par section/page, thread commentaires |
| Mémos sur membres/organisateurs | ✅ Fait | MemoPadGeneric réutilisable, visible par l'IA |
| Page Settings complète | ✅ Fait | 4 tabs : Profil, Apparence, Pools, Intégrations |
| Catalog public enrichi (choix orga, review) | 🔲 À faire | L'organisateur peut voir + carte, mais pas encore choisir/refuser |
| Disponibilités = validation réponses members | 🔲 À faire | Paradigme actuel = calendrier manuel, à changer vers magic links |
| Commissions config granulaire + Stripe | 🔲 À faire | Les commissions existent, les liens Stripe non |
| Search adaptatif par Pool | ✅ Partiel | poolId filter ajouté, mais pas de champs extra dynamiques par pool |
Chantiers restants
| Priorité | Chantier | Impact |
|---|---|---|
| 1 | Catalogue public enrichi (choix organisateur, demande nouveau catalogue, review post-event) | Expérience organisateur |
| 2 | Disponibilités = validation de réponses members via magic links | Refonte paradigme |
| 3 | Commissions config granulaire + liens Stripe | Monétisation |
| 4 | Search adaptatif avec champs dynamiques par Pool | Recherche contextuelle |
| 5 | Inline editing complet sur la page demande (email/tags/images des membres) | UX hub |
| 6 | Mails par carte membre (dispo, positionnement, non-retenu, devis) | Communication |
| 7 | Formulaire création demande enrichi (référent les champs de l'ancien dashboard) | Onboarding |