Las acciones del Cotizador están en la API REST y en el servidor MCP. Un agente de IA o tu integración puede leer cotizaciones, armar un borrador para una unidad y prepararlo para enviar; el envío al cliente siempre pasa por una confirmación de la misma persona que lo pidió.
El Cotizador es para espacios de trabajo inmobiliarios. Si tu espacio de trabajo no lo tiene activado, todas estas acciones responden 403.
Las acciones
| Herramienta MCP | Ruta REST | Alcance | Qué hace |
|---|---|---|---|
list_quotes | GET quotes/list | quotes:read | Cotizaciones, filtradas por estado, contacto, unidad, desarrollo o asesor |
get_quote | GET quotes/get | quotes:read | Una cotización: totales, calendario de pagos, unidad y estado |
list_quotable_properties | GET quotes/quotable-properties | quotes:read | Unidades disponibles para cotizar |
get_quoting_setup | GET quotes/setup | quotes:read | Esquemas de venta y sus reglas, formas de pago, lo que falta configurar |
create_quote_draft | POST quotes/drafts | quotes:write | Crea un borrador para una unidad |
update_quote_draft | POST quotes/drafts/update | quotes:write | Cambia un borrador |
| — | POST quotes/status | quotes:write | Cancela una cotización (sólo REST) |
send_quote | POST quotes/send | quote_sends:write | Vista previa del envío y un confirmToken. No envía nada |
confirm_quote_send | POST quotes/send/confirm | quote_sends:write | Envía la cotización con ese confirmToken |
Las rutas REST van bajo https://api.watsi.ai/v1/actions/. Escribir necesita una clave o sesión de un miembro: una cotización pertenece a su asesor, así que sólo su asesor la edita y la envía. Los alcances de escritura no aparecen en la pantalla de claves; pídelos a watsi, o márcalos en la pantalla de consentimiento si te conectas por OAuth.
Arma un borrador
get_quoting_setupte dice qué esquemas de venta hay, con su descuento máximo y su precio mínimo por m², y qué falta configurar.list_quotable_propertieste da las unidades disponibles.create_quote_draftcon la unidad, y opcionalmente el contacto, el esquema y un descuento. watsi arma la línea, el calendario de pagos y los totales: tú pides por intención, nunca mandas cifras.
Si el descuento pasa el tope del esquema o el precio queda bajo su mínimo, la llamada responde 422 con cada regla rota en details.violations (COTIZADOR_DISCOUNT_OVER_CAP, COTIZADOR_PRICE_BELOW_FLOOR…) y no guarda nada.
Envía en dos pasos
Enviar llega al cliente, así que una persona lo confirma:
- 1
Prepara el envío
send_quoteconquoteId, el canal (whatsapp,emailolink) y, si quieres, un mensaje. Responde la vista previa —folio, contacto, total, calendario de pagos, mensaje— y unconfirmTokenválido por 10 minutos. No cambia nada.{ "preview": { "quoteId": "5b0c…", "folio": "COT-0012", "status": "draft", "channel": "whatsapp", "contactName": "Ana López", "currency": "MXN", "total": 2450000, "schedule": [{ "date": "2026-11-15", "concept": "Enganche", "amount": 245000 }], "message": "Hola Ana, aquí está tu cotización." }, "confirmToken": "eyJ2Ijox…", "expiresAt": "2026-10-31T18:40:00.000Z" } - 2
Muéstralo y pide confirmación
Enséñale la vista previa a la persona. Un agente de IA nunca debe confirmar por su cuenta.
- 3
Confirma
confirm_quote_sendcon el mismoquoteIdy elconfirmToken. Es el mismo envío que el botón Enviar del editor: revisa las reglas del esquema, congela la copia que recibe el cliente y, si la entrega falla, deja la cotización como estaba.
El token sólo sirve para lo que la persona vio:
| Respuesta | Por qué |
|---|---|
409 QUOTE_SEND_CONFIRMATION_EXPIRED | Pasaron más de 10 minutos. Prepara el envío otra vez. |
409 QUOTE_SEND_CONFIRMATION_STALE | La cotización cambió (o ya se envió) desde la vista previa. |
403 QUOTE_SEND_CONFIRMATION_INVALID | El token es de otro miembro, de otro espacio de trabajo o de otra cotización. |
422 COTIZADOR_START_DATE_LOCKED | El plan de pagos empieza antes de hoy. Pon sus fechas al día en el editor y envíala desde ahí. |
El canal y el mensaje viajan dentro del token, así que la confirmación no los puede cambiar. Un token ya usado deja de servir, porque el envío cambia la cotización.
Si la ventana de 24 horas de WhatsApp ya cerró, el envío por WhatsApp necesita una plantilla de cotización aprobada por Meta, igual que en el editor.