Una venta de la tienda crea una oportunidad
Tu tienda online avisa cada venta mayorista con un JSON y en Nxar aparece una Opportunity ganada, sin duplicados aunque la tienda reintente.
El problema. Las ventas grandes de tu tienda online se cargan a mano en Nxar, tarde y con errores. La tienda ya sabe mandar un aviso HTTP cuando se confirma una venta, y reintenta si no recibe respuesta.
La idea. Un endpoint con token que corre una automation: con el número de pedido, el cliente y el total, crea una Opportunity en etapa Won. Como la tienda reintenta, el endpoint contesta sólo el acuse y la tienda manda el número de pedido como Idempotency-Key: un reintento no crea una segunda oportunidad.
Un workspace con el escenario ya armado, que se borra solo a las 48 h. Estamos terminándolo.
Creá la automation
ConfiguraciónAutomatizaciónProcesosNuevo, tipo Endpoint de API, Label Venta de la tienda y API name tienda_nueva_venta. En Inputs:
| Nombre | Tipo | req |
|---|---|---|
order_id | text | Sí |
customer | text | Sí |
total | number | Sí |
Sin Outputs: la tienda sólo necesita saber que el aviso llegó. Nueva automation.
Creá la oportunidad
En el builder, arrastrá Crear registro al lienzo (queda conectado al Trigger) y configuralo:
- Entidad: Opportunity.
- Campos:
| Campo | Valor |
|---|---|
name | Venta web {{inputs.order_id}} · {{inputs.customer}} |
amount | {{inputs.total}} |
stage | Won |
Guardar.
Publicala
ConfiguraciónIntegraciones y APIEndpointsEndpoints y webhooksNuevo endpoint: Nombre en la URL tienda-ventas, ¿Qué corre? tienda_nueva_venta, Token secreto, ¿Qué contesta? Sólo el acuse de recibo, y en Correr como usuario quien lleva las ventas web. Crear, copiá el token y Listo.

Mandá una venta, dos veces
curl -X POST "https://tu-workspace.nx-ar.com/public/v1/custom/tienda-ventas" \
-H "Content-Type: application/json" \
-H "X-Webhook-Token: nxar_whk_REEMPLAZAR_POR_TU_TOKEN" \
-H "Idempotency-Key: venta-20931" \
-d '{"order_id":"20931","customer":"Vivero Los Álamos","total":185000}'La primera vez contesta 202 con "received":true. Repetí exactamente el mismo comando: ahora contesta 200 con "duplicate":true y no corre nada.
total está declarado como number: si la tienda manda "185.000,50" (con puntos de miles y coma decimal) el endpoint contesta 422 must_be_number. Pedile que mande el número con punto decimal y sin separador de miles: 185000.5.
Cómo saber que te salió
En Opportunities hay una sola oportunidad Venta web 20931 · Vivero Los Álamos, en Won, por 185.000. En Audit Logs, filtrando por tienda-ventas, están las dos llamadas: la primera con 202 y la segunda con 200 y duplicate.
¿Te funcionó?