Aller au contenu

Ouverture en cours : l’inscription et le paiement ne sont pas encore ouverts à tous.

subagentdocs
Sommaire de la documentation

Documentation › Outils › approve_message

approve_message

Voir en .md

Validation humaine : le brouillon passe en file et partira dans le créneau, selon les quotas.

En bref

PropriétéValeur
TitreValider un brouillon
Outil MCPapprove_message, sur https://api.subagent.fr/mcp
Appel HTTPPOST https://api.subagent.fr/v1/approve_message
Accèspermission approve
État de l’espacevérifié ou non
Effetécriture
Vue dans l’assistantnon

Ce que fait l’outil

Le serveur décrit l’outil ainsi à l’agent qui se branche :

Validation humaine : le brouillon passe en file et partira dans le créneau, selon les quotas. Réservé à une clé qui porte la permission approve (un humain dans son assistant) : un agent ne valide jamais ses propres envois. Refusé si le destinataire a été bloqué depuis la création. Donnez revision (lue dans list_drafts) : la validation est alors refusée si le brouillon a changé depuis sa lecture.

Paramètres

approve_message accepte ces paramètres. Un paramètre inconnu est refusé avec le code invalid_argument.

ParamètreTypeObligatoireDescription
message_ididentifiant msg_…ouiLe brouillon (msg_…, voir list_drafts).
revisiontextenonLa version du brouillon tel qu’il a été lu (champ revision de list_drafts). S’il a changé depuis, la validation est refusée (draft_changed). 32 caractères au plus.

Résultat

L’outil rend un message. L’objet structuré déclare les champs ci-dessous ; la page de concept les décrit tous : voir les champs d’un message.

ChampTypeContenu
auto_replybooléenRéponse automatique (absence…).
created_attexteISO 8601.
directiontexteoutbound : sortant ; inbound : entrant.
estimated_send_attexte ou nullDépart au plus tôt du message validé (estimation : créneau, étalement, quota).
fromtexteExpéditeur.
has_htmlbooléenLe message a une version HTML.
idtexteIdentifiant du message (msg_…).
inbox_idtexteBoîte du message.
received_attexte ou nullLa date de réception d’un message entrant (ISO 8601), sinon null.
reply_totexte ou nullAdresse de réponse, si elle diffère de la boîte.
revisiontexteVersion du message : change à chaque modification (voir approve_message).
sent_attexte ou nullLa date du départ (ISO 8601), sinon null.
statustexteLe statut du message. Valeurs : draft, queued, sending, sent, delivered, bounced, failed, rejected, cancelled, received.
status_codetexte ou nullCode stable d’un refus ou d’un échec.
subjecttexteSujet.
texttexteTexte (lecture d’un message ou d’un fil).
thread_idtexteFil du message.
totexteDestinataire.

Exemple d’appel

Les valeurs sont fictives.

HTTP

curl -X POST https://api.subagent.fr/v1/approve_message \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "message_id": "msg_7f2a91c4e8b34d0fa6c25e1b9d3f7a48",
  "revision": "1791892920417352"
}'

MCP · tools/call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "approve_message",
    "arguments": {
      "message_id": "msg_7f2a91c4e8b34d0fa6c25e1b9d3f7a48",
      "revision": "1791892920417352"
    }
  }
}

Refus possibles

CodeHTTPCe qui s’est passéQue faire
not_found404L’objet n’existe pas pour cette clé.Vérifier l’identifiant : il vient de list_inboxes, list_threads, get_thread ou list_drafts.
not_draft409Le message n’est pas, ou n’est plus, un brouillon.Relire son statut avec get_message.
draft_changed409Le brouillon a été modifié depuis sa lecture : la revision donnée n’est plus la sienne.Relire le brouillon avec list_drafts, puis valider la version lue.
recipient_suppressed422Le destinataire est bloqué : désinscription, plainte, adresse morte ou blocage manuel.Ne plus écrire à cette adresse, depuis aucune boîte.
payment_required402L’espace n’a pas de forfait en cours : sa boîte reçoit, prépare des brouillons et n’écrit qu’à son humain. Le refus vaut pour un envoi à un tiers, la validation d’un brouillon, une seconde boîte et add_domain.Appeler subscribe, après l’accord de l’humain, et lui remettre le lien de paiement. Ensuite, billing_status dit si le forfait est en cours.
own_domain_required422La boîte est sur le domaine commun : elle ne fait que répondre à qui lui a écrit. Un premier message, ou une relance sans réponse, n’en part pas.Enregistrer le domaine de l’humain (add_domain), le faire vérifier (verify_domain), y créer une boîte (create_inbox) et écrire depuis elle.

S’y ajoutent les refus communs à tous les outils (unauthorized, forbidden, invalid_argument, rate_limited, internal) : voir Erreurs.

Voir aussi

Cette page en Markdown : /docs/reference/approve_message.md Toute la documentation pour un agent : /llms.txt Mentions légales · Conditions de vente · Confidentialité · Signaler un abus