Connecteurs

Des passerelles publiques qui laissent un site externe (vitrine, portfolio) alimenter l'ERP. Le premier connecteur relie le formulaire de contact de votre site à la boîte des Demandes.

/connectors /api/connectors /api/connectors/demandes connectors.view connectors.manage

À quoi sert ce module

Un connecteur expose un point d'entrée sécurisé permettant à un site web tiers d'envoyer des données vers un module de l'ERP. Aujourd'hui, un connecteur est disponible : Demandes. Il branche le formulaire de contact de votre site vitrine sur la boîte de réception des Demandes de l'ERP — chaque message envoyé depuis votre site arrive directement dans l'application, sans copier-coller ni boîte mail intermédiaire.

Le module a deux faces. Côté administration (authentifié) : une page de documentation et la gestion des clés d'API. Côté public (sans session) : le point d'ingestion appelé par votre site, authentifié par une clé d'API plutôt que par une session. Il s'adresse aux administrateurs qui intègrent l'ERP au site de l'entreprise.

Un connecteur dépend du module qu'il alimente Le connecteur Demandes ne fonctionne que si le module Demandes est activé. S'il est désactivé, le connecteur est grisé dans l'administration et l'ingestion répond une erreur 503. La carte IntegrIA figure aussi sur cette page — c'est ici que se configure l'agent IA (voir IntegrIA).

Vue d'ensemble de l'écran

https://erp.entreprise.fr/connectors
Demandes Actif IntegrIA À configurer
Point d'ingestion
POST https://erp.entreprise.fr/api/connectors/demandes
Clé d'API
•••••••••••••••••••••••• (clé active) Régénérer

Une tuile d'aperçu par connecteur (état « Actif » / « À configurer » / « Indisponible »), puis une carte détaillée : URL d'ingestion, clé d'API, champs acceptés et exemples d'intégration (cURL, JavaScript, HTML).

Le point d'ingestion public

Votre site envoie les soumissions de son formulaire par une requête HTTP POST vers :

POST /api/connectors/demandes

Le corps est en JSON (ou en application/x-www-form-urlencoded). Comme l'appel vient d'un autre domaine que l'ERP, il n'utilise pas de session ni de jeton CSRF : il s'authentifie par la clé d'API du connecteur, transmise dans l'en-tête X-Api-Key ou dans le champ api_key du corps. En cas de succès, l'API répond 201 avec l'identifiant créé.

Exemple — requête HTTP brute

POST /api/connectors/demandes HTTP/1.1
Host: erp.entreprise.fr
Content-Type: application/json
X-Api-Key: ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

{
  "nom": "Jean Dupont",
  "email": "jean@exemple.fr",
  "telephone": "+33 6 12 34 56 78",
  "entreprise": "Studio Vega",
  "pack": "pro",
  "message": "Bonjour, je suis intéressé par vos services."
}

Réponse attendue :

HTTP/1.1 201 Created
Content-Type: application/json

{ "success": true, "id": "d-a1b2c3", "message": "Demande enregistrée." }

Variante cURL (serveur à serveur)

curl -X POST "https://erp.entreprise.fr/api/connectors/demandes" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: VOTRE_CLÉ_API" \
  -d '{"nom":"Jean Dupont","email":"jean@exemple.fr","message":"Bonjour."}'

Champs acceptés

Des alias français / anglais sont tolérés. Toute valeur est bornée en longueur.

ChampRequisDescription
nomOuiNom de l'expéditeur (≤ 150 car.). Alias : name.
emailOuiAdresse email valide (≤ 190 car.).
messageOuiContenu du message (≤ 20 000 car.).
telephoneNonTéléphone (≤ 40 car.). Alias : phone.
entrepriseNonSociété (≤ 190 car.). Alias : company.
packNonOffre d'intérêt. Valeurs acceptées : starter, essentiel, pro, premium (toute autre valeur est ignorée).
api_keyOui*Clé d'API, sauf si elle est fournie via l'en-tête X-Api-Key.

Si nom, message ou un email valide manque, l'API répond 422 sans rien enregistrer.

La clé d'API du connecteur

Chaque connecteur possède sa propre clé d'API (préfixe ck_). Elle est gérée depuis la carte du connecteur, sous le contrôle de la permission connectors.manage.

  1. Ouvrez Administration → Connecteurs (route /connectors).
  2. Sur la carte Demandes, cliquez sur Générer (ou Régénérer si une clé existe déjà).
  3. Copiez la clé immédiatement : elle n'est affichée qu'une seule fois, à sa génération.
  4. Collez-la dans le code d'intégration de votre site (en-tête X-Api-Key ou champ api_key).
La clé n'est affichée qu'une fois — et n'est pas relisible Elle est stockée hachée (SHA-256) côté serveur ; l'ERP ne connaît jamais la valeur en clair une fois la page quittée. Perdue ou compromise ? Régénérez-la : l'ancienne clé est aussitôt invalidée et doit être remplacée dans votre site. La carte indique aussi la date de dernière utilisation.

CORS et préflight (appel depuis un navigateur)

Quand l'envoi se fait directement depuis le navigateur du visiteur (par exemple en JavaScript fetch), le navigateur émet d'abord une requête de préflight OPTIONS sur le même point d'ingestion (route OPTIONS /api/connectors/demandes). L'ERP n'autorise alors l'appel que pour un seul domaine : celui renseigné dans Paramètres → Site web.

Où mettre la clé : navigateur ou serveur ? Dans un formulaire HTML pur, la clé est visible dans le code source de la page : préférez un appel JavaScript ou, mieux, un relais côté serveur de votre site qui détient la clé. Le point d'ingestion est en outre protégé contre la force brute (limitation par adresse IP), et le champ pack est filtré par liste blanche pour neutraliser toute injection.

Du formulaire à la boîte des Demandes

Formulaire
site externe
POST + clé d'API
/api/connectors/demandes
Boîte des Demandes

Chaque soumission valide crée une demande non lue dans le module Demandes, où vos équipes la traitent (lecture, conversion en client, suppression). Les Demandes ne sont jamais importables par CSV (voir Import / Export) précisément parce qu'elles entrent par ce connecteur public.

Permissions

CléAutorise
connectors.viewConsulter les connecteurs & la documentation API (URL d'ingestion, champs, exemples). Ouvre la page d'administration.
connectors.manageRégénérer les clés d'API des connecteurs. Sans ce droit, la page reste consultable mais le bouton de génération / rotation est masqué.

Le point d'ingestion public, lui, n'exige aucune permission de l'ERP : il est authentifié par la clé d'API du connecteur. La configuration de l'agent IA présente sur cette page relève quant à elle de integria.configure (voir IntegrIA).

Liens utiles