Skip to main content
A Conversas API V1 é o contrato HTTP usado pela plataforma Core para criar, listar, editar e excluir registros de conversas de gestão. Replica o módulo Conversas. É a API da interface: payloads do cadastro, filtro paginado, participantes em recurso separado e comentários com anexo.
Autenticação: JWT de usuário (Authorization: Bearer eyJ…) com conversation:read / conversation:manage. O token bvt_ não acessa estas rotas. Para integrações e o conector MCP, use a Conversas API V2.

Recursos

Conversa

Base: /core/v1/conversation DELETE é soft delete (deletedAt). A listagem ignora registros excluídos.

Participantes

Base: /core/v1/conversation-participant Na V1 a conversa não grava participantes no POST do registro. Crie a conversa e em seguida vincule as pessoas.

Comentários

Base: /core/v1/conversation-comment Create e update usam multipart/form-data (JSON no part data + arquivos opcionais).

Tipos e status

type

status

Único valor aceito hoje: NO_ACTION. Obrigatório no create e no update.

Campos da conversa


Criar uma conversa

O POST exige identificar o usuário criador (claim do JWT). Sem isso: "User identification is required, verify!".
Validações frequentes: Em seguida vincule os participantes:
Lista vazia → "Conversation Participant list is empty. Verify input."
Conversa ou colaborador inexistente → "Conversation not found, verify!" / "Employee not found, verify!".
Resposta de um participante:

Consultar

Por ID

Liderança / RH BP fora do recorte → 403 "Access denied: conversation outside of your scope".
Empresa diferente da do usuário → 403 "Access denied: conversation belongs to a different company".
ID inválido → "Conversation ID is invalid, verify!".
Inexistente → "Conversation not found, verify!".

Por empresa

Admin Cliente e RH Estratégico recebem todas as conversas da empresa. Liderança e RH BP recebem só as da árvore de clusters acessível (Unidade, Diretoria, Departamento, Alocação e White Labels). Sem cluster acessível, a lista vem vazia. GET /core/v1/conversation/read-all lista registros ativos sem filtro de empresa — uso interno, não use em integração de cliente.

Filtro paginado

size < 1 → "Size is less than 1, verify!".
page < 0 → "Page is less than 0, verify!".
Tipo inválido no filtro → "Conversation type is invalid, verify!".
Envelope:
O mesmo recorte de liderança do read-all/company vale neste filtro.

Atualizar e excluir

O PUT exige conversationId e os mesmos campos obrigatórios da criação. createdBy e createdAt são preservados.

Comentários e anexos

Create e update: Content-Type: multipart/form-data. O comentário precisa de texto ou pelo menos um anexo. Sem os dois: "Comment must contain text or at least one attachment!". Formatos aceitos: jpg, jpeg, png, webp, pdf, docx, xlsx, pptx, csv, txt, md. Tamanho máximo: 25 MB por arquivo.
Resposta (campos principais):
No PUT, envie conversationCommentId, conversationId e, se for o caso, removeAttachmentIds (uuids dos anexos a remover). Só o autor edita o próprio comentário (403 "Access denied: you can only edit your own comments"). Exclusão: autor, ou Admin Cliente / RH Estratégico da empresa.

Permissões e isolamento

O colaborador em employeeId não recebe convite e não acessa o registro. Detalhe do produto: Conversas no Core.

Perguntas frequentes

A V1 é o CRUD da plataforma (três recursos, multipart nos comentários). A V2 é o contrato estável para integração e MCP: um recurso /v2/conversas, participantes no mesmo POST e recorte explícito de perfil.
Não nesta versão. Use POST /core/v1/conversation e depois POST /core/v1/conversation-participant (ou /bulk). Na V2 os participantes entram no body da criação.
Não. Estas rotas exigem JWT de um usuário com conversation:read / conversation:manage.