POST
Marcar la venta por teléfono

Cuerpo

application/json
result
enum<string>
requerido

won: hubo venta. lost: no compró.

Opciones disponibles:
won,
lost
amount
number | null

Monto de la venta.

Rango requerido: x >= 0
currency
string

Moneda (ISO 4217). Por defecto, la de la cuenta (Ajustes › Casos y motivos).

Pattern: ^[A-Za-z]{3}$
note
string

Qué compró o por qué no compró.

Maximum string length: 500
externalId
string

Id del pedido en tu sistema. Si llega dos veces, no se cuenta dos veces: la respuesta trae el caso que ya la tiene y duplicate: true.

Maximum string length: 120
phone
string

Teléfono en formato internacional.

contactId
string<uuid>

Respuesta

El caso con su resultado. duplicate es true si esa venta (mismo externalId) ya estaba registrada: no se cambió nada.

Un caso: una consulta de un cliente dentro de una conversación.

id
string<uuid>
conversationId
string<uuid>
contactId
string<uuid>
contactName
string | null
status
enum<string>
Opciones disponibles:
open,
closed
openedAt
string<date-time>
lastInboundAt
string<date-time>

Último mensaje del cliente en el caso.

closedAt
string<date-time> | null
closeReason
enum<string> | null

stage: pasó a una etapa final de su pipeline. stale: pasó solo a perdido por días sin respuesta del cliente.

Opciones disponibles:
inactivity,
manual,
agent_goal,
conversation_closed,
stage,
stale,
null
reasonId
string<uuid> | null
reason
string | null

Motivo.

subreasonId
string<uuid> | null
subreason
string | null

Submotivo.

reasonSource
enum<string> | null

Quién puso el motivo: Jev o una persona del equipo.

Opciones disponibles:
jev,
person,
null
reasonStatus
enum<string>
Opciones disponibles:
pending,
set,
review,
error
reasonConfidence
number | null
handledBy
enum<string>

Quién respondió: nadie, solo automatizaciones, un agente IA, el equipo o los dos.

Opciones disponibles:
none,
automation,
ai,
human,
mixed
agentName
string | null
ad
object | null

Anuncio que trajo al cliente (en los 7 días anteriores a abrir el caso).

score
integer | null

Puntaje comercial, si el motivo lo lleva.

Rango requerido: 0 <= x <= 100
scoreBucket
enum<string> | null
Opciones disponibles:
cold,
warm,
hot,
null
outcome
enum<string> | null
Opciones disponibles:
won,
lost,
null
outcomeAmount
number | null
outcomeCurrency
string | null
outcomeNote
string | null
outcomeSource
enum<string> | null
Opciones disponibles:
person,
api,
null
outcomeAt
string<date-time> | null
outcomeExternalId
string | null
pipeline
object | null

La etapa del caso, si su motivo está en un pipeline. null si no está en ninguno.

duplicate
boolean