Conversaciones #
Consulta el historial y administra los hilos de tu tenant.
Prepara tu terminal una vez
export FLOWORDR_BASE_URL="https://app.flowordr.com"
export FLOWORDR_API_KEY="<tu-api-key>"
export FLOWORDR_TENANT_ID="<tu-tenant-id>"Ejecuta este bloque antes de los cURL. Sustituye los valores entre ángulos por tus credenciales; ningún ejemplo contiene claves reales.
conversationId de la primera respuesta y envíalo en la segunda pregunta. Si lo omites, el backend crea una conversación nueva que consume el cupo del plan. Con API key se guarda el turno aunque envíes persistConversation: false.PRIMERA=$(curl -sS -X POST "$FLOWORDR_BASE_URL/api/rag/answer" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"query":"¿Cuáles son sus horarios?"}')
CONVERSATION_ID=$(printf '%s' "$PRIMERA" | jq -r '.conversationId')
curl -X POST "$FLOWORDR_BASE_URL/api/rag/answer" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d "{"query":"¿Y los sábados?","conversationId":"$CONVERSATION_ID"}"GET /api/conversation
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| status | query enum | No | Active, Resolved, Pending, Closed, Archived; desconocido se ignora | Todos | Filtra por estado. |
| isActive | query boolean | No | true, false | Todos | Filtra activos. |
| channel | query enum | No | Api, Widget, Telegram, WhatsApp, Web, Playground; desconocido se ignora | Todos | Canal. |
| page | query integer | No | ≥1; menores pasan a 1 | 1 | Página. |
| pageSize | query integer | No | 1–200; fuera de rango pasa a 50 | 50 | Resultados por página. |
curl "$FLOWORDR_BASE_URL/api/conversation?page=1&pageSize=50" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 {conversations, totalCount, page, pageSize}.
GET /api/conversation/{conversationId}
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| conversationId | path string | Sí | ID devuelto por /api/rag/answer o por el evento meta del stream | — | Conversación del tenant. |
curl "$FLOWORDR_BASE_URL/api/conversation/<conversation-id>" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 historial; 404 si no existe.
POST /api/conversation/{conversationId}/archive
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| conversationId | path string | Sí | ID devuelto por /api/rag/answer o por el evento meta del stream | — | Conversación del tenant. |
curl -X POST "$FLOWORDR_BASE_URL/api/conversation/<conversation-id>/archive" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 conversación archivada; 404 si no existe.
DELETE /api/conversation/{conversationId}
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| conversationId | path string | Sí | ID devuelto por /api/rag/answer o por el evento meta del stream | — | Conversación del tenant. |
curl -X DELETE "$FLOWORDR_BASE_URL/api/conversation/<conversation-id>" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 confirmación; 404 si no existe.
POST /api/conversation/analyze
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| conversationId | body string | Sí | ID existente | — | Conversación por analizar. |
| forceRefresh | body boolean | No | true, false | false | Recalcula el análisis. |
| model | body string | No | Modelo disponible | Configurado | Modelo para el análisis. |
curl -X POST "$FLOWORDR_BASE_URL/api/conversation/analyze" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"conversationId":"<conversation-id>"}'Respuesta: 200 análisis; 400 si falta conversationId; 404 si no existe; 500 error de análisis.
GET /api/conversation/{conversationId}/chat-view
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| conversationId | path string | Sí | ID devuelto por /api/rag/answer o por el evento meta del stream | — | Conversación del tenant. |
| includeAnalysis | query boolean | No | true, false | true | Incluye análisis. |
curl "$FLOWORDR_BASE_URL/api/conversation/<conversation-id>/chat-view?includeAnalysis=true" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 vista de chat; 404 si no existe.
GET /api/conversation/notifications
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| since | query fecha ISO-8601 | No | Fecha UTC | Últimas 24 horas | Conversaciones nuevas desde esa fecha. |
curl "$FLOWORDR_BASE_URL/api/conversation/notifications" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 notificaciones de canales reales; no incluye Playground.
GET /api/conversation/with-analysis
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| userId / searchQuery / origin | query string | No | Texto | Sin filtro | Filtra usuario, contenido u origen. |
| channel / channelFilter | query enum | No | Web, Telegram, WhatsApp, Api, Widget, Playground | Todos | channel prevalece sobre channelFilter. |
| statusFilter | query enum | No | Active, Resolved, Pending, Closed, Archived | Todos | Estado. |
| intentFilter / sentimentFilter / urgencyFilter | query enum | No | Valores de análisis del servidor | Todos | Filtros de IA. |
| resolvedFilter / includeArchived / includePlayground | query boolean | No | true, false | false | Filtros adicionales. |
| sortBy | query string | No | newest_first y opciones del servicio | newest_first | Orden. |
| dateFrom / dateTo | query fecha ISO-8601 | No | Fechas válidas | Sin filtro | Periodo. |
| page / pageSize | query integer | No | Enteros positivos; este endpoint no aplica el clamp de /api/conversation | 1 / 20 | Paginación. |
curl "$FLOWORDR_BASE_URL/api/conversation/with-analysis?page=1&pageSize=20" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 conversaciones con análisis; 400/500 según validación o fallo de consulta.
GET /api/conversation/export
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| channel / channelFilter / statusFilter / intentFilter / sentimentFilter / resolvedFilter / urgencyFilter / searchQuery / dateFrom / dateTo / origin | query | No | Mismos filtros que with-analysis | Sin filtro | Filtra filas del CSV. |
| includePlayground | query boolean | No | true, false | false | Incluye pruebas del dueño. |
| maxRows | query integer | No | Se ajusta a 1–50000 | 10000 | Tope de filas. |
curl "$FLOWORDR_BASE_URL/api/conversation/export?maxRows=10000" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 text/csv en UTF-8.
PATCH /api/conversation/v2/{conversationId}/status
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| conversationId | path string | Sí | ID devuelto por /api/rag/answer o por el evento meta del stream | — | Conversación del tenant. |
| status | body string | Sí | Active, Resolved, Pending, Closed, Archived | — | Nuevo estado. |
curl -X PATCH "$FLOWORDR_BASE_URL/api/conversation/v2/<conversation-id>/status" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"status":"Resolved"}'Respuesta: 200 conversación; 404 si no existe.