Saltar al contenido
watsi

Casos de uso

Cotizaciones por API y MCP

Lee cotizaciones, arma un borrador para una unidad con las reglas de su esquema de venta y envíalo al cliente en dos pasos —vista previa y confirmación— desde la API REST o el servidor MCP.

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 MCPRuta RESTAlcanceQué hace
list_quotesGET quotes/listquotes:readCotizaciones, filtradas por estado, contacto, unidad, desarrollo o asesor
get_quoteGET quotes/getquotes:readUna cotización: totales, calendario de pagos, unidad y estado
list_quotable_propertiesGET quotes/quotable-propertiesquotes:readUnidades disponibles para cotizar
get_quoting_setupGET quotes/setupquotes:readEsquemas de venta y sus reglas, formas de pago, lo que falta configurar
create_quote_draftPOST quotes/draftsquotes:writeCrea un borrador para una unidad
update_quote_draftPOST quotes/drafts/updatequotes:writeCambia un borrador
—POST quotes/statusquotes:writeCancela una cotización (sólo REST)
send_quotePOST quotes/sendquote_sends:writeVista previa del envío y un confirmToken. No envía nada
confirm_quote_sendPOST quotes/send/confirmquote_sends:writeEnví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

  1. get_quoting_setup te dice qué esquemas de venta hay, con su descuento máximo y su precio mínimo por m², y qué falta configurar.
  2. list_quotable_properties te da las unidades disponibles.
  3. create_quote_draft con 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. 1

    Prepara el envío

    send_quote con quoteId, el canal (whatsapp, email o link) y, si quieres, un mensaje. Responde la vista previa —folio, contacto, total, calendario de pagos, mensaje— y un confirmToken vá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. 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. 3

    Confirma

    confirm_quote_send con el mismo quoteId y el confirmToken. 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:

RespuestaPor qué
409 QUOTE_SEND_CONFIRMATION_EXPIREDPasaron más de 10 minutos. Prepara el envío otra vez.
409 QUOTE_SEND_CONFIRMATION_STALELa cotización cambió (o ya se envió) desde la vista previa.
403 QUOTE_SEND_CONFIRMATION_INVALIDEl token es de otro miembro, de otro espacio de trabajo o de otra cotización.
422 COTIZADOR_START_DATE_LOCKEDEl 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.

Relacionado