Respuestas
Endpoints para consulta y gestión de respuestas de encuestas de satisfacción.
Registrar Respuesta
POST /api/answers
Registra una nueva respuesta de encuesta de satisfacción en la plataforma.
Casos de uso:
- Integrar respuestas de canales externos (chatbot, tótem, app)
- Sincronizar respuestas recolectadas offline
- Importar respuestas de sistemas legados
Cuerpo de la Solicitud
{
"nps": 9,
"discursive_question": "Excelente atención, muy satisfecho!",
"questions": [
{
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "10",
"suggestion": "Felicitaciones por el servicio"
},
{
"id": "203a525c-0ce3-4182-a504-aad595425234",
"name": [{ "option": "Atención" }, { "option": "Calidad" }]
}
],
"created_at": "2024-04-15 14:30:00",
"search_id": "102a525c-0ce3-4182-a504-aad595425233",
"response_channel": "Chatbot"
}| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
nps | number | Sí | Nota NPS (0 a 10) |
discursive_question | string | No | Respuesta de la pregunta discursiva |
questions | array | No | Lista de respuestas de las preguntas adicionales |
created_at | string | Sí | Fecha de creación de la respuesta en formato YYYY-MM-DD HH:mm:ss |
search_id | string | Sí | ID de la encuesta asociada (UUID) |
response_channel | string | Sí | Canal de respuesta: QRcode, Email, SMS, Chatbot, Web, Link, Whatsapp |
Campos de Questions
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | ID de la pregunta (UUID) |
name | string/array | Sí | Respuesta de la pregunta. Para casilla de verificación o múltiple elección, enviar array: [{ "option": "nombre" }, ...] |
suggestion | string | No | Sugerencia o comentario adicional para la pregunta |
Ejemplo de Solicitud
curl -X POST "https://api-b2s.experienciab2s.com/api/answers" \
-H "Authorization: Bearer SU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"nps": 9,
"discursive_question": "Excelente atención!",
"questions": [
{
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "10",
"suggestion": "Felicitaciones"
}
],
"created_at": "2024-04-15 14:30:00",
"search_id": "102a525c-0ce3-4182-a504-aad595425233",
"response_channel": "Chatbot"
}'Respuesta Exitosa (201)
{
"id": "ef9fa264-3850-4bd2-875e-2b40a4dd432f",
"company_id": "203a525c-0ce3-4182-a504-aad595425233"
}Códigos de Respuesta
| Código | Descripción |
|---|---|
| 201 | Respuesta registrada exitosamente |
| 400 | Error de validación o solicitud malformada |
| 403 | Token inválido o usuario no autorizado |
| 404 | Encuesta o token de integración no encontrado |
Listar Respuestas de Encuestas
GET /api/answers
Retorna una lista de respuestas de encuestas, con opciones de filtro y paginación. Los resultados están limitados a un máximo de 50 respuestas por solicitud.
Casos de uso:
- Sincronizar respuestas con sistema externo
- Generar informes personalizados
- Alimentar dashboards de BI
Parámetros de Query
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
is_enps | boolean | Sí | Filtra respuestas relacionadas con eNPS |
date_start | string | Sí | Fecha de inicio en formato YYYY-MM-DD |
date_end | string | Sí | Fecha de fin en formato YYYY-MM-DD |
limit | integer | Sí | Número máximo de respuestas por solicitud (máximo 50) |
offset | integer | Sí | Número de respuestas a omitir para paginación |
search_id | string | No | ID de la encuesta para filtrar respuestas (formato UUID) |
clients_only | boolean | No | Retorna solo respuestas asociadas a clientes (predeterminado: false) |
Ejemplo de Solicitud
curl -X GET "https://api-b2s.experienciab2s.com/api/answers?is_enps=true&date_start=2024-01-01&date_end=2024-01-31&limit=50&offset=0" \
-H "Authorization: Bearer SU_TOKEN"Respuesta Exitosa (200)
{
"limit": 50,
"offset": 0,
"total": 2,
"data": [
{
"id": "103a525c-0ce3-4182-a504-aad595425233",
"created_at": "2024-04-14T22:06:02.000Z",
"nps": 10,
"discursive_question": "",
"consumption": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"order_id": "order_123"
},
"company": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "Empresa 1"
},
"search": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "Salón"
},
"page": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "Retiro"
},
"client": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": "(00) 0 0000-0000",
"born_date": "25/02/1980"
},
"criteria": [
{
"nick": "Atención",
"name": "10",
"suggestion": "",
"type": "NPS"
}
]
}
]
}Buscar Respuesta por ID
GET /api/answers/{id}
Retorna información detallada sobre una respuesta específica, incluyendo cliente, consumo, empresa, página y criterios asociados.
Parámetros de Ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | ID único de la respuesta (formato UUID) |
Ejemplo de Solicitud
curl -X GET "https://api-b2s.experienciab2s.com/api/answers/03944421-7382-4d05-a278-80b44e7cb742" \
-H "Authorization: Bearer SU_TOKEN"Respuesta Exitosa (200)
{
"id": "03944421-7382-4d05-a278-80b44e7cb742",
"created_at": "2023-09-08T23:00:00.000Z",
"nps": 10,
"discursive_question": null,
"company": {
"id": "203a525c-0ce3-4182-a504-aad595425233",
"name": "Company Setup - 2"
},
"search": {
"id": "203a525c-0ce3-4182-a504-aad595425233",
"name": "Delivery"
},
"page": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "Retiro"
},
"client": {
"id": "03944421-7382-4d05-a278-80b44e7cb742",
"name": "John",
"email": "john@example.com",
"phone": null,
"born_date": null
},
"consumption": {
"id": "03944421-7382-4d05-a278-80b44e7cb742",
"order_id": "order_1"
},
"criteria": [
{
"name": "Lorem",
"nick": "Respuesta Corta",
"suggestion": null,
"type": "Respuesta Corta"
},
{
"name": "4",
"nick": "Rating",
"suggestion": null,
"type": "Rating"
},
{
"name": "10",
"nick": "NPS",
"suggestion": null,
"type": "NPS"
}
]
}Códigos de Respuesta
| Código | Descripción |
|---|---|
| 200 | Respuesta encontrada |
| 403 | Token inválido o usuario no autorizado |
| 404 | Respuesta o token de integración no encontrado |
Actualizar Estado de Respuesta
PATCH /api/answers/{id}
Actualiza el estado de una respuesta específica. Este endpoint permite cambiar el estado de procesamiento de las respuestas de los clientes, habilitando la gestión de workflow y seguimiento de estados de resolución.
Parámetros de Ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | ID único de la respuesta (formato UUID) |
Cuerpo de la Solicitud
{
"status": "in-progress"
}| Campo | Tipo | Obligatorio | Valores Aceptados | Descripción |
|---|---|---|---|---|
status | string | Sí | to-do, in-progress, done | Nuevo estado para la respuesta |
Ejemplo de Solicitud
curl -X PATCH "https://api-b2s.experienciab2s.com/api/answers/03944421-7382-4d05-a278-80b44e7cb742" \
-H "Authorization: Bearer SU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "in-progress"}'Respuesta Exitosa (201)
{}Códigos de Respuesta
| Código | Descripción |
|---|---|
| 201 | Estado actualizado exitosamente |
| 400 | Valor de estado inválido o solicitud malformada |
| 403 | Token inválido o usuario no autorizado |
| 404 | Respuesta o token de integración no encontrado |
Crear Closed Loop
POST /api/answers/{id}/description
Crea un closed loop (descripción de cierre) para una respuesta específica. Permite agregar información de seguimiento o detalles de resolución a una respuesta existente, habilitando el seguimiento completo de feedback y cierre del ciclo de atención al cliente.
Parámetros de Ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | ID único de la respuesta (formato UUID) |
Cuerpo de la Solicitud
{
"message": "El problema del cliente fue resuelto proporcionando un cupón de descuento y seguimiento por llamada telefónica.",
"user_email": "soporte@empresa.com",
"user_name": "Agente de Soporte"
}| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
message | string | Sí | Descripción del closed loop o mensaje de resolución |
user_email | string | Sí | Email del usuario que está creando el closed loop |
user_name | string | Sí | Nombre del usuario que está creando el closed loop |
Ejemplo de Solicitud
curl -X POST "https://api-b2s.experienciab2s.com/api/answers/03944421-7382-4d05-a278-80b44e7cb742/description" \
-H "Authorization: Bearer SU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "El problema del cliente fue resuelto proporcionando un cupón de descuento.",
"user_email": "soporte@empresa.com",
"user_name": "Agente de Soporte"
}'Respuesta Exitosa (201)
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"answer_id": "03944421-7382-4d05-a278-80b44e7cb742",
"description": "El problema del cliente fue resuelto proporcionando un cupón de descuento.",
"user_email": "soporte@empresa.com",
"user_name": "Agente de Soporte - API",
"created_at": "2024-04-15T14:30:00.000Z"
}Códigos de Respuesta
| Código | Descripción |
|---|---|
| 201 | Closed loop creado exitosamente |
| 403 | Token inválido o usuario no autorizado |
| 404 | Respuesta o token de integración no encontrado |
