# prescriptio_prospection_valider

Fait avancer une touche preparee, sur l'un des DEUX canaux (offre payante). action:"valider" = l'utilisateur approuve le brouillon (draft -> queued) ; action:"envoyee" = le message est effectivement parti (-> sent, horodate) ; action:"annuler" = on abandonne (-> cancelled). ⚠ Prescriptio n'ENVOIE rien : le message prive part de l'extension, l'e-mail de la messagerie de l'utilisateur. Cet outil enregistre une DECISION, il ne declenche aucun envoi. Ne jamais appeler action:"valider" sans que l'utilisateur ait explicitement approuve le texte.

État : implémenté ; distribution : historique uniquement ; offre payante : true ; effets : lecture et écriture possibles.

## Entrée MCP

```json
{
  "properties": {
    "action": {
      "description": "valider = l'utilisateur approuve le brouillon, il est pret a partir (draft -> queued). envoyee = le message est effectivement parti (-> sent, horodate). annuler = on abandonne cette touche (-> cancelled). Prescriptio n'envoie RIEN lui-meme : ces statuts enregistrent une decision humaine.",
      "enum": [
        "valider",
        "envoyee",
        "annuler"
      ],
      "type": "string"
    },
    "channel": {
      "description": "Canal de la touche a faire avancer : linkedin (defaut) ou email. Les deux canaux ont leur propre touche pour un meme prospect.",
      "enum": [
        "linkedin",
        "email"
      ],
      "type": "string"
    },
    "prospect_id": {
      "description": "UUID du prospect concerne. Alias accepte : contact_id.",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "type": "string"
    }
  },
  "required": [
    "prospect_id",
    "action"
  ],
  "type": "object"
}
```

## Sortie MCP

```json
{
  "properties": {
    "action": {
      "type": "string"
    },
    "download_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "fields": {
      "type": "object"
    },
    "files": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "ok": {
      "type": "boolean"
    },
    "page": {
      "type": [
        "integer",
        "null"
      ]
    },
    "pages_total": {
      "type": [
        "integer",
        "null"
      ]
    },
    "quota": {
      "type": "object"
    },
    "texte": {
      "description": "Contenu textuel (pièce de DCE, PV…).",
      "type": "string"
    }
  },
  "type": "object"
}
```

[Contrats externes et limites](/docs/reference/concepts.md).
