Sur la marketplace, des acheteurs proposent des prix. Le prix plancher enregistré est la seule base de négociation de l’agent. Sans prix plancher pour un article, il ne tranche pas une offre de prix mais la transmet à un humain. Ces offres transmises forment la file de travail — et elles expirent si personne ne les regarde.
La liste des offres de la boîte montre les offres avec la décision prise par l’agent — ou sans décision s’il a transmis l’offre. Là où il a décidé, decisionPriceCents indique le cas échéant le prix. Le filtre needs_human la réduit à ce qu’un humain doit trancher.
| Surface | Rôles |
|---|---|
| Agent commercial | Commerce de pièces, Commerce automobile |
Ce que ce cas suppose
- Un canal marketplace avec consentement accordé. Sans lui, aucune offre n’atteint l’agent.
- Des prix plancher enregistrés. Ils sont la seule base de négociation de l’agent ; sans eux, il ne décide pas.
- Quelqu’un qui consulte le filtre régulièrement. Une offre porte une date d’expiration.
- Une ligne pour les contre-offres. Jusqu’où un collègue descend sous le plancher est une décision commerciale, non technique.
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 |
|---|---|---|
| Consulter les prix plancher | GET /agent/items/prices | minPriceCents par itemKey avec updatedAt |
| Filtrer les offres ouvertes | GET /agent/inbox/offers | status needs_human montre les offres qu’un humain doit trancher |
| Lire la conversation | GET /agent/inbox/conversations/{conversationId} | Historique avec actions, findings et suggestedReply |
| Répondre | POST /agent/inbox/conversations/{conversationId}/reply | deliveryStatus ; l’appel suppose que la conversation a été reprise auparavant |
| Marquer comme lu | POST /agent/inbox/conversations/{conversationId}/read | unreadCount baisse, la file de travail reste fidèle |
Pourquoi chaque étape est nécessaire
- Consulter les prix plancher.
GET /agent/items/priceslisteminPriceCentsparitemKeyavecupdatedAt. Avant de juger une offre, le collègue voit sur quelle base l’agent aurait décidé — et si elle est encore à jour. - Filtrer les offres ouvertes.
GET /agent/inbox/offersconnaîtstatusavecpending,decidedetneeds_human. Chaque offre porteitemPriceCents,offerPriceCents,expiresAt,decisionavecaccept,decline,counter,recordouhandoff, et le cas échéantdecisionPriceCents. - Lire la conversation.
GET /agent/inbox/conversations/{conversationId}montre l’historique avecactions,findingsetsuggestedReply. Le collègue voit ainsi l’historique avant de répondre. - Répondre.
POST /agent/inbox/conversations/{conversationId}/replysuppose que la conversation a d’abord été reprise avecPOST /agent/inbox/conversations/{conversationId}/takeover, et renvoiedeliveryStatus. Sur un canal messagerie ou marketplace, la réponse est mise en file pour livraison ; sur le site, elle est aussitôt considérée comme livrée. - Marquer comme lu.
POST /agent/inbox/conversations/{conversationId}/readremetunreadCountà zéro. Cela paraît secondaire mais garde la file de travail fidèle : ce qui est lu et traité disparaît de la vue de ceux qui cherchent l’ouvert.
curl -H 'X-Api-Key: <API_KEY>' \ 'https://api.tapinomahub.com/hub/index.php/agent/inbox/offers?status=needs_human&limit=25'
Ce que l’on obtient
Au final, chaque offre a une décision — de l’agent là où le prix plancher la porte, d’un collègue là où il ne la porte pas. Aucune offre n’expire pour avoir été dans la mauvaise liste.
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
Pourquoi l’agent n’a-t-il pas tranché une offre lui-même ?
Le contrat nomme expressément un cas : sans prix plancher pour un article, il ne tranche pas une offre de prix mais la transmet à un humain. La conversation liée montre l’historique.
Puis-je voir à quel prix l’agent a décidé ?
Oui. decisionPriceCents indique le prix de la décision, decidedAt la date.
Que signifie record comme décision ?
record est l’une des valeurs de decision, avec accept, decline, counter et handoff. Le contrat ne décrit pas cette valeur plus avant.
