Aller au contenu

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 à setup suffit. La clé que fournit cord login l’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.