Doc fonctionnelle : décrit le quoi et le pourquoi.
Aujourd'hui, un client est saisi deux fois : dans le CRM Isi-APP, puis à la main dans N2F, le logiciel de notes de frais du groupe, pour qu'un collaborateur puisse imputer une dépense refacturable.
Ce connecteur supprime la double saisie : le CRM devient la source unique. Les clients actifs y sont poussés automatiquement dans N2F, et s'y maintiennent seuls.
L'écran de test de l'API —
/admin/n2f— est un outil d'observation distinct, décrit dansn2f-expense-api.md. Le présent document porte le connecteur lui-même.
Ceux qui portent le statut Client sur l'entité ISI concernée — c'est-à-dire, selon la règle déjà appliquée par le CRM : une affaire gagnée, signée et non échue, ou une facture de moins de 12 mois.
Au 15 septembre 2026, cela représente 172 clients sur les trois entités du groupe. Le connecteur ne redéfinit rien : il reprend le statut que le CRM calcule déjà, visible sur chaque fiche client.
Un client suivi par deux entités (ISI-APP et ISI-DSI, par exemple) part dans les deux sociétés N2F correspondantes. C'est voulu : les dépenses y sont imputées séparément.
Une instance du connecteur par société N2F, chacune rattachée à une entité ISI. Le groupe en compte trois, donc trois instances à terme. Chaque instance dit :
| Réglage | Ce qu'il décide |
|---|---|
| Plateforme | Préproduction (bac à sable) ou production |
| Société N2F | Où atterrissent les clients |
| Entité ISI source | Quels clients partent |
La préproduction est le réglage par défaut : une instance dont la configuration n'est pas terminée ne peut pas écrire par mégarde dans le référentiel réel du groupe.
Store → Mes connecteurs → l'instance N2F. L'écran comporte un panneau Diagnostic N2F avec deux boutons, et la configuration juste en dessous.
Le bouton Tester la connexion vérifie à tout moment que les identifiants sont acceptés.
N2F bloque l'accès à son API pendant 12 heures au moindre dépassement de quota, sans possibilité d'annulation, et ce blocage vaut pour tout le groupe. Les écrans sont donc conçus pour que rien ne parte par accident :
N2F interdit les traitements par lot entre 6 h et 21 h. La synchronisation tournera donc la nuit : une modification faite dans le CRM est répercutée la nuit suivante, pas immédiatement. Avec environ cinq nouveaux clients par mois, l'écart est invisible à l'usage.
Un client qui sort du périmètre n'est jamais supprimé de N2F : il reçoit une date de fin de validité. Il disparaît des choix de saisie, mais les notes de frais qui le mentionnent restent intactes.
| Qui | Ce qu'il peut faire |
|---|---|
| Développeur ISI | Tout : installer, configurer, diagnostiquer |
| Administrateur Store du client | Voit l'instance, ne peut ni la configurer ni la tester |
| Client sans module CRM | Le connecteur n'apparaît pas à son catalogue |
| Session d'assistance | Refusée, même si l'assistant connecté est développeur |
Ce cloisonnement tient à la nature des identifiants : ils sont globaux à la société N2F, non cloisonnés par entité, et le connecteur écrit dans le référentiel de notes de frais du groupe.
L'écran Clients à exporter vers N2F compare le CRM et N2F sans rien écrire, et affiche quatre compteurs :
| Compteur | Ce qu'il veut dire |
|---|---|
| À créer | Le client n'existe pas encore dans N2F |
| À mettre à jour | Il existe, mais son nom ou son adresse a changé côté CRM |
| Déjà à jour | Rien à faire |
| Hors CRM | Valeurs saisies à la main dans N2F. Le connecteur n'y touche jamais |
L'aperçu n'est pas chargé automatiquement : ouvrir ou recharger la page ne consomme aucun appel.
Ensuite, le bouton Envoyer le lot pousse 1, 5 ou 25 clients, jamais les 173 d'un coup. Les envois sont séquentiels et espacés de quelques secondes : un lot prend donc un petit moment, c'est normal et c'est ce qui protège l'accès API du groupe.
Deux situations où le bouton reste volontairement inactif :
Un client qui n'est plus « Client » sur l'entité source est désactivé dans N2F : il reçoit une date de fin de validité. Il disparaît des choix de saisie, mais les notes de frais qui le mentionnent restent intactes. Rien n'est jamais supprimé.
Ces clients apparaissent dans l'aperçu sous l'étiquette À désactiver, avant d'être traités.
La synchronisation nocturne tourne sans personne pour la valider. Si une erreur de configuration — une entité source changée par mégarde, une société N2F repointée — faisait paraître le portefeuille vide, elle désactiverait tous les clients en une nuit.
Le connecteur refuse de continuer dans ce cas : si le CRM ne remonte aucun client actif, ou si plus d'un dixième des clients devraient être retirés d'un coup, la synchronisation s'arrête et l'explique dans son journal. Le retrait reste alors possible depuis l'écran, une fois la configuration vérifiée.
Chaque nuit, entre 21 h et 6 h : N2F interdit les traitements par lot en journée. Une modification faite dans le CRM est donc répercutée la nuit suivante.
Pour activer la synchronisation automatique, réglez l'instance sur Planifié avec la fréquence voulue dans l'onglet Automatisation. L'ordonnanceur attend l'ouverture de la fenêtre : inutile de viser une heure précise.
En journée, l'envoi manuel reste possible jusqu'à 5 clients — de quoi vérifier un cas particulier sans attendre la nuit.
Deux instances actives pointant la même société se désactiveraient mutuellement chaque nuit : chacune considérerait les clients de l'autre comme sortis de son périmètre. L'application refuse cette configuration à l'activation.
C'est un piège réel en recette : la préproduction n'expose qu'une seule société. La production, elle, en expose deux : ISI DSI et ISI APP.
projects dans un second temps ?Choisir un client sur une dépense ne la bascule pas automatiquement en refacturable. C'est un choix : une réunion interne chez un client, une avant-vente, un déplacement commercial ne se refacturent pas. L'axe sert à imputer la dépense au bon client ; le collaborateur décide ensuite si elle lui est refacturée.
(Techniquement, N2F permettrait de forcer ce comportement. Ce n'est volontairement pas activé.)
Le CRM a le dernier mot. Un client désactivé à la main dans N2F sera réactivé à la prochaine synchronisation, puisque le CRM est la source unique. Pour le retirer durablement, il faut qu'il sorte du périmètre côté CRM.
Les entités du groupe ne partent pas. ISI-GROUPE, ISI-APP et ISI-DSI ont chacune leur fiche client dans le CRM ; les pousser reviendrait à proposer « ISI-DSI » comme client sur une note de frais d'ISI-DSI. Elles sont écartées automatiquement, sans liste à tenir à jour.
Une entité sans client actif donne un écran vide. C'est le cas d'ISI-GROUPE aujourd'hui : les clients sont portés par ISI-APP (143) et ISI-DSI (93).
.claude/technical-docs/integrations/n2f-crm-connector.mdn2f-expense-api.md