Documentation

Intégrations & connecteurs

Comment connecter un logiciel de gestion de formation pour importer automatiquement les stagiaires dans Rappel Forma, et comment ajouter un nouveau connecteur.

Un connecteur permet à un organisme de formation de relier son outil (Digiforma, Qualiobee…) à Rappel Forma, via sa propre clé API. Les stagiaires sont alors importés en profils suivis (avec leurs formations à venir), et reçoivent des rappels avant échéance — après un double opt-in.

Le contrat de données (ce que chaque connecteur doit fournir)

Chaque connecteur normalise les données du fournisseur vers ces types (fichier src/lib/connectors/types.ts) :

export interface ImportedTraining {
  code?: string | null;       // mappe certification_types.code (ex. "SSIAP1")
  name: string;               // libellé de la formation
  obtainedDate?: string | null;   // AAAA-MM-JJ
  validityMonths?: number | null; // périodicité, si connue
}

export interface ImportedTrainee {
  externalId: string;         // identifiant côté fournisseur (dédup)
  firstName: string;
  lastName: string;
  email?: string | null;
  phone?: string | null;
  trainings: ImportedTraining[];
}

L'interface à implémenter

Un connecteur implémente Connector : un test de validité de la clé, et la récupération des stagiaires.

export interface Connector {
  provider: "digiforma" | "qualiobee";
  test(token: string): Promise<boolean>;
  fetchTrainees(token: string): Promise<ImportedTrainee[]>;
}

Ajouter un nouveau connecteur (3 étapes)

1. Créer src/lib/connectors/<provider>.ts exportant un objet Connector. 2. L'enregistrer dans src/lib/connectors/index.ts. 3. L'ajouter à la liste provider (enum SQL + UI). Le moteur de synchronisation (src/lib/connectors/sync.ts) se charge ensuite, de façon idempotente, de créer/mettre à jour les profils dans un groupe « Stagiaires <provider> » et de mapper les formations vers les certifications.

// src/lib/connectors/index.ts
const REGISTRY = {
  digiforma: digiformaConnector,
  qualiobee: qualiobeeConnector,
  // monoutil: monoutilConnector,  ← ajouter ici
};

Ce que nous demandons à l'organisme

Une clé API en lecture sur ses stagiaires. Elle est collée dans l'espace /connectors, testée, puis stockée côté serveur (jamais renvoyée au navigateur). La synchronisation est déclenchée manuellement ou planifiée.

Sécurité & RGPD

L'import traite des données de tiers (les stagiaires) : base légale du responsable de traitement (l'organisme), double opt-in avant tout rappel direct au stagiaire, hébergement UE, et possibilité pour la personne de gérer/retirer ses données.

Connecteurs disponibles