Skip to main content

API de Progresso do Jogador

Esta página pressupõe as regras comuns em Convenções da API — autenticação, os dois formatos de erro, lotes e resolução de identidade. Aqui fica só o que é específico do progresso.
A API de Progresso do Jogador permite que o seu backend leia onde cada colaborador está na gamificação da sua empresa: em que nível está, quanto XP tem, quantas moedas pode gastar e qual a posição no ranking. Foi feita para a faixa do topo de uma tela inicial — aquela que cumprimenta a pessoa e mostra como ela está indo.
A escada de níveis é configurada pela sua empresa: quantos níveis, os nomes, o que cada um exige e como cada um aparece. Esta API devolve o que estiver configurado — ela não conhece escada nenhuma.

Como funciona

  1. Você recebe uma API Key com o escopo progress:read
  2. Seu backend consulta um ou vários colaboradores (por CPF ou e-mail)
  3. O SalesOS responde com a escada uma vez no topo, e o estado de cada pessoa em seguida

Autenticação


Referência do endpoint

Uma ação: progress_status.

Esquema da requisição

string
obrigatório
Deve ser "progress_status"
array
obrigatório
Lista de referências de colaboradores (máximo 500)
string
Período do XP e do ranking: daily, weekly, monthly ou all_time. Ausente = all_time.
string
Universo do ranking: tenant (toda a empresa) ou org_unit (a unidade da própria pessoa). Ausente = tenant.

Exemplo

Resposta (200):

Campos

A escada (topo da resposta)

A quantidade de níveis é da sua empresa, não uma constante. Monte a tela a partir do array. Uma escada pode ter nove degraus onde outra tem dez, e as duas estão certas.

Por colaborador


Aparência do nível

A identidade visual do nível — a cor, e o que mais a sua empresa configurar — vem em appearance.
appearance pode vir null, e null não significa “sem cor”. Significa que ninguém configurou uma ainda. Nesse caso use um fallback seu, mas não fixe uma paleta indexada por nome de nível: no dia em que a empresa renomear um nível ou trocar as cores, a tela com paleta fixa segue mostrando a antiga, sem erro nenhum.
Leia a cor da resposta mesmo quando ela parecer constante hoje. É exatamente por isso que ela viaja no payload em vez de morar no seu app.

Períodos

O XP é guardado em quatro períodos, e a tela costuma mostrar um deles. Como “200 XP” num desenho não diz qual, esta API devolve os quatro mais o que você pediu.
Um período desconhecido é recusado com 400, não respondido com zeros. Uma resposta zerada faria a sua tela afirmar que a pessoa não tem XP — uma ausência que não é verdade.
Período que nunca foi apurado vem ausente, não como 0. No exemplo acima o weekly não aparece: aquela pessoa não tem linha de pontuação semanal. Já daily: 0 é diferente — foi apurado, e deu zero.Trate os dois casos à parte. Escrever “0 XP nesta semana” para um período ausente diz à pessoa que ela não pontuou, quando a verdade é que ninguém apurou aquele período para ela.

Ranking

Uma posição só significa algo junto do seu universo, então scope, period e total viajam sempre com ela.
total é contra quantas pessoas a posição foi medida. “#12 de 240” se lê muito diferente de “#12 de 13” — mostre isso.

Tratamento de erros

Veja Convenções da API para os dois formatos e a tabela de códigos.
Corpo inválido, lote acima de 500, CPF sem 11 dígitos, item sem cpf e sem email, ou period / ranking_scope desconhecido.
API Key válida, mas sem o escopo progress:read.
Empresa sem escada configurada não é erro. A resposta vem com levels: [] e status 200.

Limites de uso


Próximos passos

API de Missões

O progresso que gera o XP mostrado aqui

API de Campanhas

Onde as moedas são gastas