Beaucoup de demandes sur une pièce d’occasion sont les trois mêmes questions : convient-elle à mon véhicule, combien coûte le port, dans quel état est-elle. Elles arrivent le soir et le week-end, et qui attend lundi achète ailleurs. Un formulaire recueille la question mais n’y répond pas.
Le canal site est conçu comme une passerelle navigateur, non comme un appel Hub à identifiant caché : le widget s’authentifie par une clé de canal, remplaçable à tout moment. Votre clé API reste sur le serveur, à sa place.
| Surface | Rôles |
|---|---|
| Agent commercial | Commerce de pièces, Commerce automobile, Plateforme et marketplace |
Ce que ce cas suppose
- Un profil configuré. L’agent répond selon son instruction ; sans profil, ni ton, ni règles, ni permissions.
- Un canal site avec origines autorisées.
allowedOriginsdéfinit depuis quelles adresses le widget peut parler — c’est la protection contre l’usage abusif de la clé de canal. À la configuration du widget et au démarrage d’une conversation, l’Origin de la requête doit figurer parmi ces origines, sinon la passerelle répond parorigin_not_allowed. - Le jeton de visiteur.
GET /web/channelle délivre ; la passerelle l’attend en retour dans l’en-têteX-Agent-Visitor. - Un endroit où aboutissent les transferts.
needsHumansans boîte de réception est un avertissement que personne ne lit.
Le déroulement
Le tableau indique pour chaque étape l’appel compétent et ce qui existe ensuite. La justification de l’étape figure en dessous.
| Étape | Appel | Ce qui existe ensuite |
|---|---|---|
| Configurer le widget | GET /web/channel | title, greeting, accentColor, locale et maxMessageChars pour l’interface |
| Démarrer la conversation | POST /web/conversations | conversationId et la première réponse, avec needsHuman et owner |
| Poursuivre l’échange | POST /web/conversations/{conversationId}/messages | Une réponse par tour avec seq ; le même clientMessageId renvoie la réponse enregistrée |
| Clore la conversation | POST /web/conversations/{conversationId}/close | Une conversation close qui reste traçable dans la boîte de réception |
Pourquoi chaque étape est nécessaire
- Configurer le widget.
GET /web/channelrenvoietitle,greeting,accentColor,locale,pollIntervalSecondsetmaxMessageChars. L’interface n’est donc pas câblée dans le script mais chargée du canal — changer le message d’accueil n’exige aucune reconstruction de page. - Démarrer la conversation.
POST /web/conversationsaccepte le premier message et exécute aussitôt le premier tour. ReviennentconversationId,seqet la réponse, avecneedsHumanetowner. Un second appel pour la première réponse serait une attente évitable. - Poursuivre l’échange.
POST /web/conversations/{conversationId}/messagesexécute chaque tour suivant. LeclientMessageIdcompte plus qu’il n’y paraît : si un message est renvoyé avec le mêmeclientMessageId, l’appel renvoie la réponse enregistrée au lieu de recommencer. - Clore la conversation.
POST /web/conversations/{conversationId}/closela termine. Close ne veut pas dire supprimée — l’historique reste traçable dans la boîte, et c’est précisément utile en cas de réclamation.
curl -X POST \
-H 'X-Agent-Channel-Key: <KANALSCHLUESSEL>' \
-H 'X-Agent-Visitor: <BESUCHERTOKEN>' \
-H 'Content-Type: application/json' \
-d '{"message":"Passt der Scheinwerfer an einen Golf 7 Facelift?","clientMessageId":"m-1"}' \
'https://api.tapinomahub.com/agent/api/index.php/web/conversations'Ce que l’on obtient
Au final, le site répond lui-même aux questions récurrentes et transmet les autres, avec leur historique, à un collègue. Le visiteur n’attend pas lundi, et le collègue ne part pas de zéro.
Où cela figure dans la documentation
Les listes de champs contractuelles, les codes d’erreur et les réponses d’exemple se trouvent dans le contrat OpenAPI de cette surface, à l’adresse docs.tapinomahub.com (tapinoma-agent). Tous les cas d’usage classés par surface et par rôle : aperçu des cas d’usage.
Sources et références juridiques
Questions fréquentes
Ma clé API arrive-t-elle dans le navigateur ?
Non. Le widget s’authentifie par une clé de canal valable pour ce seul canal, et remplaçable. La clé API reste côté serveur.
Et si un tiers copie la clé de canal ?
C’est l’objet des origines autorisées et de la possibilité de changer la clé. S’y ajoutent des limites de tours par visiteur et de conversations par heure.
Puis-je changer l’accueil sans reconstruire la page ?
Oui. Le widget charge titre, accueil et couleur d’accent depuis le canal. Une modification du canal prend effet au chargement suivant.
