Configuration assistée
Un agent ou votre terminal propose la configuration du compte ; une personne la vérifie et l’approuve.
Cord lit le site web d’une entreprise, une description dans ses propres mots et sa liste de prix, puis prépare une proposition de configuration : informations du profil, marque, taxes, catalogue de produits, modèles de message et préférences de devis. C’est le même assistant que celui de l’onboarding et des Paramètres, exposé aux développeurs par trois portes :
| Porte | Comment |
|---|---|
| API REST | POST /api/v1/setup/plans et GET /api/v1/setup/plans/{id} |
| CLI | cord setup (voir CLI) |
| Serveur MCP | Les outils proponer_configuracion et estado_configuracion (voir Serveur MCP) |
L’IA n’applique jamais rien
Aucune des trois portes ne modifie le compte. Toutes renvoient une review_url : une page de l’application où une personne connectée disposant du droit Paramètres vérifie la proposition, peut la modifier, puis l’applique ou l’écarte. La proposition configure toujours le compte réel auquel appartient la clé, même si c’est une clé de test.
Proposer une configuration
Envoyez au moins l’un des trois champs :
| Champ | Type | Détail |
|---|---|---|
sitio |
string | Le site web de l’entreprise, par exemple materialesdelvalle.mx. Cord lit son texte, ses couleurs, son logo, ses adresses e-mail et ses numéros de téléphone. Jusqu’à 300 caractères. |
descripcion |
string | Ce que fait l’entreprise, comment elle encaisse et quelles taxes elle facture ou retient, dans ses propres mots. Jusqu’à 4 000 caractères ; le reste est tronqué. |
archivo |
objet | La liste de prix : { "nombre": "prices-2026.csv", "base64": "..." }. Excel (.xlsx), CSV, PDF ou photo (PNG ou JPG), jusqu’à 3 Mo avant encodage. |
curl https://cordhq.app/api/v1/setup/plans \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"sitio": "materialesdelvalle.mx",
"descripcion": "We sell building materials on 30-day credit and withhold 4% VAT on freight."
}'
Pour inclure la liste de prix depuis le terminal :
curl https://cordhq.app/api/v1/setup/plans \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d "{\"sitio\":\"materialesdelvalle.mx\",\"archivo\":{\"nombre\":\"prices.csv\",\"base64\":\"$(base64 < prices.csv | tr -d '\n')\"}}"
La réponse est 201 Created :
{
"data": {
"object": "setup_plan",
"id": "c7a2e9d1-4b6f-4f0a-8e3c-2d9b1a5f7e64",
"estado": "propuesto",
"review_url": "https://cordhq.app/app/setup/c7a2e9d1-4b6f-4f0a-8e3c-2d9b1a5f7e64",
"resumen": "Building materials distributor with 30-day credit and VAT withholding on freight.",
"conteos": { "perfil": 3, "marca": 2, "cotizaciones": 1, "impuestos": 1, "productos": 42, "plantillas": 2 },
"avisos": [],
"descartado": [
{ "campo": "perfil.telefono", "motivo": "No es un teléfono válido." }
]
}
}
| Champ | Description |
|---|---|
review_url |
La page où une personne vérifie et applique la proposition. Partagez-la avec la personne qui administre le compte. |
resumen |
Une ligne qui résume ce que Cord a compris de l’entreprise. Elle est rédigée dans la langue du compte. |
conteos |
Le nombre de modifications que contient chaque section. |
avisos |
Ce qui n’a pas pu être lu, par exemple un site qui n’a pas répondu ou une liste dont les colonnes n’ont pas été reconnues. La proposition est tout de même générée avec le reste. |
descartado |
Les données que l’IA a proposées et qui n’ont pas passé la validation de Cord (format fiscal, taux, prix). Elles n’arrivent jamais dans la proposition. |
Cord ne propose que ce que la source étaye : un identifiant fiscal uniquement s’il apparaît tel quel, un produit uniquement s’il a un prix, et une taxe uniquement si elle ne figure pas déjà dans votre catalogue. Chaque donnée passe par les mêmes règles propres au pays que dans les Paramètres.
Consulter l’état
curl https://cordhq.app/api/v1/setup/plans/c7a2e9d1-4b6f-4f0a-8e3c-2d9b1a5f7e64 \
-H "Authorization: Bearer sk_test_..."
{
"data": {
"object": "setup_plan",
"id": "c7a2e9d1-4b6f-4f0a-8e3c-2d9b1a5f7e64",
"estado": "aplicado",
"review_url": "https://cordhq.app/app/setup/c7a2e9d1-4b6f-4f0a-8e3c-2d9b1a5f7e64",
"resultado": [
{ "seccion": "perfil", "ok": true, "detalle": "6 ajustes" },
{ "seccion": "impuestos", "ok": true, "detalle": "1 de 1" },
{ "seccion": "productos", "ok": true, "detalle": "40 nuevos, 2 actualizados" },
{ "seccion": "plantillas", "ok": true, "detalle": "2 de 2" }
],
"created_at": "2026-10-07T16:20:41.512Z",
"aplicado_at": "2026-10-07T16:24:03.007Z",
"expira_at": "2026-10-14T16:20:41.512Z"
}
}
estado |
Signification |
|---|---|
generando |
Cord est encore en train de préparer la proposition. |
propuesto |
Prête et en attente de vérification par une personne sur review_url. |
aplicado |
Une personne l’a appliquée. resultado contient une ligne par section avec ok et detalle ; si une section a échoué, les autres sont tout de même appliquées. |
descartado |
Une personne l’a écartée. Rien n’a été modifié. |
fallido |
La proposition n’a pas pu être terminée, ou toutes les sections ont échoué lors de son application. |
resultado vaut null tant que la proposition n’est pas appliquée. Pour attendre la décision, interrogez l’état toutes les quelques secondes (la CLI le fait toutes les 3 secondes) et arrêtez-vous dès que vous obtenez aplicado, descartado ou fallido.
Limites
| Limite | Valeur |
|---|---|
| Propositions par organisation | 6 par jour, en additionnant l’API, la CLI, MCP et l’application. La septième renvoie 429 avec code: "rate_limited". |
| Validité | 7 jours (expira_at). Une proposition expirée ne peut plus être appliquée ; générez-en une nouvelle. |
| Fichier | 3 Mo avant l’encodage en base64. Au-delà, la réponse est 413. |
| Catalogue proposé | Jusqu’à 500 produits, 6 taxes et 4 modèles. |
Erreurs
| Situation | Réponse |
|---|---|
Vous n’avez envoyé ni sitio, ni descripcion, ni archivo |
400, code: "invalid_request" |
| Le fichier n’est ni un Excel, ni un CSV, ni un PDF, ni une photo, ou il est vide | 400, code: "invalid_request", avec le motif dans error |
| Le fichier dépasse 3 Mo | 413, code: "invalid_request" |
| 6 propositions ont déjà été générées aujourd’hui | 429, code: "rate_limited" |
| Cord n’a pas pu terminer la proposition | 502 avec le message dans error ; la proposition reste à l’état fallido |
L’id n’existe pas dans votre compte |
404, code: "not_found" |
Clés et droits
- Proposer exige le droit d’écriture sur la ressource
setup; consulter l’état, le droit de lecture. Une clé restreinte limitée àsetupsuffit. La clé que fournitcord loginl’inclut déjà. - La page de vérification exige une session disposant du droit Paramètres sur ce compte. Personne d’autre ne peut appliquer la proposition.
- Chaque application est consignée dans le journal d’audit de l’organisation, avec l’auteur de l’action.
Depuis la CLI
npx @flouviahq/cli setup --sitio materialesdelvalle.mx --archivo prices.xlsx
La CLI envoie la proposition, ouvre review_url dans votre navigateur et attend votre décision. Une fois que vous l’approuvez, elle affiche le résultat par section. La touche Entrée arrête l’attente sans rien annuler : la proposition reste disponible via le lien pendant 7 jours.
Depuis un agent (MCP)
proponer_configuracion reçoit sitio, descripcion, archivo_base64 et archivo_nombre et renvoie la même chose que l’API (id, estado, review_url, resumen, conteos, avisos, descartado). estado_configuracion reçoit l’id et renvoie estado, review_url, resultado, creada, aplicada et vence. L’agent doit partager la review_url avec la personne : il n’a aucun moyen d’appliquer la proposition de lui-même.