API publique de leads : OAuth2 et exemples
Endpoint public d'ingestion de leads : authentification OAuth2, corps de la requête, idempotence et un exemple complet.
Portal Hero lance un nouvel endpoint dans son API publique qui permet aux concessionnaires de recevoir des leads depuis n'importe quelle source externe directement dans leur CRM. Formulaires web, landing pages, campagnes Google Ads, intégrations avec des tiers... tous les leads centralisés à un seul endroit.
Pour l'entreprise : tous vos leads à un seul endroit
Jusqu'à présent, les leads qui arrivaient dans votre CRM Portal Hero provenaient exclusivement des conversations sur les marketplaces où vous publiez vos produits. Le système les détectait automatiquement et les convertissait en opportunités de vente.
Avec le nouvel endpoint d'ingestion de leads, cette limitation disparaît. Vous pouvez désormais connecter n'importe quelle source de captation de clients à votre CRM Portal Hero :
- Formulaire de contact sur votre site web : chaque envoi crée automatiquement un lead dans votre CRM avec les données du client et le produit qui l'intéresse.
- Landing pages de campagnes Google Ads : configurez un webhook qui, à la réception d'un formulaire, envoie les données directement à Portal Hero.
- Outils d'automatisation (Zapier, Make, n8n) : connectez n'importe quelle source de leads avec un simple connecteur HTTP.
- Centralisation totale : quelle que soit la provenance du lead, ils se gèrent tous depuis le même panneau.
Le résultat est une vision complète de toutes vos opportunités de vente, sans avoir à jongler entre les plateformes ni à perdre des leads en chemin.
Sans doublons, sans complications
L'endpoint est intelligent : si un client existe déjà dans votre CRM (identifié par son téléphone ou son e-mail), un nouveau n'est pas créé. S'il a déjà une opportunité de vente ouverte, les nouveaux produits sont ajoutés à cette opportunité existante. Et si un produit était déjà associé, il est simplement ignoré. Tout cela se produit de façon automatique, sans que vous ayez à vous soucier des doublons.
Pour le développeur : guide d'intégration
L'endpoint est disponible dans l'API publique de Portal Hero. Vous trouverez ci-dessous tout le nécessaire pour l'intégrer.
Authentification
L'API utilise OAuth2 avec un Bearer token. Obtenez d'abord un token avec les identifiants du compte Portal Hero :
curl -X POST https://public.api.portalhero.pro/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=tu_email@ejemplo.com" \
-d "password=tu_contraseña"
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "bearer"
}
Envoyer un lead
Avec le token, vous pouvez déjà envoyer des leads au CRM. Le body comporte trois champs principaux :
- customer (obligatoire) : données du client. Au moins phone ou email est requis.
- items (facultatif) : array de produits du catalogue référencés par leur external_id.
- source (facultatif) : origine du lead (par exemple "web_form", "google_ads"). Par défaut c'est "api".
Si le compte comporte plusieurs boutiques, ajoutez le query param user_id pour indiquer à laquelle envoyer le lead.
curl -X POST https://public.api.portalhero.pro/leads \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"customer": {
"phone": "+34612345678",
"email": "cliente@example.com",
"first_name": "Carlos",
"last_name": "García"
},
"items": [
{ "external_id": "MOTO-001" }
],
"source": "web_form"
}'
Réponse
L'API renvoie un JSON avec le résultat de l'opération, indiquant si un nouveau client a été créé ou si un client existant a été réutilisé, et de même pour l'opportunité de vente :
{
"customer_id": 42,
"opportunity_id": 15,
"items_added": 1,
"created_customer": true,
"created_opportunity": true
}
Comportement idempotent
- Si le client (par téléphone ou e-mail) existe déjà, il est réutilisé.
- S'il a déjà une opportunité de vente ouverte, les items sont ajoutés à celle existante.
- Si un item est déjà dans l'opportunité, il est ignoré sans erreur.
- Les items dont l'external_id n'est pas trouvé dans le catalogue sont ignorés avec un warning, sans que la requête échoue.
Exemple complet : du token au lead
Voici le flux complet pour obtenir un token et créer un lead depuis un formulaire web :
Étape 1 : Obtenir le token d'accès
curl -X POST https://public.api.portalhero.pro/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=tu_email@ejemplo.com" \
-d "password=tu_contraseña"
Étape 2 : Envoyer le lead
curl -X POST https://public.api.portalhero.pro/leads \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"customer": {
"phone": "+34612345678",
"email": "carlos.garcia@email.com",
"first_name": "Carlos",
"last_name": "García"
},
"items": [
{ "external_id": "MOTO-001" }
],
"source": "web_form"
}'
Étape 3 : Vérifier dans le dashboard
Accédez au CRM de Portal Hero et vérifiez que le lead apparaît avec les données du client et le produit associé. Si le client existait déjà, vous verrez le produit ajouté à son opportunité ouverte.
Si vous avez besoin d'aide pour l'intégration ou si vous avez des questions sur un cas d'usage, notre équipe de support technique est à votre disposition.