Pacto Soluções
O Pacto Soluções é o NicoApp de integração com o sistema de gestão para academias Pacto (concorrente do EVO/W12). Com ele, seu bot consulta e cadastra clientes, registra observaçõe
Nota
Disponível na aba de NicoApps. Base da integração: API oficial Pacto, via gateway apigw.pactosolucoes.com.br.
Como obter a credencial (token)
Diferente da EVO (usuário + senha via Basic Auth), a Pacto usa um único token, informado no campo Credencial API na instalação do app. Segundo o próprio cadastro do app, o caminho para gerar essa credencial é:
- No sistema Pacto, acesse o módulo ADM.
- Vá em Configurações → Integrações → ADM → API Sistema Pacto.
- Clique em Gerar Credencial para criar o token de integração.
- Copie o valor gerado e cole no campo Credencial API na instalação do NicoApp Pacto Soluções.
Essa credencial é enviada automaticamente pelo NicoChat em toda ação do app (todas as ações têm autenticação por token habilitada) — não é preciso configurar cabeçalho de autenticação em cada ação individualmente.
Atenção
A Pacto não publica documentação pública detalhando esse fluxo passo a passo. O caminho acima reflete a configuração já registrada neste app; se o menu tiver mudado, confirme com o suporte Pacto (fale@pactosolucoes.com.br / (62) 3414-0314) ou com o gerente de conta da academia.
Limitações e requisitos de plano
Atenção
Exigência de plano/módulo comercial e limite de requisições (rate limit) para a API não são divulgados publicamente pela Pacto. Confirme com o suporte ou gerente de conta da Pacto antes de dimensionar um bot de atendimento em produção.
- Ao instalar e testar: comece com poucas ações e observe o campo
metaretornado pela API (mapeado internamente e usado no tratamento de erro) — mensagens de limite ou bloqueio de uso costumam aparecer ali, assim como erros HTTP 429 (too many requests) ou 401/403 (credencial inválida ou sem permissão). - Módulos comerciais: como o sistema Pacto é modular, é possível que a liberação da API dependa de um módulo/complemento contratado à parte — assim como a EVO exige o plano Black. Valide isso com a Pacto antes de prometer a integração a um cliente.
O que o miniapp faz
As ações abaixo são as publicadas no catálogo do app (organizadas nas mesmas pastas usadas no editor: Leads & Dados de Contato e Dados de Alunos).
Leads & Dados de Contato
Ação
O que faz
Endpoint
Entradas principais
Saídas
Consultar Informações de Clientes (Filtros)
Retorna clientes com base em e-mail ou CPF
GET /psec/clientes/consultarClienteJson
ID da Empresa (obrigatório, select dinâmico); E-mail, CPF (opcionais, ao menos um recomendado)
ID do Cliente, N° Matrícula, Data de Nascimento, Situação Atual, E-mail, Telefone, CPF (1º da lista) + Todos os Clientes Listados (JSON)
Consultar Cliente por ID
Retorna os dados do cliente pelo ID
GET /v1/cliente/{codigo}
ID do Cliente (obrigatório)
Nome, N° Matrícula, Situação Atual, CPF, Telefones (array), Data de Nascimento, E-mails (array), Todas as Informações (JSON)
Incluir Cliente
Cadastra um cliente como Visitante na empresa
POST /v2/cliente
ID da Empresa, Nome Completo, CPF, Celular (obrigatórios); N° Matrícula, Gênero, Data de Nascimento (opcionais)
ID do Cliente, Situação Atual, Todas as Informações (JSON)
Inserir Observações no Cliente
Grava uma observação no cadastro do cliente
POST /cliente/gravarobservacao
ID da Empresa, N° Matrícula, Observação (obrigatórios)
ID da Observação
Buscar Histórico de Presença
Obtém aulas realizadas, aulas no mês e semanas consecutivas de frequência
GET /cliente/historico-presenca
ID da Empresa, N° de Matrícula (obrigatórios)
Histórico (JSON)
Obter Informações do Plano do Cliente
Retorna o plano atual do cliente
GET /clientes/{matricula}/dados-plano
N° de Matrícula (obrigatório)
Todas as Informações (JSON), Nome do Plano, Situação Atual, Vínculos, Possui GymPass, Possui TotalPass
Dados de Alunos
Ação
O que faz
Endpoint
Entradas principais
Saídas
Obter Objetivos do Aluno
Lista os objetivos cadastrados do aluno
GET /alunoTurma/objetivos/{matricula}
ID da Empresa, N° de Matrícula (obrigatórios)
Objetivos (JSON)
Obter Parcelas em Aberto
Lista as parcelas em aberto do aluno (situação "EA", ignora remessa e multa/juros)
GET /parcelas/by-matricula/{matricula}
N° da Matrícula (obrigatório)
Parcelas em Aberto (JSON)
Obter Saldo do Aluno
Retorna o saldo atual da conta corrente do aluno
GET /clientes/{matricula}/saldo-conta-corrente
N° Matrícula (obrigatório)
Saldo Atual
Nota
Em desenvolvimento: o editor do app tem um décimo sub-fluxo, "Atualizar Situação de um Aluno" (endpoint previsto
/psec/alunos/situacao/{id}), que ainda não foi publicado como ação no catálogo do app — hoje ele não aparece na lista de ações instaláveis. Antes de divulgar essa ação a clientes, finalize a chamada ao endpoint correto no editor do sub-fluxo.Dicas e observações
- Tratamento de erros: quando a Pacto recusa ou falha uma chamada, a ação cai no bloco
action_failed, alimentado pelo conteúdo de$.metada resposta — use o caminho de erro do bloco para tratar no fluxo (ex.: credencial inválida, matrícula não encontrada, limite de uso atingido). - Limpeza de payload: em ações de escrita (ex.: Incluir Cliente), um passo de JavaScript remove do payload os campos
undefined,nullou string vazia antes de montar o corpo da requisição — evita enviar chaves em branco que a API poderia rejeitar ou interpretar incorretamente. - N° de Matrícula é a chave principal: a maioria das ações de consulta de aluno (Parcelas, Saldo, Plano, Objetivos, Histórico, Observação) usa a Matrícula como identificador — ela sai de Incluir Cliente/Consultar Cliente e deve ser guardada em variável do bot ou do CRM assim que obtida.
- ID do Cliente encadeado: o ID do Cliente retornado por Incluir Cliente ou Consultar (Filtros) alimenta a ação Consultar Cliente por ID.
- Select dinâmico de Empresa: o campo ID da Empresa carrega as opções direto da conta Pacto conectada (fonte dinâmica "empresas"), escolhida uma vez no desenho do fluxo.
- Economize requisições: como não há confirmação pública de limites, trate a API da Pacto com a mesma cautela recomendada para a EVO — evite repetir consultas de catálogo/situação a cada mensagem e monitore respostas de erro que indiquem limite de uso.