Offres de prix des acheteurs : ce que l’agent a décidé, et ce qu’il n’a pas décidéTous les articles

Offres de prix des acheteurs : ce que l’agent a décidé, et ce qu’il n’a pas décidé

Une offre de prix sans réaction est une vente perdue. Ce cas montre comment un négociant passe en revue les offres que l’agent ne pouvait pas trancher seul.

Publié: 2026-09-12Temps de lecture: 4 minAPI tapinomahub & processus
API & processusPrix & évaluationAftermarket automobileAPIMarketplacesCommerce de piècesCommerce automobile

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.

Offres de prix des acheteurs : ce que l’agent a décidé, et ce qu’il n’a pas décidéEntrée : des offres de prix sur la marketplace, certaines décidées, d’autres transmises 1. Consulter les prix plancher (GET /agent/items/prices): minPriceCents par itemKey avec updatedAt 2. Filtrer les offres ouvertes (GET /agent/inbox/offers): status needs_human montre les offres qu’un humain doit trancher 3. Lire la conversation (GET /agent/inbox/conversations/{conversationId}): Historique avec actions, findings et suggestedReply 4. Répondre (POST /agent/inbox/conversations/{conversationId}/reply): deliveryStatus ; l’appel suppose que la conversation a été reprise auparavant 5. Marquer comme lu (POST /agent/inbox/conversations/{conversationId}/read): unreadCount baisse, la file de travail reste fidèle Sortie : chaque offre a une décision — de l’agent ou d’un collègue decision connaît accept, decline, counter, record et handoff. decisionPriceCents indique le prix de la décision.Offres de prix des acheteurs : ce que l’agent a décidé, etce qu’il n’a pas décidéEntrée : des offres de prix sur la marketplace, certaines décidées, d’autres transmises01Consulter les prix plancherGET /agent/items/pricesminPriceCents par itemKey avec updatedAt02Filtrer les offres ouvertesGET /agent/inbox/offersstatus needs_human montre les offres qu’un humain doit trancher03Lire la conversationGET /agent/inbox/conversations/{conversationId}Historique avec actions, findings et suggestedReply04RépondrePOST /agent/inbox/conversations/{conversationId}/replydeliveryStatus ; l’appel suppose que la conversation a été reprise auparavant05Marquer comme luPOST /agent/inbox/conversations/{conversationId}/readunreadCount baisse, la file de travail reste fidèleSortie : chaque offre a une décision — de l’agent ou d’un collèguedecision connaît accept, decline, counter, record et handoff. decisionPriceCents indique le prix de la décision.
Cinq appels du prix plancher à l’offre traitée.

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.

SurfaceRôles
Agent commercialCommerce 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.

La chaîne d’appels de ce cas d’usage
ÉtapeAppelCe qui existe ensuite
Consulter les prix plancherGET /agent/items/pricesminPriceCents par itemKey avec updatedAt
Filtrer les offres ouvertesGET /agent/inbox/offersstatus needs_human montre les offres qu’un humain doit trancher
Lire la conversationGET /agent/inbox/conversations/{conversationId}Historique avec actions, findings et suggestedReply
RépondrePOST /agent/inbox/conversations/{conversationId}/replydeliveryStatus ; l’appel suppose que la conversation a été reprise auparavant
Marquer comme luPOST /agent/inbox/conversations/{conversationId}/readunreadCount baisse, la file de travail reste fidèle

Pourquoi chaque étape est nécessaire

  1. Consulter les prix plancher. GET /agent/items/prices liste minPriceCents par itemKey avec updatedAt. Avant de juger une offre, le collègue voit sur quelle base l’agent aurait décidé — et si elle est encore à jour.
  2. Filtrer les offres ouvertes. GET /agent/inbox/offers connaît status avec pending, decided et needs_human. Chaque offre porte itemPriceCents, offerPriceCents, expiresAt, decision avec accept, decline, counter, record ou handoff, et le cas échéant decisionPriceCents.
  3. Lire la conversation. GET /agent/inbox/conversations/{conversationId} montre l’historique avec actions, findings et suggestedReply. Le collègue voit ainsi l’historique avant de répondre.
  4. Répondre. POST /agent/inbox/conversations/{conversationId}/reply suppose que la conversation a d’abord été reprise avec POST /agent/inbox/conversations/{conversationId}/takeover, et renvoie deliveryStatus. 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.
  5. Marquer comme lu. POST /agent/inbox/conversations/{conversationId}/read remet unreadCount à 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.
Charger seulement les offres qu’un humain doit trancher
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.