Skip to content

Gestion des contacts

Module de gestion du carnet d'adresses de l'utilisateur. Centralise particuliers, entreprises, prospects, clients et partenaires dans une seule interface.

Liste des contacts

Accessible via /app/contacts. Tableau dense avec :

  • Recherche libre (nom, prénom, email, téléphone)
  • Filtre par type (particulier, entreprise, prospect, client, partenaire)
  • Colonnes triables, pagination
  • Bouton de rafraîchissement avec indicateur de fraîcheur (cache de 7 jours, invalidé sur mutation)

Le clic sur une ligne ouvre le volet de détail à droite.

Fiche contact (volet de détail)

Volet latéral affichant :

  • Identité complète (prénom, nom, email, téléphone, type)
  • Pastille colorée correspondant au type
  • Notes libres
  • Historique d'activités (appels, emails, notes, réunions) avec date et auteur
  • Boutons d'édition et de suppression (avec confirmation)

Création / édition

Modal en 3 étapes simples : informations principales, type, notes. Le téléphone est saisi avec sélecteur de pays (drapeau + indicatif). À l'enregistrement, le numéro est normalisé au format international E.164 (ex. +33612345678).

Import en masse (CSV)

Réservé aux plans payants (Starter, Premium). Les comptes Gratuit voient le bouton « Importer » avec un badge et une fenêtre d'incitation à passer au plan supérieur.

Sources prises en charge

  • Fichier CSV (export de Google Contacts, Outlook, Notion, Excel…)
  • Taille max : 5 Mo
  • Limite par import : 1000 lignes (au-delà, importer en plusieurs fichiers)

Assistant en 4 étapes

  1. Source : glisser-déposer le fichier CSV ou parcourir. Le système détecte automatiquement les en-têtes et lit un échantillon.
  2. Mapping : associer chaque colonne du fichier à un champ Klapy (prénom, nom, email, téléphone, type, notes). L'app propose un mapping automatique basé sur le nom des colonnes (prenom, e-mail, telephone…). L'utilisateur peut tout modifier.
  3. Aperçu : tableau de toutes les lignes après parsing, avec un statut par ligne :
    • OK : sera créée
    • Doublon : un contact existant a le même email ou téléphone
    • Doublon (l. X) : une ligne plus haut dans le même fichier a le même email ou téléphone
    • Invalide : email mal formé, téléphone non reconnu, ou aucun nom et aucun moyen de contact
  4. Confirmation : récapitulatif (X contacts seront créés, après import : Y/Z contacts) et bouton final. Bloqué si l'import dépasse la limite du plan.

Règles de validation et déduplication

  • Email : doit matcher *@*.*, comparé en minuscules
  • Téléphone : doit pouvoir être parsé en E.164 (défaut FR pour les numéros sans indicatif)
  • Au moins un email ou un téléphone est requis
  • Au moins un prénom ou un nom est requis
  • Doublon si l'email ou le téléphone normalisé matche un contact existant ou une ligne précédente du fichier

Confidentialité

Le fichier source n'est jamais conservé. Seules les données importées sont enregistrées dans Firestore. Un journal d'audit users/{uid}/imports/{importId} retient uniquement les compteurs (créés, ignorés, erreurs) et le mapping utilisé, sans les données des lignes.

Fonctionnalités prévues (phase 2)

  • Import vCard (.vcf)
  • Mode « coller du texte » (un contact par ligne)
  • Mappings sauvegardés par signature de fichier
  • Action par ligne : doublons → mettre à jour ou ignorer (actuellement toujours ignoré)
  • Annulation du dernier import
  • Page d'historique des imports (/app/contacts/imports)
  • Synchronisation Google Contacts (OAuth)

Entreprises

Création d'entreprises (raison sociale, SIRET, adresse, notes) et association aux contacts via un champ company_id. Une entreprise peut être liée à plusieurs contacts.

Limites par plan

RessourceGratuitStarterPremium
Contacts5illimitéillimité
Import CSVnonouioui

Voir Plans & Abonnements pour le détail du système de quotas.