Aller au contenu
Documentation

Accepter ou refuser une proposition

Faire faire, ou non, une action que l'assistant propose — un email, un parcours envoyé, une suppression —, puis lire la suite.

2 min de lecture Mise à jour le 12 novembre 2026

Ce qui part vers l'extérieur ou ne se défait pas, l'assistant ne le fait pas seul : il le propose. La proposition arrive dans la conversation, en carte de genre 2 :

JSON
{
  "Id": "00000000-0000-4000-8000-000000000704",
  "Origin": 3,
  "BodyText": "Envoyer à Camille Martin l'email « Votre devis D-2026-0042 » depuis votre compte email.",
  "Card": {
    "Kind": 2,
    "Html": "<p>Envoyer à Camille Martin l'email « Votre devis D-2026-0042 » depuis votre compte email.</p>",
    "ProposalId": "00000000-0000-4000-8000-000000000705",
    "ProposalStatus": 0,
    "Family": 2
  }
}

Le texte dit ce que l'action fera ; Family en est la famille (1 un message de chat, 2 un email, 3 un SMS, 5 l'envoi d'un parcours, 9 une suppression…). Les propositions qui attendent se lisent aussi, sans parcourir la conversation, dans PendingProposalIds du traitement de la demande (GET https://staging-api.docage.com/Assistant/Messages/{id}/Run, voir Confier une demande et lire la réponse).

L'accepter

POST https://staging-api.docage.com/Assistant/Proposals/00000000-0000-4000-8000-000000000705/Accept
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…

L'action est faite aussitôt, une fois, au nom de l'utilisateur, et la réponse dit son résultat :

JSON
{ "Id": "00000000-0000-4000-8000-000000000705", "Status": 2, "ResultStatusCode": 200, "ResultSummary": "Fait." }

Status : 2 faite — ResultSummary vaut « Fait. », ou « Fait — fiche … » avec l'identifiant de la fiche créée ; 5 en échec : l'action a été refusée par le serveur, ResultSummary dit pourquoi, et la réponse reste 200.

La refuser

POST https://staging-api.docage.com/Assistant/Proposals/00000000-0000-4000-8000-000000000705/Refuse
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…

Rien n'est fait : Status vaut 3.

Ensuite

La carte de la proposition se met à jour : son ProposalStatus, et Outcome, le résultat de l'action en une phrase. Si l'assistant n'attend plus d'autre décision, il reprend la demande et écrit la suite dans la conversation — une réponse dont le Receipt dit « proposition « … » acceptée et faite ». Son traitement repart (Working redevient vrai) : interrogez-le par le message de la demande jusqu'à ce qu'il rende la main, puis lisez la suite, comme dans Confier une demande et lire la réponse.

Les refus

409 : « Cette proposition n'existe pas, ou elle a déjà été décidée. » — elle n'est pas celle de l'utilisateur, elle a déjà été acceptée ou refusée, ou elle a expiré.

Les pièges

  • Une proposition vaut sept jours ; au-delà, elle ne se décide plus.
  • Une proposition peut être remplacée par une plus récente, qui dit la même chose autrement : son ProposalStatus passe à 6, et seule la nouvelle se décide.
  • Décider revient à l'utilisateur : montrez-lui la proposition avant d'appeler Accept. L'assistant, lui, ne peut jamais accepter ses propres propositions.
  • Écrire un nouveau message plutôt que de décider fait reprendre la demande : l'assistant le lit comme une réponse, et la proposition reste en attente.
  • Une question (carte de genre 3) ne se décide pas : on y répond par un message, la réponse choisie parmi Choices ou en texte libre.