← Retour à l'application
Guide de configuration
Ce guide t'accompagne pour connecter tes propres comptes (Google, Mistral) à l'application.
Tout se fait avec tes comptes — l'administrateur qui a développé l'app n'a accès à rien de tout ça.
Compte environ 20-30 minutes la première fois.
1. Clé API Mistral
- Va sur
console.mistral.ai et crée un compte (ou connecte-toi).
- Dans le menu, va dans API Keys.
- Clique sur Create new key, donne-lui un nom (ex: "secretaire-ia"), copie la clé générée.
- Important: cette clé ne s'affiche qu'une seule fois. Colle-la immédiatement dans
l'application, section Paramètres → Clé API Mistral.
Un moyen de paiement doit être ajouté sur ton compte Mistral pour que l'API fonctionne
(facturation à l'usage, pas d'abonnement fixe).
2. Compte de service Google (pour Sheets et Drive)
Ce compte permet à l'application de lire/écrire dans ton Google Sheet et ton Google Drive.
Il ne donne accès qu'aux fichiers que tu partages explicitement avec lui — rien d'autre.
2.1 Créer un projet Google Cloud
- Va sur
console.cloud.google.com avec ton compte Google.
- En haut, clique sur le sélecteur de projet → Nouveau projet.
- Nomme-le (ex: "secretaire-ia"), clique Créer.
2.2 Activer les API nécessaires
- Dans le menu de gauche: API et services → Bibliothèque.
- Cherche Google Sheets API → clique dessus → Activer.
- Cherche Google Drive API → clique dessus → Activer.
- Cherche Gmail API → clique dessus → Activer (utilisée à l'étape 3).
2.3 Créer le compte de service
- API et services → Identifiants.
- Créer des identifiants → Compte de service.
- Nomme-le (ex: "secretaire-ia-service"), clique Créer et continuer, puis OK
(les étapes de rôle/accès peuvent être laissées vides — l'accès se fait par partage direct des fichiers).
- Une fois créé, clique dessus dans la liste, onglet Clés.
- Ajouter une clé → Créer une clé → JSON. Un fichier
.json se télécharge.
- Va dans l'application, Paramètres → Google (compte de service), dépose ce fichier JSON.
2.4 Partager le Google Sheet et le dossier Drive
- Ouvre le fichier JSON téléchargé, repère le champ
client_email
(ressemble à xxxx@xxxx.iam.gserviceaccount.com).
- Ouvre ton Google Sheet maître → bouton Partager → colle cette adresse →
donne le rôle Éditeur → Envoyer.
- Fais pareil pour le dossier Google Drive racine où seront créés les dossiers consultants.
- Copie l'ID du spreadsheet (dans l'URL, entre
/d/ et /edit)
et l'ID du dossier Drive (dans l'URL, après /folders/) — tu en auras besoin
dans les Paramètres de l'application.
3. Connexion Gmail (envoi/lecture des emails)
Contrairement à Sheets/Drive, Gmail ne peut pas être "partagé" avec le compte de service —
il faut te connecter directement avec ton propre compte Google, une seule fois.
3.1 Créer l'identifiant OAuth
- Toujours dans API et services → Identifiants (même projet que ci-dessus).
- Créer des identifiants → ID client OAuth.
- Si demandé, configure d'abord l'écran de consentement OAuth:
type Externe, remplis le nom de l'app et ton email, sauvegarde
(pas besoin de le publier, le mode "test" suffit pour un usage personnel).
- Type d'application: Application Web.
- Dans URI de redirection autorisés, ajoute l'adresse de ton serveur suivie de
/api/settings/gmail-callback. Exemple:
https://tondomaine.com/api/settings/gmail-callback
- Clique Créer. Copie le Client ID et le Client Secret affichés.
3.2 Connecter dans l'application
- Va dans Paramètres → Connexion Gmail.
- Colle le Client ID, le Client Secret, et la même URI de redirection qu'à l'étape 3.1.
- Enregistre, puis clique sur Connecter Gmail.
- Une fenêtre Google s'ouvre — connecte-toi avec le compte Gmail que l'application
doit utiliser pour envoyer/recevoir les CRA. Accepte les permissions demandées.
- Tu es redirigé vers l'application — Gmail est maintenant connecté en permanence,
tu n'auras plus besoin de refaire cette étape.
Si l'écran de consentement reste en mode "test", seuls les comptes Google que tu
ajoutes explicitement comme "utilisateurs test" dans l'écran de consentement OAuth peuvent se connecter.
Ajoute ton propre email à cette liste si besoin.
Test en local (redirect_uri en http://localhost:8000/...): Google refuse
l'échange de token sans https, sauf si tu démarres l'application avec la variable d'environnement
ALLOW_INSECURE_OAUTH=1 (ex: ALLOW_INSECURE_OAUTH=1 python main.py).
Ne définis JAMAIS cette variable sur le serveur final en production — la redirect_uri y sera en
https et cette variable n'y sert à rien.
4. Surveillance automatique des bulletins de paie
Au lieu d'uploader les bulletins un par un dans l'application, tu crées UN dossier Drive
où toute la comptabilité dépose tous les bulletins en vrac — l'app les détecte et les trie
automatiquement vers le bon consultant.
4.1 Créer le dossier d'entrée
- Crée un dossier Google Drive dédié (ex: "Bulletins à traiter").
- Partage-le avec l'email du compte de service (le
client_email du fichier
JSON, comme à l'étape 2.4) en rôle Éditeur — l'app doit pouvoir lire ET déplacer
les fichiers qui y sont déposés.
- Copie son ID (dans l'URL, après
/folders/).
- Colle-le dans Paramètres → Google Drive → ID du dossier d'entrée des bulletins.
4.2 Activer la surveillance en temps réel
- La détection instantanée passe par les Push Notifications de Google Drive:
Google appelle ton serveur dès qu'un fichier est ajouté. Cela nécessite une URL
HTTPS publique et vérifiée — impossible avec un simple
localhost.
- Dans Google Cloud Console: API et services → Vérification de domaine (ou via
Google Search Console), vérifie que tu es bien propriétaire du domaine de ton serveur.
- Dans Paramètres → 4bis. Surveillance automatique, saisis l'URL publique de ton
serveur (ex:
https://tondomaine.com) et clique sur Activer.
- Le canal expire automatiquement au bout de quelques jours — l'app le renouvelle
toute seule en arrière-plan, rien à refaire manuellement.
Pas de domaine vérifié pour l'instant ? Pas grave: un bouton "Vérifier le
dossier maintenant" sur la page Bulletins de paie fait la même vérification manuellement,
et l'app relit aussi ce dossier toutes les 5 minutes automatiquement même sans webhook actif
— juste un peu moins instantané.
5. Configuration finale dans l'application
- Google Sheet — structure des colonnes: colle l'ID du spreadsheet, indique la ligne
où sont les titres de colonnes, et quelle colonne contient quoi (Mois, Jours facturés,
Coût total employeur). Cette config s'applique automatiquement à TOUS les onglets consultants,
car ils suivent tous la même structure — pas besoin de la répéter par personne.
- Pour chaque consultant ajouté dans la section Consultants, indique le nom exact
de SON onglet dans le spreadsheet (chaque consultant a son propre onglet).
- Dossier Google Drive racine: colle l'ID du dossier parent des dossiers consultants.
- Email & relances: choisis le jour d'envoi mensuel, l'intervalle de relance,
et personnalise le texte de l'email envoyé aux consultants.
Une fois ces sections complétées dans les Paramètres, l'application est pleinement opérationnelle.