Profissionais

Gerencie os profissionais que prestam servicos na sua clinica ou estabelecimento. Profissionais sao entidades independentes de agentes NooviChat — podem existir sem acesso ao sistema.

Feature Flag

Requer appointments_module habilitado na conta.

Visao Geral

Cada profissional tem horarios de atendimento configurados por dia da semana, buffer entre consultas, cor para o calendario e especialidade.

Campo opcional agent_id vincula o profissional a um usuario NooviChat quando ele tambem opera o sistema diretamente.

GET/api/v1/accounts/{account_id}/professionals

Lista todos os profissionais ativos da conta (nao-descartados), ordenados por nome. Qualquer membro da conta pode visualizar.

Sem filtros nem paginacao

Esta listagem retorna sempre todos os profissionais ativos da conta — nao aceita parametros de query de filtro ou paginacao.

bash
curl -s "https://chat.seudominio.com/api/v1/accounts/1/professionals" \
  -H "api_access_token: YOUR_TOKEN" | jq .
200Lista de profissionais
json
{
  "data": [
    {
      "id": 3,
      "name": "Dr. Maria Santos",
      "specialty": "Odontologia Geral",
      "registry": "CRO-SP 12345",
      "color": "#3B82F6",
      "buffer_minutes": 10,
      "working_hours": {
        "mon": [{ "start": "08:00", "end": "18:00" }],
        "tue": [{ "start": "08:00", "end": "18:00" }],
        "fri": [{ "start": "08:00", "end": "13:00" }]
      },
      "active": true
    }
  ]
}
POST/api/v1/accounts/{account_id}/professionals

Cria novo profissional. Apenas administradores.

Body (professional)

NomeTipoObrigatorioDescricao
namestringSimNome completo do profissional
specialtystringNaoEspecialidade (Odontologia, Fisioterapia etc.)
registrystringNaoNumero do registro profissional (CRM, CRO, CRP etc.)
emailstringNaoEmail do profissional
phonestringNaoTelefone do profissional
colorstringNaoCor hex para o calendario (padrao #3B82F6)
buffer_minutesintegerNaoBuffer em minutos entre consultas (padrao 0)
working_hoursobjectNaoHorarios por dia da semana (mon, tue, wed, thu, fri, sat, sun)
agent_idintegerNaoID do agente NooviChat vinculado (opcional)
activebooleanNaoStatus ativo (padrao true)
service_idsarray[integer]NaoIDs dos servicos que o profissional oferece. Pode ser enviado dentro de professional ou no nivel raiz; IDs sao filtrados para servicos da propria conta.
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/professionals" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "professional": {
      "name": "Dr. Maria Santos",
      "specialty": "Odontologia Geral",
      "registry": "CRO-SP 12345",
      "color": "#3B82F6",
      "buffer_minutes": 10,
      "working_hours": {
        "mon": [{"start": "08:00", "end": "18:00"}],
        "tue": [{"start": "08:00", "end": "18:00"}],
        "fri": [{"start": "08:00", "end": "13:00"}]
      }
    }
  }'
201Profissional criado
json
{ "data": { "id": 3, "name": "Dr. Maria Santos", "active": true } }
GET/api/v1/accounts/{account_id}/professionals/{professional_id}

Retorna detalhes de um profissional especifico.

bash
curl -s "https://chat.seudominio.com/api/v1/accounts/1/professionals/3" \
  -H "api_access_token: YOUR_TOKEN" | jq .
PATCH/api/v1/accounts/{account_id}/professionals/{professional_id}

Atualiza dados do profissional. Apenas administradores.

bash
curl -X PATCH "https://chat.seudominio.com/api/v1/accounts/1/professionals/3" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "professional": { "buffer_minutes": 15, "active": true } }'
DELETE/api/v1/accounts/{account_id}/professionals/{professional_id}

Remove o profissional (soft-delete). Historico de atendimentos e preservado. Apenas administradores.

bash
curl -X DELETE "https://chat.seudominio.com/api/v1/accounts/1/professionals/3" \
  -H "api_access_token: YOUR_TOKEN"
GET/api/v1/accounts/{account_id}/professionals/{professional_id}/availability

Retorna slots de horario disponiveis para o profissional em uma data especifica.

Parametros de Query

NomeTipoObrigatorioDescricao
date(query)string (date)NaoData a verificar (YYYY-MM-DD). Padrao: hoje.
service_id(query)integerNaoServico para calcular a duracao dos slots
duration_minutes(query)integerNaoDuracao do slot em minutos quando service_id nao for informado (padrao 60)
bash
curl -s "https://chat.seudominio.com/api/v1/accounts/1/professionals/3/availability?date=2026-06-15&service_id=7" \
  -H "api_access_token: YOUR_TOKEN" | jq .
200Slots disponiveis (array de timestamps de inicio ISO 8601)
json
{
  "data": {
    "date": "2026-06-15",
    "professional_id": 3,
    "slots": [
      "2026-06-15T08:00:00Z",
      "2026-06-15T10:00:00Z",
      "2026-06-15T11:00:00Z"
    ]
  }
}

Apenas slots livres

A resposta lista somente os horarios de inicio disponiveis. Horarios ocupados sao omitidos — nao ha campo available nem objetos com start/end.