Skip to main content
Quando alguém sai da empresa, as linhas que estavam com essa pessoa continuam funcionando até alguém lembrar de bloqueá-las no painel. Nesse intervalo, o chip pode continuar em uso fora da empresa. Nesta receita, o próprio evento de desligamento do seu sistema de RH dispara o bloqueio: a partir do CPF do colaborador, sua integração encontra as linhas ativas dele, bloqueia cada uma e marca o colaborador como desligado na Salvy. Para quem é: times de RH, TI ou de gestão de telecom que querem tirar o bloqueio de linhas do checklist manual de desligamento.

O que você precisa

  • Uma chave de API de empresa. Chaves de organização são somente leitura e não podem bloquear linhas. Veja Chaves de API.
  • O CPF do colaborador desligado e a data do desligamento, vindos do seu sistema de RH.
  • Os colaboradores cadastrados na Salvy com CPF e as linhas associadas a eles.

Passo a passo

1

Encontre o colaborador pelo CPF

Filtre a lista de colaboradores pelo CPF. O filtro aceita o CPF com ou sem pontuação.
Filtre também por status=active e status=on-hold. O mesmo CPF pode ter mais de um cadastro, por exemplo quando a pessoa foi readmitida. Com esse filtro você ignora os cadastros que já foram desligados. A lista vem ordenada do cadastro mais recente para o mais antigo, então use o primeiro item de data.
Se data vier vazio, não há colaborador ativo com esse CPF e não há nada a bloquear.
2

Liste as linhas ativas do colaborador

Filtre as linhas pelo employeeId encontrado e pelo status active.
Cada item de data é uma linha, com id, phoneNumber e name. Se pagination.totalPages for maior que 1, busque as páginas seguintes com o parâmetro page antes de continuar.
3

Bloqueie cada linha

Para cada linha, chame o endpoint de bloqueio com o motivo. Use reason: "other" e descreva o motivo em otherReason, para que o histórico da linha registre por que ela foi bloqueada.
A resposta traz a linha com o estado atual. Bloquear uma linha que já está bloqueada não tem efeito, então repetir esta etapa é seguro.
4

Marque o colaborador como desligado

Depois que todas as linhas foram bloqueadas, atualize o colaborador com o status terminated e a data do desligamento.
Deixe esta etapa por último. A etapa 1 só encontra colaboradores ativos ou afastados: se você marcar o desligamento antes e algum bloqueio falhar, uma nova execução não encontra mais o colaborador e as linhas restantes ficam ativas.

Sem código: workflow do n8n

Se você usa o n8n, baixe o workflow pronto com as quatro etapas. Ele tem dois gatilhos: um manual, para testar, e um webhook, para o seu sistema de RH chamar a cada desligamento.

Baixar workflow do n8n

offboarding-block-lines.json: importe no n8n e siga as notas dentro do workflow.
  1. No n8n, crie um workflow e importe o arquivo (menu ⋯ > Import from File, ou cole o conteúdo do arquivo no editor).
  2. Crie uma credencial Bearer Auth com a sua chave de API e selecione-a nos quatro nós HTTP.
  3. Preencha o cpf no nó Dados de teste e execute. O workflow começa em modo simulação (dryRun = true no nó Configuração): ele mostra as linhas que seriam bloqueadas, sem bloquear nada.
  4. Quando o resultado estiver certo, troque dryRun para false. Para rodar automaticamente, ative o workflow e faça o seu sistema de RH chamar a URL do nó Webhook do RH com { "cpf": "...", "terminatedAt": "AAAA-MM-DD" }.
A URL de um webhook do n8n é pública. Antes de ativar o workflow, configure uma autenticação no nó Webhook do RH (por exemplo, Header Auth).

Como implementar

  • Gatilho: um webhook do sistema de RH a cada desligamento, uma rotina diária que busca os desligamentos do dia ou um botão no seu sistema interno.
  • Modo simulação primeiro. Comece com uma versão que só consulta e mostra as linhas que seriam bloqueadas, sem fazer as chamadas de escrita. Confira o resultado e só depois ative as escritas.
  • Ordem das etapas: marque o desligamento só depois de bloquear todas as linhas. Se algum bloqueio falhar, interrompa antes do PATCH, para que uma nova execução ainda encontre o colaborador.

Cuidados

Bloquear uma linha em produção interrompe o serviço dela de verdade. Valide o fluxo com uma chave de sandbox (salvy_test_), com colaboradores e linhas de teste, antes de trocar para a chave de produção. Veja Ambientes.
Se a execução parar no meio, rode de novo com o mesmo CPF. As linhas já bloqueadas não voltam na etapa 2 (elas deixam de ter status active) e bloquear de novo uma linha bloqueada não tem efeito. Como o desligamento só é marcado no final, o colaborador continua sendo encontrado até todas as linhas estarem bloqueadas.
O PATCH da etapa 4 conta como uma edição manual, e edições manuais têm prioridade sobre os dados que chegam de integrações. Se o seu sistema de RH já envia o status dos colaboradores para a Salvy, pule a etapa 4 e deixe a integração informar o desligamento. Caso contrário, uma readmissão futura enviada pela integração não substitui o status terminated que você gravou.
A etapa 2 só encontra as linhas associadas ao colaborador na Salvy. Se a sua empresa costuma deixar linhas sem colaborador, associe cada linha ao colaborador responsável, pelo painel ou por PATCH /api/v3/phone-accounts/{id}, para que esta receita encontre todas.

Variações

  • Avisar o gestor. Ao final, envie para o Slack, Teams ou e-mail do gestor um resumo com o nome do colaborador e os números bloqueados.
  • Confirmar pelo webhook. Assine o evento phone-account.blocked para registrar no seu sistema cada linha bloqueada, inclusive as bloqueadas pelo painel.
  • Cancelar em vez de bloquear. Se a linha não vai ser reaproveitada por outra pessoa, use Cancelar linha em vez do bloqueio. O bloqueio pode ser desfeito com Desbloquear linha e é a opção mais segura enquanto a linha aguarda um novo responsável.