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.
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/api/connectors/demandes
•••••••••••••••••••••••• (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.
| Champ | Requis | Description |
|---|---|---|
nom | Oui | Nom de l'expéditeur (≤ 150 car.). Alias : name. |
email | Oui | Adresse email valide (≤ 190 car.). |
message | Oui | Contenu du message (≤ 20 000 car.). |
telephone | Non | Téléphone (≤ 40 car.). Alias : phone. |
entreprise | Non | Société (≤ 190 car.). Alias : company. |
pack | Non | Offre d'intérêt. Valeurs acceptées : starter, essentiel, pro, premium (toute autre valeur est ignorée). |
api_key | Oui* | 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.
- Ouvrez Administration → Connecteurs (route /connectors).
- Sur la carte Demandes, cliquez sur Générer (ou Régénérer si une clé existe déjà).
- Copiez la clé immédiatement : elle n'est affichée qu'une seule fois, à sa génération.
- Collez-la dans le code d'intégration de votre site (en-tête
X-Api-Keyou champapi_key).
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.
- Si aucun site web n'est configuré, aucun en-tête CORS n'est émis : l'appel cross-origin échoue côté navigateur (pas de repli « tout ouvrir »).
- Les en-têtes autorisés sont
Content-TypeetX-Api-Key; les méthodesPOSTetOPTIONS. - L'appel serveur à serveur (cURL, backend de votre site) n'est pas soumis au CORS et fonctionne sans configuration de domaine — seule la clé d'API compte.
pack est filtré par liste
blanche pour neutraliser toute injection.Du formulaire à la 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.view | Consulter les connecteurs & la documentation API (URL d'ingestion, champs, exemples). Ouvre la page d'administration. |
connectors.manage | Ré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
- Demandes — la boîte de réception alimentée par ce connecteur.
- IntegrIA — l'agent IA, dont le connecteur se configure également sur cette page.
- Paramètres → Site web — définit le domaine autorisé pour les appels CORS.
- Rôles & permissions — pour accorder
connectors.viewetconnectors.manage.