Reciprok Docs

RGPD

Données personnelles, durées de conservation, droit à l'oubli

Reciprok stocke des données personnelles d'organisateurs (emails, téléphones, noms) et de contacts membres. Le RGPD s'applique. Cette page décrit la politique à mettre en place.

Données personnelles concernées

TypeSourceLocalisation
Emails organisateursCréation de demandeorganizer.email
Téléphones organisateursCréation de demandeorganizer.phone
Noms et postesCréation de demandeorganizer.contact_name, organizer.position
AdressesCréation de demandeorganizer.address, organizer.postal_code
Contenu d'emails reçusWebhook email entrantemail_message.body_*, request.raw_source
Transcriptions vocalesAudios uploadésvoice_message_*, request.raw_source
Contacts membresFiche membremember.contact_name, member.email, member.phone

Bases légales

Reciprok est utilisé en interne par l'équipe pour le traitement de demandes commerciales. Les bases légales :

  1. Exécution d'un contrat (ou mesures précontractuelles), pour les données des organisateurs et membres directement liées à une demande
  2. Intérêt légitime, pour les statistiques internes, l'historique commercial, l'amélioration du service
  3. Consentement, pour les communications marketing optionnelles (RefleX Reciprok, etc.)

Durée de conservation

À cadrer formellement avec le fondateur. Proposition par défaut :

DonnéeDurée activeArchivageSuppression
Demande gagnée5 ans5 ans après10 ans
Demande perdue2 ans1 an après3 ans
Email échangé5 ans-5 ans
Audio transcrit1 an (audio brut), transcription conservée 5 ans--
Données organisateur sans demande active1 an d'inactivité-1 an après dernière demande
Contact membre actifTant que le membre est actif-À la désactivation
Logs IA / timeline5 ans-5 ans

Droits des personnes

À implémenter dès le MVP :

Droit d'accès

Chaque organisateur peut demander la liste de ses données. Implémentation : endpoint admin pour exporter en JSON tout ce qui concerne un email donné. Pas d'interface publique au démarrage (l'équipe traite manuellement).

Droit de rectification

Modification possible via l'équipe (toujours), ou directement par l'organisateur via lien magic (futur).

Droit à l'effacement

Sur demande, l'équipe peut supprimer un organisateur et toutes ses données associées :

async function deleteOrganizerCompletely(organizerId: string) {
  // 1. Anonymiser les demandes (pas supprimer, garder l'historique commercial)
  await db.update(request)
    .set({
      organizerId: null,
      rawSource: null, // contient l'email original
    })
    .where(eq(request.organizerId, organizerId));

  // 2. Supprimer les emails liés
  await db.delete(emailMessage).where(/* threads liés à cet organizer */);

  // 3. Supprimer l'organisateur
  await db.delete(organizer).where(eq(organizer.id, organizerId));

  // 4. Logger l'action (audit trail RGPD)
  await logRgpdAction({
    type: "delete_organizer",
    targetId: organizerId,
    actorId: currentUser.id,
    timestamp: new Date(),
  });
}

Note importante : on anonymise les demandes plutôt que de les supprimer. La demande commerciale fait partie de l'historique de Reciprok (commissions, statistiques, comptabilité). On retire les données personnelles mais on garde l'événement.

Droit à la portabilité

Export JSON structuré des données d'un organisateur. Format ouvert (JSON), pas de tableau Excel propriétaire.

Droit d'opposition

Pour les emails marketing : opt-out clair sur chaque email, et stockage de la préférence dans organizer.marketingOptOut.

Sécurité des données

  1. Chiffrement en transit : TLS partout, pas d'exception (HTTPS obligatoire, SMTPS pour les emails)
  2. Chiffrement au repos : déléguer au provider DB (Neon, Supabase, RDS chiffrent par défaut)
  3. Hash des tokens : jamais stocker un token magic en clair, toujours hashé SHA-256
  4. Pas de mots de passe : pour les organisateurs et membres, on utilise des liens magic. Better Auth gère le hashing pour l'équipe (bcrypt/argon2)
  5. Logs sans données sensibles : ne jamais logger un email, un téléphone, ou le contenu d'une transcription en clair dans les logs applicatifs
  6. Backups chiffrés : déléguer au provider DB

Tiers et sous-traitants

Reciprok envoie des données personnelles à des tiers (sous-traitants RGPD) :

TiersDonnéesLocalisation
Anthropic (Claude)Contenu des messages chat, descriptions de demandes, noms d'organisateursUS (avec accord transfert hors UE)
OpenAI (Whisper, embeddings)Audios, descriptionsUS (idem)
Resend / Postmark (email)Emails completsUS ou UE selon provider
Twilio (WhatsApp)MessagesUS ou UE
Cloudflare R2 / S3Fichiers (audios, photos)UE de préférence
Neon / Supabase (DB)Toutes les donnéesUE (à vérifier au setup)

À mettre en place :

  1. Registre des traitements (article 30 RGPD), un document Notion ou similaire qui liste tout
  2. Mentions légales et politique de confidentialité sur le formulaire public
  3. Avertissement RGPD sur les emails de requalification ("vos informations sont stockées dans notre CRM interne...")
  4. Choix de providers UE quand possible (Resend a des serveurs UE, Neon a une région UE)

Contraintes techniques à respecter

Pas de tracking abusif

  • Pas de cookies analytics tiers (Google Analytics, etc.) sans consentement
  • Pas de pixel de tracking dans les emails sans accord
  • Le tracking d'ouverture d'email reste OK car c'est de l'intérêt légitime commercial direct

Pas de partage involontaire

  • Les liens magic ne doivent jamais contenir de données personnelles dans l'URL
  • Les pages publiques (catalogue, requalif) ne doivent pas exposer plus que le strict nécessaire
  • Les emails doivent contenir un lien d'opt-out clair (pour les communications marketing)

Audit trail

Chaque accès à des données personnelles via lien magic doit être tracé :

  • Qui a accédé (token utilisé)
  • Quand
  • Quelle ressource
  • Depuis quelle IP

Conservation des logs d'accès : 1 an.

Checklist avant la mise en prod

  • Politique de confidentialité rédigée et accessible
  • Mentions RGPD sur tous les formulaires publics
  • Registre des traitements à jour
  • Sous-traitants vérifiés (DPA signés où nécessaire)
  • Procédure de droit à l'effacement testée
  • Procédure de droit d'accès testée
  • Backup et restoration testés
  • Logs d'accès opérationnels
  • Suppression automatique des audios bruts après 1 an
  • Anonymisation automatique des organisateurs inactifs après 1 an

On this page