Página de status de integração: mostrar saúde da sincronização e próximos passos
Aprenda a criar uma página de status de integração que mostre saúde da sincronização, hora da última execução, detalhes de erro e próximos passos claros quando APIs de terceiros falham.

Por que os clientes precisam ver o status da sincronização
Quando um cliente abre seu app e os números parecem errados, raramente pensa “o job de sincronização está atrasado.” Pensam que o produto quebrou, que um colega mudou algo ou que eles cometeram um erro. Essa confusão transforma um pequeno problema de integração em um chamado para suporte, risco de churn ou uma longa troca de e-mails.
Uma página de status visível ao cliente elimina suposições. Responde à pergunta que as pessoas realmente têm: “Meus dados estão atualizados e, se não, o que devo fazer?” Sem essa clareza, clientes vão repetir ações, reconectar contas ou alterar configurações que não eram o problema.
Também ajuda os clientes a distinguir entre duas situações muito diferentes:
- Uma interrupção: o serviço de terceiros está fora ou rejeitando requisições, então a sincronização não vai funcionar agora.
- Uma sincronização atrasada: a sincronização funciona, mas a próxima execução está enfileirada, limitada por taxa ou demorando mais que o normal.
Esses dois casos exigem expectativas diferentes. Durante uma interrupção, o melhor próximo passo pode ser “aguarde, vamos tentar novamente automaticamente.” Durante um atraso, o melhor pode ser “sua próxima sincronização está agendada” ou “você pode executá-la agora.”
“Bom” para uma página de status de integração significa que um cliente entende a situação em menos de 10 segundos e toma uma ação segura sem contatar o suporte. Ela deve:
- Construir confiança com um sinal claro de saúde e um timestamp recente
- Reduzir perguntas repetidas como “Foi sincronizado?” e “Está travado?”
- Oferecer um próximo passo específico que não piore a situação
- Evitar apontar culpados na IU enquanto permanece honesta
Exemplo: um gerente de vendas espera novos leads de um CRM antes de uma reunião. Se a página mostrar “Última sincronização bem-sucedida: 12 minutos atrás” e “Próxima execução: em 3 minutos”, ele pode parar de atualizar a tela. Se aparecer “Precisa de atenção: reconectar obrigatório”, sabe exatamente o que consertar.
O que uma página de status visível ao cliente deve responder
Uma página de status de integração visível ao cliente existe para acabar com as suposições. Quando uma sincronização parece “travada”, as pessoas querem respostas claras sem precisar abrir um chamado.
A página deve responder um pequeno conjunto de perguntas, em palavras simples:
- A integração está funcionando agora?
- Quando foi a última sincronização bem-sucedida?
- O que falhou e qual é o impacto (todos os dados ou apenas parte)?
- O que posso fazer a seguir para corrigir ou reduzir o dano?
Também ajuda ser claro sobre para quem você está falando. Um admin precisa de detalhes suficientes para agir (reconectar, reexecutar, alterar permissões). Um usuário final normalmente só precisa de garantia e um prazo. Equipes de suporte precisam de um resumo rápido que possam capturar e enviar.
Onde deve ficar? Idealmente, é fácil de encontrar no local em que o problema aparece. Muitos produtos colocam em dois locais:
- Dentro da funcionalidade que depende da integração (um pequeno painel “Status de sincronização”)
- Em Configurações ou Integrações (uma visão completa com histórico)
Defina expectativas sobre o que você mostrará e o que não mostrará. Clientes devem ver saúde, horários e uma razão em linguagem humana, mas não rastreamentos de pilha brutos, nomes internos de serviços ou dados privados de payload. Se precisar de diagnósticos mais profundos, mantenha-os nos logs internos e anexe um pequeno ID de referência na página do cliente.
Se você estiver construindo isto no AppMaster, mire em uma versão simples: um registro de status (saúde, última execução, último sucesso, mensagem, próxima ação) e uma página que o leia. Você pode expandir depois, mas as respostas acima são o mínimo para tornar a página útil.
Campos-chave para mostrar num relance
Uma boa página de status de integração é legível em cinco segundos. O objetivo não é explicar cada detalhe técnico, e sim ajudar o cliente a responder: “Está funcionando agora e o que mudou?”
Comece com um único resumo de status que use rótulos simples: Healthy, Degraded, Down ou Paused. Mantenha as regras consistentes. Por exemplo, “Degraded” pode significar que alguns registros falham, mas a maioria ainda sincroniza, enquanto “Paused” significa que a sincronização foi parada intencionalmente (pelo cliente ou pelo sistema).
Logo abaixo do resumo, mostre os três horários que mais importam. Use tanto um timestamp legível quanto um tempo relativo (“há 12 minutos”), e sempre mostre o fuso horário.
Aqui estão os campos que normalmente merecem um lugar permanente no topo da página de status de integração:
- Resumo de status (Healthy, Degraded, Down, Paused) com uma razão de uma linha
- Última sincronização bem-sucedida (hora e relativo)
- Última execução tentada (mesmo que tenha falhado)
- Próxima execução agendada (ou “manual” se não houver cronograma)
- Contagens simples da última execução: processados, falhos, ignorados
As contagens devem ser úteis, não barulhentas. Prefira números pequenos e estáveis em vez de detalhamentos profundos. “Processados 1.240, Falhos 18, Ignorados 6” é suficiente para a maioria dos clientes.
Um exemplo concreto: se um cliente vê “Degraded” mais “Última sincronização bem-sucedida: 2 horas atrás” e “Última execução tentada: 3 minutos atrás (falhou)”, ele sabe imediatamente que o sistema está tentando, mas não está conseguindo. Adicione “Próxima execução agendada: em 15 minutos” e ele sabe se deve esperar ou agir.
Detalhes de erro que ajudam sem expor demais
Quando algo quebra, clientes querem uma resposta clara, não um código misterioso. Na página de status de integração, comece com um título de erro em linguagem simples que corresponda ao que eles podem fazer em seguida. “Autenticação expirada” ou “Permissão removida” é melhor que “401” porque aponta para uma correção.
Siga o título com uma razão curta e o escopo do impacto. O escopo pode ser tão simples quanto: qual integração (por exemplo, “Salesforce”), que parte está afetada (“apenas sincronia de Contatos”) e se os dados estão atrasados ou faltando. Isso mantém a mensagem útil sem transformar a página num console de troubleshooting.
Um bom padrão é uma pequena visualização “Detalhes” que seja segura para compartilhar com o suporte. Deve incluir apenas o que ajuda a identificar o incidente, não recriar a requisição.
O que incluir na visualização segura de Detalhes
Mantenha enxuto e consistente entre integrações:
- Código de erro (por exemplo, 401, 403, 429)
- Timestamp (com fuso horário)
- Request ID ou correlation ID
- Última sincronização bem-sucedida (se relevante)
- Uma mensagem curta e não sensível (uma frase)
Evite qualquer coisa que possa vazar segredos ou dados do cliente. Não mostre tokens de acesso, chaves de API, headers completos ou payloads inteiros de requisição/resposta. Mesmo trechos “inofensivos” podem incluir e-mails, IDs de registro ou campos ocultos.
Exemplo pequeno
Se um cliente desconecta e reconecta uma ferramenta, a próxima execução pode falhar por um token expirado. Em vez de “401 Unauthorized”, mostre:
“Autenticação expirada. Não conseguimos renovar sua conexão com HubSpot, então novos leads não estão sincronizando. Detalhes: código 401, 2026-01-25 10:42 UTC, request ID 8f2c..., último sucesso 2026-01-25 08:10 UTC.”
Isso dá confiança ao cliente e dá ao seu time o suficiente para rastrear o problema rapidamente, sem expor dados sensíveis.
Próximos passos que os clientes realmente podem tomar
Quando algo quebra, a melhor página de status de integração não apenas diz “falhou”. Diz ao cliente o que ele pode fazer agora e o que acontecerá em seguida.
Comece por ações que resolvem as causas mais comuns de falhas em APIs de terceiros. Faça cada botão ou instrução específica, não genérica, e mostre o tempo esperado.
- Reconectar conta: leve o cliente pelo fluxo de reautenticação, então confirme “Conectado” e coloque uma nova sincronização na fila (geralmente 1–5 minutos).
- Atualizar permissões: explique qual permissão está faltando, então verifique o acesso e tente reexecutar o job automaticamente.
- Reexecutar sincronização: rode apenas a etapa que falhou primeiro e continue a sincronização completa se isso for bem-sucedido (mostre uma janela de tempo estimada).
- Alterar configurações de sincronização: permita reduzir o escopo (por exemplo, menos registros) para destravar, e expandir depois.
- Exportar relatório de erros: baixe um resumo curto e seguro para o cliente compartilhar internamente.
Após cada ação, mostre um resultado claro: “Vamos tentar novamente automaticamente”, “Próxima execução agendada às 14:00” ou “Aguardando resposta do provedor”. Se você faz backoff em tentativas, diga isso com palavras simples: “Tentaremos até 3 vezes nas próximas 30 minutos.”
Para problemas não acionáveis pelo cliente, seja honesto e calmo. Por exemplo: “O provedor está com uma interrupção. Não há nada que você precise alterar. Retomaremos a sincronização quando eles se recuperarem e publicaremos uma atualização aqui dentro de 60 minutos.”
Quando for necessário contatar o suporte, diga exatamente o que enviar para acelerar a correção:
- Nome da integração e e-mail (ou ID) da conta conectada
- Hora da última sincronização bem-sucedida e da última falha
- Código de erro mostrado na página (não logs brutos)
- O que foi clicado e o que aconteceu
Se você construir isso no AppMaster, pode ligar essas ações a endpoints backend simples e a uma UI do cliente sem expor dados sensíveis do provedor.
Como construir a página de status passo a passo
Trate sua página de status como um pequeno recurso de produto, não como uma tela de debug. Se um cliente pode responder “Está funcionando e o que devo fazer a seguir?”, você já fez a maior parte.
Passo 1: Defina estados e regras por trás deles
Escolha um conjunto curto de estados e torne-os consistentes entre integrações. Opções comuns: Healthy, Delayed, Failing e Paused. Escreva as regras exatas que disparam cada estado (por exemplo, “Failing se as últimas 3 execuções terminaram em erro” ou “Delayed se não houve sucesso em 6 horas”).
Passo 2: Registre os eventos certos
Sua página só será tão clara quanto seus dados. Registre cada execução, cada tentativa e cada erro de forma estruturada. Faça de “última sincronização bem-sucedida” um campo de primeira classe, não algo calculado a partir de logs brutos.
Passo 3: Desenhe um layout simples
Uma boa página de status geralmente tem três partes: um resumo no topo (estado + último sucesso), um pequeno histórico (execuções recentes) e uma área clara de ações (o que o cliente pode fazer agora). Mantenha detalhes a um clique de distância para que a visão principal permaneça calma.
Uma ordem simples de implementação:
- Crie o modelo de estado e as regras.
- Armazene histórico de execuções, erros e tentativas.
- Construa a UI de resumo, histórico e ações.
- Adicione visibilidade por função (admins vs visualizadores).
- Valide a página usando falhas reais.
Passo 4: Adicione visibilidade por função
Mostre níveis de detalhe diferentes. Visualizadores podem ver status, tempos e orientações seguras. Admins podem ver códigos de erro, endpoints que falharam e dicas de configuração (como “token expirado”).
Passo 5: Teste com casos reais de falha
Não pare no teste do caminho feliz. Reproduza falhas comuns:
- Token expirado
- Limite de taxa atingido
- Timeout de rede
- Permissões inválidas
- Mapeamento de dados incorreto
Se você construir no AppMaster, pode modelar as tabelas no Data Designer, capturar eventos com Business Processes e montar a UI com builders web ou mobile sem codificar a mão a página.
Dados necessários por trás da página
Uma página de status de integração voltada ao cliente vale tanto quanto os dados por trás dela. Se quiser que a página carregue rápido e seja consistente, separe “saúde rápida” de histórico mais profundo e logs brutos.
Comece com uma tabela de histórico de execuções. Essa é a espinha dorsal para “última execução”, “último sucesso” e visualizações de tendência. Cada linha deve representar uma tentativa de sincronização, mesmo que falhe cedo.
Mantenha o registro de execução pequeno e consistente:
- Hora de início e hora de fim (ou duração)
- Resultado (success, partial, failed)
- Itens processados (e opcionalmente itens falhos)
- Identificador da integração/provedor (para produtos multi-provedor)
- Correlation ID (para conectar execuções a erros e logs internos)
Em seguida, armazene um registro de erro normalizado. Evite despejar rastreamentos de pilha inteiros em dados visíveis ao cliente. Em vez disso, salve um tipo de erro estruturado (auth, rate limit, validation, timeout), uma mensagem curta, o nome do provedor, quando ocorreu pela primeira vez e quando ocorreu por último. Isso permite agrupar falhas repetidas e mostrar “falhando desde terça-feira” sem ruído.
Adicione um pequeno modelo de “health da integração” para leituras rápidas. Pense nele como um resumo em cache por cliente e integração: estado atual, última sincronização bem-sucedida, última execução e uma razão curta. Sua UI pode ler isso primeiro e buscar o histórico de execuções só quando o usuário abrir detalhes.
Por fim, decida retenção. Clientes geralmente precisam de dias ou semanas de histórico visível para entender o que mudou, enquanto seus logs internos podem precisar ficar mais tempo para auditoria e debugging. Defina cortes claros (por exemplo, mantenha 30–90 dias de histórico visível) e mantenha payloads brutos apenas em armazenamento interno.
Se estiver no AppMaster, esses modelos mapeiam bem para tabelas do Data Designer, e seu fluxo de sincronização pode gravar registros de execução e erro a partir de um Business Process no mesmo lugar sempre.
Erros e armadilhas comuns
Uma página de status só é útil se corresponder à realidade. A forma mais rápida de perder confiança é mostrar um selo verde “Tudo certo” quando a última sincronização bem-sucedida foi há três dias. Se seus dados estiverem desatualizados, diga isso e torne “último sucesso” tão visível quanto o estado atual.
Outra falha comum é despejar códigos de erro brutos e achar que está feito. “401” ou “E1029” pode ser preciso, mas não é útil. Clientes precisam de um resumo em linguagem simples do que quebrou e o que isso afeta (por exemplo, “Novos pedidos não serão importados, mas pedidos existentes permanecem inalterados”).
As pessoas também se confundem quando o comportamento de retry é oculto. Se seu sistema tenta novamente a cada 15 minutos, mas a página não mostra nada, clientes continuarão clicando em “Sincronizar agora” e abrirão tickets quando não “funcionar”. Torne as tentativas visíveis, incluindo a próxima tentativa agendada e se retry manual é permitido.
Cuidado com estas armadilhas:
- Status verde baseado em “sem erros recentes” em vez de “última sincronização bem-sucedida recente”.
- Apenas códigos técnicos de erro, sem explicação humana ou impacto.
- Sem visibilidade de tentativas automáticas, backoff ou execuções em fila.
- Detalhes de erro que expõem segredos (tokens, headers completos, dados de clientes, payloads de webhooks).
- Muitos rótulos de status (10+), de modo que ninguém saiba distinguir “bloqueado” de “atrasado”.
Mantenha rótulos pequenos e claros, como Healthy, Delayed, Action needed, Outage. Defina-os uma vez e mantenha a consistência.
Um exemplo prático: se um token do Shopify expira, não mostre um stack trace ou o token. Mostre “Conexão expirada”, o horário em que começou a falhar, o que não vai sincronizar e um passo seguro como “Reconectar conta”. Se construir no AppMaster, trate o texto de erro como conteúdo voltado ao usuário, não como dump de log, e redacte campos sensíveis por padrão.
Checklist rápido antes de enviar
Antes de lançar uma página de status de integração, faça uma checagem rápida como se fosse um cliente que acabou de notar dados faltando. O objetivo é simples: confirmar o que está quebrado, quão sério é e o que fazer a seguir sem pânico.
Comece pela linha de topo. O rótulo de status deve ser inequívoco (Healthy, Delayed, Action required) e sempre incluir a hora da última sincronização bem-sucedida. Se não puder mostrar com confiança o “último sucesso”, clientes vão supor que nada está funcionando.
Depois verifique as ações. Se reconectar ou reexecutar for possível, torne óbvio e seguro. Um admin não deve precisar abrir um ticket para uma correção básica como reautorizar uma conta.
Use esta checklist pré-lançamento:
- Rótulo de status claro + hora da última sincronização bem-sucedida (e estado da execução atual, se aplicável)
- Caminho de um clique para um admin reconectar ou reexecutar, com confirmação curta do que acontecerá em seguida
- Texto de erro que evita culpa, explica impacto e define expectativas (por exemplo, “Tentaremos novamente automaticamente em 15 minutos”)
- Sem segredos ou dados pessoais mostrados (sem tokens, sem payloads completos, sem IDs brutos que exponham clientes)
- Suporte consegue ligar a visão do cliente aos logs internos via correlation ID ou código de referência curto
Faça um teste de texto com um cenário real: um limite de taxa do provedor atinge no horário de pico. A página deve indicar quais dados estão atrasados, se dados antigos ainda estão visíveis e quando a próxima tentativa está agendada. “A API deles falhou” é menos útil que “Sincronização pausada devido a limites de taxa. Tentaremos novamente às 14:30 UTC. Nenhuma ação necessária.”
Se construir no AppMaster, trate textos de status e ações como parte do fluxo do produto: a página voltada ao cliente, o botão de retry e a referência interna devem ser gerados a partir do mesmo registro de status para evitar divergências.
Exemplo: quando um token de API de terceiros expira
Um caso comum: sua sincronização de CRM para quando alguém altera permissões nas configurações administrativas do CRM. O token que seu app usa ainda “existe”, mas não tem mais acesso aos objetos-chave (ou expirou completamente). Do seu lado, jobs começam a falhar. Do lado do cliente, os dados deixam de atualizar silenciosamente.
Na página de status de integração, o cliente deve ver um resumo claro e calmo. Por exemplo: Status: Degraded (sincronização do CRM pausada), mais o horário da última sincronização bem-sucedida (por exemplo, “Último sucesso: 25 Jan, 10:42”). Inclua uma linha curta que explique o impacto: “Novos contatos e negócios não aparecerão até a conexão ser restaurada.”
Também ajuda mostrar o que é afetado sem despejar logs. Uma área simples “Dados afetados” é suficiente: Contatos: não sincroniza, Negócios: não sincroniza, Notas: ok. Se seu produto tem múltiplos workspaces ou pipelines, mostre quais estão impactados.
Em seguida, dê uma ação recomendada que corresponda à correção provável:
- Reconectar conta CRM (reautorizar o acesso)
- Confirmar que o usuário tem permissão para ler Contatos e Negócios
- Rodar retry após reconectar
Após a reconexão, a página deve atualizar imediatamente, mesmo antes da próxima execução completa. Mostre: “Conexão restaurada. Próxima sincronização em 5 minutos” (ou “Retry em execução agora”). Quando o retry terminar, substitua o aviso por confirmação: “Sincronização saudável. Dados atualizados às 11:08.”
Se estiver no AppMaster, modele “connection state”, “last success” e “next run” no Data Designer e atualize-os a partir do fluxo de sincronização no Business Process Editor para que a página de status permaneça precisa sem trabalho manual de suporte.
Próximos passos para implementar em seu produto
Comece pequeno para poder lançar rápido e aprender com o uso real. Uma página simples que mostre estado de relance e a última sincronização bem-sucedida responderá à maior parte das dúvidas dos clientes imediatamente. Depois que isso for confiável, adicione detalhes como erros recentes, o que está sendo tentado e o que o cliente pode fazer a seguir.
Precisão importa mais que design. Se sua página de status estiver errada uma vez, clientes param de confiar nela e voltam ao suporte. Instrumente seus jobs de sincronização para que cada execução escreva um resultado claro (success, partial, failed), timestamps e uma categoria de erro estável. Registre tentativas da mesma forma, incluindo quando a próxima tentativa está agendada.
Plano prático de rollout:
- Lance v1: badge de status + última sincronização bem-sucedida + “atualizado há X minutos”
- Adicione logging: armazene última execução, último sucesso, contagem de falhas e próxima tentativa por integração
- Adicione orientação: mapeie cada categoria de erro para uma mensagem amigável e uma ação específica
- Alinhe suporte: use a mesma redação do playbook de suporte para evitar sinais mistos
- Expanda: adicione um pequeno timeline de “eventos recentes” quando os fundamentos estiverem sólidos
Mantenha a redação consistente entre produto e suporte. Se o suporte diz “Reconectar sua conta”, a UI deve usar a mesma frase, não “Reauthorize OAuth”, mesmo que engenheiros chamem assim. Também ajude mostrar o que acontece depois que o cliente age, como “Tentaremos novamente automaticamente dentro de 5 minutos.”
Se quiser construir isso sem grande esforço de engenharia, uma plataforma no-code como AppMaster pode manter dados, lógica e UI em um só lugar. Modele Integration e SyncRun no Data Designer (PostgreSQL), registre resultados do fluxo de sincronização no Business Process Editor e construa uma página simples para o cliente no web UI builder. Quando os requisitos mudarem, AppMaster regenera a aplicação limpo, facilitando iterar campos e mensagens. Comece com uma página de status v1 e evolua com base em tickets reais de suporte.


