Respostas
Endpoints para consulta e gerenciamento de respostas de pesquisas de satisfação.
Cadastrar Resposta
POST /api/answers
Registra uma nova resposta de pesquisa de satisfação na plataforma.
Casos de uso:
- Integrar respostas de canais externos (chatbot, totem, app)
- Sincronizar respostas coletadas offline
- Importar respostas de sistemas legados
Corpo da Requisição
{
"nps": 9,
"discursive_question": "Ótimo atendimento, muito satisfeito!",
"questions": [
{
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "10",
"suggestion": "Parabéns pelo serviço"
},
{
"id": "203a525c-0ce3-4182-a504-aad595425234",
"name": [{ "option": "Atendimento" }, { "option": "Qualidade" }]
}
],
"created_at": "2024-04-15 14:30:00",
"search_id": "102a525c-0ce3-4182-a504-aad595425233",
"response_channel": "Chatbot"
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nps | number | Sim | Nota NPS (0 a 10) |
discursive_question | string | Não | Resposta da pergunta discursiva |
questions | array | Não | Lista de respostas das questões adicionais |
created_at | string | Sim | Data de criação da resposta no formato YYYY-MM-DD HH:mm:ss |
search_id | string | Sim | ID da pesquisa associada (UUID) |
response_channel | string | Sim | Canal de resposta: QRcode, Email, SMS, Chatbot, Web, Link, Whatsapp |
Campos de Questions
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | ID da questão (UUID) |
name | string/array | Sim | Resposta da questão. Para caixa de seleção ou múltipla escolha, enviar array: [{ "option": "nome" }, ...] |
suggestion | string | Não | Sugestão ou comentário adicional para a questão |
Exemplo de Requisição
curl -X POST "https://api-b2s.experienciab2s.com/api/answers" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"nps": 9,
"discursive_question": "Ótimo atendimento!",
"questions": [
{
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "10",
"suggestion": "Parabéns"
}
],
"created_at": "2024-04-15 14:30:00",
"search_id": "102a525c-0ce3-4182-a504-aad595425233",
"response_channel": "Chatbot"
}'Resposta de Sucesso (201)
{
"id": "ef9fa264-3850-4bd2-875e-2b40a4dd432f",
"company_id": "203a525c-0ce3-4182-a504-aad595425233"
}Códigos de Resposta
| Código | Descrição |
|---|---|
| 201 | Resposta cadastrada com sucesso |
| 400 | Erro de validação ou requisição malformada |
| 403 | Token inválido ou usuário não autorizado |
| 404 | Pesquisa ou token de integração não encontrado |
Listar Respostas de Pesquisas
GET /api/answers
Retorna uma lista de respostas de pesquisas, com opções de filtro e paginação. Os resultados são limitados a um máximo de 50 respostas por requisição.
Casos de uso:
- Sincronizar respostas com sistema externo
- Gerar relatórios personalizados
- Alimentar dashboards de BI
Parâmetros de Query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
is_enps | boolean | Sim | Filtra respostas relacionadas ao eNPS |
date_start | string | Sim | Data de início no formato YYYY-MM-DD |
date_end | string | Sim | Data de fim no formato YYYY-MM-DD |
limit | integer | Sim | Número máximo de respostas por requisição (máximo 50) |
offset | integer | Sim | Número de respostas a serem ignoradas para paginação |
search_id | string | Não | ID da pesquisa para filtrar respostas (formato UUID) |
clients_only | boolean | Não | Retorna apenas respostas associadas a clientes (padrão: false) |
Exemplo de Requisição
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 SEU_TOKEN"Resposta de Sucesso (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ão"
},
"page": {
"id": "103a525c-0ce3-4182-a504-aad595425233",
"name": "Retirada"
},
"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": "Atendimento",
"name": "10",
"suggestion": "",
"type": "NPS"
}
]
}
]
}Buscar Resposta por ID
GET /api/answers/{id}
Retorna informações detalhadas sobre uma resposta específica, incluindo cliente, consumo, empresa, página e critérios associados.
Parâmetros de Caminho
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | ID único da resposta (formato UUID) |
Exemplo de Requisição
curl -X GET "https://api-b2s.experienciab2s.com/api/answers/03944421-7382-4d05-a278-80b44e7cb742" \
-H "Authorization: Bearer SEU_TOKEN"Resposta de Sucesso (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": "Retirada"
},
"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": "Resposta Curta",
"suggestion": null,
"type": "Resposta Curta"
},
{
"name": "4",
"nick": "Rating",
"suggestion": null,
"type": "Rating"
},
{
"name": "10",
"nick": "NPS",
"suggestion": null,
"type": "NPS"
}
]
}Códigos de Resposta
| Código | Descrição |
|---|---|
| 200 | Resposta encontrada |
| 403 | Token inválido ou usuário não autorizado |
| 404 | Resposta ou token de integração não encontrado |
Atualizar Status da Resposta
PATCH /api/answers/{id}
Atualiza o status de uma resposta específica. Este endpoint permite alterar o estado de processamento das respostas dos clientes, habilitando o gerenciamento de workflow e rastreamento de estados de resolução.
Parâmetros de Caminho
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | ID único da resposta (formato UUID) |
Corpo da Requisição
{
"status": "in-progress"
}| Campo | Tipo | Obrigatório | Valores Aceitos | Descrição |
|---|---|---|---|---|
status | string | Sim | to-do, in-progress, done | Novo status para a resposta |
Exemplo de Requisição
curl -X PATCH "https://api-b2s.experienciab2s.com/api/answers/03944421-7382-4d05-a278-80b44e7cb742" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "in-progress"}'Resposta de Sucesso (201)
{}Códigos de Resposta
| Código | Descrição |
|---|---|
| 201 | Status atualizado com sucesso |
| 400 | Valor de status inválido ou requisição malformada |
| 403 | Token inválido ou usuário não autorizado |
| 404 | Resposta ou token de integração não encontrado |
Criar Closed Loop
POST /api/answers/{id}/description
Cria um closed loop (descrição de fechamento) para uma resposta específica. Permite adicionar informações de acompanhamento ou detalhes de resolução a uma resposta existente, habilitando o rastreamento completo de feedback e fechamento do ciclo de atendimento ao cliente.
Parâmetros de Caminho
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | ID único da resposta (formato UUID) |
Corpo da Requisição
{
"message": "Customer issue was resolved by providing a discount coupon and following up via phone call.",
"user_email": "support@company.com",
"user_name": "Support Agent"
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
message | string | Sim | Descrição do closed loop ou mensagem de resolução |
user_email | string | Sim | Email do usuário que está criando o closed loop |
user_name | string | Sim | Nome do usuário que está criando o closed loop |
Exemplo de Requisição
curl -X POST "https://api-b2s.experienciab2s.com/api/answers/03944421-7382-4d05-a278-80b44e7cb742/description" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "Customer issue was resolved by providing a discount coupon.",
"user_email": "support@company.com",
"user_name": "Support Agent"
}'Resposta de Sucesso (201)
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"answer_id": "03944421-7382-4d05-a278-80b44e7cb742",
"description": "Customer issue was resolved by providing a discount coupon.",
"user_email": "support@company.com",
"user_name": "Support Agent - API",
"created_at": "2024-04-15T14:30:00.000Z"
}Códigos de Resposta
| Código | Descrição |
|---|---|
| 201 | Closed loop criado com sucesso |
| 403 | Token inválido ou usuário não autorizado |
| 404 | Resposta ou token de integração não encontrado |
