Seção 1
Primeiros Passos
O que é o TrueContact?
O TrueContact é um CRM pessoal automático para Mac e Windows. Liga-se ao iCloud, ao Google Contacts, ao LinkedIn e ao WhatsApp para sincronizar, enriquecer e organizar os seus contatos — e envia mensagens de aniversário automaticamente, em segundo plano.
Ao contrário das soluções cloud (HubSpot, Salesforce, etc.), o TrueContact roda 100% no seu computador. Não há subscrição, não há conta, não há servidor salvando os seus dados.
Para quem é:
- Profissionais de networking que querem manter contatos sempre atualizados
- Quem usa iPhone/Mac e quer aproveitar ao máximo o iCloud Contacts
- Quem usa o Gmail e quer manter o Google Contacts em sincronia com o iCloud
- Quem quer enviar parabéns automáticos sem parecer um bot
- Quem valoriza a privacidade total dos seus dados de contato
Requisitos do sistema e como instalar
macOS
Ventura 13 ou superior
Windows
Windows 10 (64-bit) ou superior
Passos de instalação:
- Acesse a página de download e baixe o arquivo para o seu sistema
- macOS: Abre o
.dmge arrasta o TrueContact para Aplicações - Windows: Executa o instalador
.exee segue os passos - Na primeira abertura, o Assistente de Configuração guia-te por todas as integrações
Qual é a sequência de configuração recomendada?
Na primeira abertura, o Assistente de Configuração guia-te automaticamente por todos estes passos:
- 1 Configurar o iCloud — introduz o Apple ID e a App-Specific Password para importar os seus contatos
- 2 Conectar o Google Contacts — autoriza via OAuth para sincronização bidirecional com o Google
- 3 Conectar o WhatsApp — lê o QR Code nas Configurações para ativar o envio de mensagens
- 4 Criar templates de aniversário — define as mensagens automáticas que o sistema vai enviar
- 5 Deixar correr — o TrueContact faz tudo o resto em segundo plano
Seção 2
Segurança e Privacidade
Onde ficam armazenados os meus dados?
100% no seu próprio computador. O TrueContact usa uma base de dados SQLite local — nenhum contato, foto, nota ou histórico de mensagens é enviado para servidores externos. Não existem servidores TrueContact.
macOS
~/Library/Application Support/truecontact/database.sqlite
Windows
%APPDATA%\truecontact\database.sqlite
Podes abrir, copiar ou fazer backup deste arquivo com ferramentas como o DB Browser for SQLite.
O TrueContact envia algum dado para a internet?
O TrueContact apenas faz conexões diretamente com os serviços que já usas — nada passa por servidores TrueContact:
iCloud CardDAV
Conexão direta aos servidores da Apple — as suas credenciais nunca passam pelo TrueContact
Google People API
Autenticação via OAuth 2.0 — o token fica local e nunca passa por servidores TrueContact
Lê perfis públicos como um browser normal — só leitura, nenhum dado seu é enviado
WhatsApp Web
Conexão direta aos servidores do WhatsApp — sessão autenticada localmente
GitHub Releases
Apenas verifica um número de versão — nenhum dado pessoal envolvido
Como funciona a sessão do WhatsApp — é segura?
Quando ligas o WhatsApp através do QR Code, é gerado um arquivo de sessão local no seu computador. Este arquivo mantém a autenticação sem necessidade de introduzir credenciais repetidamente.
macOS
~/Library/Application Support/truecontact/whatsapp-session/
Windows
%APPDATA%\truecontact\whatsapp-session\
O que é a App-Specific Password do iCloud?
O TrueContact usa uma App-Specific Password para aceder ao iCloud Contacts — nunca a sua password principal do Apple ID. É uma password de uso único gerada pela Apple especificamente para esta app.
Vantagens:
- Se for comprometida, podes revogá-la sem alterar o seu Apple ID
- Dá acesso apenas ao CardDAV (Contatos), não ao restante do iCloud
- A Apple permite revogar individualmente por app
Para gerar, vai a appleid.apple.com → Iniciar sessão e segurança → Senhas específicas de app.
Seção 3
Sincronização de Contatos
Como o TrueContact une dados do iCloud, LinkedIn, Facebook e WhatsApp?
O TrueContact funciona como um Hub central: a base de dados local é a fonte de verdade, e os provedores bidirecionais (iCloud, Google Contacts) leem e escrevem contatos, enquanto LinkedIn, Facebook e WhatsApp apenas enriquecem.
- 1Pull do iCloud — lê todos os contatos e grupos via CardDAV, preservando ETags para detectar alterações
- 2Pull do Google — lê alterações desde o último sync via SyncToken, bidirecional
- 3Enriquecimento LinkedIn — importa cargo, empresa, foto e redes sociais automaticamente
- 4Enriquecimento Facebook — importa foto, cidade, sites e o que estiver público no "Sobre", além da data de amizade
- 5Enriquecimento WhatsApp — importa a foto de perfil em alta resolução e, nas contas comerciais, e-mail, endereço, site e perfis de Facebook e Instagram
- 6Push para iCloud e Google — escreve as alterações de volta em ambos, ficando disponíveis em todos os dispositivos
Como funciona a normalização de números de telefone?
O mesmo número pode estar salvo de formas completamente diferentes no iCloud e no WhatsApp. O TrueContact normaliza todos eles automaticamente para fazer a correspondência:
(11) 98765-4321→ normalizado →5511987654321+55 11 9 8765-4321→ normalizado →551198765432111 8765-4321→ + 9º dígito →5511987654321Inclui suporte ao 9º dígito brasileiro para números de DDDs onde a transição ocorreu depois de 2012 — sem que precises de atualizar os seus contatos manualmente.
Porque não vejo a foto de alguns contatos do WhatsApp?
Esta é uma das perguntas mais frequentes. A resposta é simples: o WhatsApp respeita as configurações de privacidade de cada usuário.
Se um contato configurou a sua foto de perfil para ser visível apenas para os seus próprios contatos (ou para ninguém), o WhatsApp não disponibiliza essa foto a nenhuma aplicação — incluindo o TrueContact. Quando isso acontece, o TrueContact mostra um ícone de privacidade em vez da foto, sinalizando que o contato existe no WhatsApp mas optou por restringir a sua imagem.
Como o TrueContact detecta e resolve contatos duplicados?
O TrueContact analisa automaticamente a sua base de dados em busca de contatos com nome, email, telefone ou perfil social semelhantes.
Quando encontra sugestões:
- Na sidebar, aparece o bloco Sugestões de Merge
- Clica em Rever para comparar os dois contatos lado a lado
- Escolhe quais os campos a manter de cada lado
Para fazer merge manual:
- Passa o cursor sobre um contato → aparece um ✓ no avatar
- Seleciona 2 ou mais contatos
- Clica em Merge na barra inferior
Seção 4
Conectar o Google Contacts
Passo a passo: autorização OAuth
- Abra o Assistente de Configuração (na primeira abertura) ou vá a Configurações → Google Contacts
- Clique em "Conectar Google Contacts"
- Uma janela de autenticação do Google será aberta no seu navegador
- Faça login com a sua conta Google e conceda as permissões solicitadas
- O TrueContact receberá o token automaticamente e iniciará a sincronização inicial
O que acontece na primeira conexão?
Quando você conecta o Google Contacts pela primeira vez:
- 1. O TrueContact lê todos os contatos existentes no Google
- 2. Todos os contatos locais que ainda não estão no Google são enfileirados para criação (propagação total automática)
- 3. A sincronização ocorre gradualmente para respeitar os limites da API Google
- 4. Um badge azul Google no cabeçalho indica quantos contatos ainda estão a ser processados
Como revogar o acesso ao Google?
- Vá a myaccount.google.com/permissions
- Localize "TrueContact" na lista
- Clique em "Revogar acesso"
Isso não apaga os contatos do seu Google Contacts — apenas interrompe a sincronização futura.
Seção 5
Conectar o LinkedIn e o Facebook
Instalei em um servidor Linux sem tela (Raspberry Pi). Como conecto o LinkedIn e o Facebook?
O botão Conectar precisa abrir uma janela de navegador para você fazer login — o que não existe em um servidor sem tela. A solução é exportar a sessão do seu navegador normal e importá-la no servidor:
- No Safari, Chrome ou Firefox, instale a extensão gratuita Cookie-Editor e faça login no LinkedIn e/ou no Facebook
- Com a aba da rede aberta, clique no Cookie-Editor → Export → JSON (ou Netscape/cookies.txt ou Header String) e salve o conteúdo em um arquivo
- Abra a interface web do servidor (ex.:
http://IP-DO-SERVIDOR:6969) → Configurações - Na seção LinkedIn ou Facebook, clique em Importar sessão (arquivo) e escolha o arquivo exportado
- O bloco passa a Conectado na hora, sem reiniciar o serviço
O servidor valida o arquivo antes de aceitar: precisa conter o cookie de login da rede certa e ainda dentro da validade — caso contrário a tela explica o que está errado. Só os cookies daquela rede são guardados, apenas no servidor, com permissão de leitura só para o serviço. O arquivo auth.json / auth_facebook.json gerado pelo app de desktop no Mac também é aceito.
Importante: não use a mesma conta do iCloud/Google no app do Mac e no servidor ao mesmo tempo — dois hubs sincronizando a mesma agenda geram conflitos. As sessões do LinkedIn e do Facebook podem ser as mesmas nos dois lugares.
Como conectar o LinkedIn ou o Facebook?
As duas redes são fontes de enriquecimento: o TrueContact lê perfis públicos para preencher os seus contatos, mas nunca publica, comenta ou envia nada em seu nome.
O processo é o mesmo para as duas:
- Abra as Configurações e vá à seção LinkedIn ou Facebook
- Clique em Conectar
- Uma janela de navegador se abre na página de login da rede
- Faça login normalmente, incluindo a verificação em duas etapas, se houver
- Assim que a rede confirmar a sessão, a janela fecha e o TrueContact assume dali em diante
A sessão fica salva localmente, como no seu próprio navegador. Se a rede encerrar a sessão — troca de senha, logout remoto, inatividade — o app avisa nas Configurações e basta reconectar.
O que cada radar faz?
Os dois radares acompanham a sua rede e alimentam a fila de enriquecimento:
- Novos contatos — novas conexões do LinkedIn; novos amigos e solicitações pendentes do Facebook
- Aniversários — nas duas redes
- Mudança de cargo ou emprego — nas duas redes
- Convites e solicitações — convites do LinkedIn ainda não aceitos aparecem no painel inicial; solicitações enviadas no Facebook são priorizadas na fila
- Data de início do vínculo — data da conexão no LinkedIn, data de amizade no Facebook
Existe risco de bloqueio? Como o app se protege?
Tanto o LinkedIn quanto o Facebook são agressivos contra automação. O TrueContact trabalha devagar de propósito:
- Limite por ciclo — quantos perfis são visitados a cada execução. O recomendado para o Facebook é 1 a 5; acima disso o risco de bloqueio temporário cresce bastante
- Intervalo de reverificação — de quantos em quantos dias o perfil de cada contato é revisitado. O contador reinicia após qualquer enriquecimento, manual ou automático
- Uma varredura de lista por dia — a lista de amigos e a de conexões são varridas no máximo uma vez a cada 24 horas
Perfis de empresa, memorializados e apagados
Nem todo perfil é uma pessoa, e o sistema reconhece os casos especiais:
- Páginas de empresa — marcadas como empresa, não como pessoa
- Perfis memorializados — perfis de pessoas falecidas são detectados e retirados da fila de raspagem após o processamento
- Perfis apagados — quando o endereço deixa de existir (erro 404), o perfil é marcado como inativo em vez de ser tentado indefinidamente
Não precisa esperar o ciclo automático para atualizar alguém: no painel do contato, o botão de enriquecimento ao lado do perfil social visita aquele perfil na hora.
Seção 6
Conectar o WhatsApp
Passo a passo: como ler o QR Code
No TrueContact:
- 1. Abre as Configurações (ícone ⚙️)
- 2. Vai à secção WhatsApp
- 3. Clica em "Conectar WhatsApp"
- 4. Aparece um QR Code — tens 60 segundos
No seu celular:
- 1. Abre o WhatsApp
- 2. Vai a Definições → Dispositivos conectados
- 3. Toca em "Conectar um dispositivo"
- 4. Aponta a câmara para o QR Code
Resolver problemas de conexão
O QR Code expira antes de conseguir ler
Clica em "Atualizar QR Code" nas Configurações. O código é regenerado instantaneamente.
"Sessão desligada" aparece nas Configurações
O WhatsApp desliga dispositivos inativos por mais de 14 dias. Repete o processo de conexão com o QR Code.
O WhatsApp diz "Número de aparelhos atingido"
Remove um dispositivo existente em WhatsApp → Configurações → Dispositivos conectados e tenta novamente.
As mensagens não estão a ser enviadas
Verifica em Configurações → WhatsApp se o estado mostra "Conectado". Se não, reconecta através do QR Code.
Seção 7
Templates e Automações
Como criar templates de mensagem de aniversário?
- Abre as Configurações
- Vai à secção Templates de Aniversário
- Clica em "Adicionar Template"
- Escreve a mensagem, usando
{{nome_amigavel}}para o nome do contato - Clica em "Salvar"
Exemplos de templates:
O que é a variável {{nome_amigavel}} e como funciona?
A variável {{nome_amigavel}} é substituída automaticamente pelo nome mais natural do contato. O sistema segue esta ordem de prioridade:
Apelido (Nickname)
Se o contato tiver um apelido definido no iCloud (ex: Zé), usa esse
Primeiro nome
Se não tiver apelido, usa o primeiro nome (ex: José)
Nome completo
Apenas como último recurso
Exemplo prático:
O seu contato está salvo como "José Manuel Ferreira da Silva" no iCloud, mas todo mundo o chama de "Zé". Com o apelido definido, a mensagem será:
"Olá Zé! 🎂..."
em vez de: "Olá José Manuel Ferreira da Silva! 🎂..."
Como funcionam o sorteio de mensagens e o delay de digitação?
Sorteio Aleatório
Quando há múltiplos templates, o sistema escolhe um aleatoriamente. O mesmo contato receberá uma mensagem diferente a cada aniversário.
Delay de Digitação
Antes de enviar, ativa o indicador "a escrever..." e aguarda um tempo proporcional ao comprimento da mensagem — como se fosses tu a escrever.
Seção 8
Operações em Lote e Indicadores
O painel inicial: aniversariantes, sem grupo e convites
Quando nenhum contato está selecionado, o TrueContact mostra o painel do dia, com três cards:
- Aniversariantes de Hoje — quem faz aniversário hoje, com o botão de parabéns direto no card
- Sem Grupo — contatos ainda não classificados; o botão Grupo atribui um grupo ali mesmo, com os usados recentemente no topo da lista
- Convite Pendente — contatos com perfil do LinkedIn mas sem data de conexão, ou seja, convites que provavelmente ainda não foram aceitos
Excluir e fazer merge de vários contatos de uma vez
Na lista lateral, o ícone de seleção múltipla no topo permite marcar vários contatos ao mesmo tempo. Com eles marcados você pode:
- Excluir selecionados — os contatos vão para a lixeira e a remoção é enfileirada para o iCloud e o Google
- Fazer merge — abre a tela de merge já com os contatos escolhidos
Lixeira: recuperar contatos excluídos
Contatos excluídos não somem na hora — vão para a Lixeira, no ícone de lixo do cabeçalho.
A Lixeira tem o mesmo formato da tela principal: lista à esquerda, dados completos à direita. A diferença é que tudo fica em modo de leitura — não dá para editar campos, enviar mensagens nem enriquecer o perfil enquanto o contato estiver ali.
Para trazer alguém de volta, abra a Lixeira, localize o contato e clique em Restaurar. Ele volta à listagem principal e é reenfileirado para sincronização com todos os provedores conectados.
Contatos que sumiram por causa de um merge aparecem com a marcação "fundido em [nome]", indicando onde os dados foram consolidados.
O que significam os badges no cabeçalho?
Os badges coloridos no cabeçalho indicam contatos aguardando processamento:
- LinkedIn — contatos na fila de enriquecimento do LinkedIn
- Facebook — contatos na fila de enriquecimento do Facebook
- WhatsApp — números aguardando verificação
- Google — contatos aguardando sincronização com o Google Contacts
- Apple — contatos aguardando sincronização com o iCloud
Quando há itens em fila, o ícone pulsa. Os badges desaparecem quando a fila termina.
O que mostram os ícones de origem junto a cada campo?
Cada campo na ficha do contato e na tela de merge exibe um pequeno ícone colorido à direita do valor, indicando de onde aquela informação veio:
- Apple (cinza) — campo importado ou sincronizado via iCloud
- Google (azul) — campo importado ou sincronizado via Google Contacts
- LinkedIn (azul escuro) — campo extraído automaticamente do perfil do LinkedIn
- Facebook (azul) — campo extraído automaticamente do perfil do Facebook
- WhatsApp (verde) — campo importado do perfil ou da conta comercial via WhatsApp
- Lápis (âmbar) — campo editado manualmente
- Merge (violeta) — campo resultado de uma fusão de contatos
Passe o mouse sobre o ícone para ver o nome completo da fonte. Na tela de merge, esses ícones ajudam a decidir qual versão de cada campo preservar.
O que faz o botão Reprocessar perfis nas Configurações?
Em Configurações → Agendamento, o botão Reprocessar perfis não enriquecidos faz três coisas em sequência:
- Zera a data de última verificação de todos os perfis do LinkedIn e Facebook que ainda não estão na fila de trabalho
- Zera a verificação de WhatsApp de todos os telefones nas mesmas condições
- Re-enfileira imediatamente tudo para o próximo ciclo do agendador
É útil quando você instala o TrueContact num computador novo, conecta o LinkedIn, o Facebook ou o WhatsApp e quer que o enriquecimento comece já — sem esperar o ciclo anual de rotação. Também serve para forçar uma segunda rodada de enriquecimento após uma sessão desconectada por muito tempo.
Seção 9
Histórico e Reversão
O que o histórico de um contato mostra?
Todo contato tem uma aba de Histórico que registra tudo o que aconteceu com ele: sincronizações, enriquecimentos, edições manuais, merges, limpezas automáticas e mensagens enviadas pelo WhatsApp.
Cada entrada mostra:
- Quando aconteceu, com data e hora
- De onde veio — ícone da fonte: Apple, Google, LinkedIn, Facebook, WhatsApp, edição manual, merge ou limpeza automática
- O que mudou — campos acrescentados em verde, removidos em vermelho e alterados com o valor antes e depois
Entradas que não alteraram nada — uma sincronização que apenas confirmou o que já existia — ficam recolhidas por padrão. Um botão no topo da aba exibe todas.
Como reverter um contato para um estado anterior?
Se um radar sobrescreveu algo que não devia, você não precisa reconstruir o contato à mão:
- Abra o contato e vá à aba Histórico
- Encontre a entrada imediatamente anterior ao problema
- Clique em Reverter para este estado e confirme
O contato volta exatamente àquele estado — inclusive campos que tinham sido acrescentados depois são removidos, não apenas os que tinham sido perdidos. A reversão é propagada para o iCloud e o Google como qualquer outra alteração.
Como desfazer um merge?
Merges têm um botão próprio: Desfazer merge. Além de devolver o contato vencedor ao estado anterior, ele restaura os contatos que tinham sido absorvidos, com os grupos e relacionamentos que existiam na época.
Isso vale tanto para merges manuais quanto para os feitos automaticamente pelo auto-merge.
Por quanto tempo o histórico é mantido?
A interface mostra sempre os últimos 30 estados de cada contato.
No banco de dados, registros com mais de 30 dias são apagados numa limpeza automática que roda todas as madrugadas, às 03:30. Confirmações de envio, que não servem para desfazer nada, são apagadas após 2 dias. O espaço é devolvido ao sistema imediatamente.
Numa base ativa o histórico cresce cerca de 30 MB por dia, porque cada estado guarda também a foto do contato — por isso a limpeza existe.
Seção 10
Atualizações
Como funciona a atualização automática?
O TrueContact usa um sistema de atualização OTA (Over-The-Air) — silencioso, automático e seguro. Você não precisa fazer nada.
- 1Quando a app inicia, verifica discretamente se existe uma versão mais recente
- 2Se encontrar uma versão nova, baixa em segundo plano sem interromper o seu trabalho
- 3Uma notificação discreta pergunta se queres instalar agora ou na próxima abertura
- 4A atualização é instalada e a app reinicia automaticamente
As atualizações são seguras?
Sim. Cada arquivo de atualização é assinado criptograficamente antes de ser publicado. O TrueContact verifica esta assinatura antes de instalar qualquer atualização — se a assinatura não corresponder, a atualização é rejeitada automaticamente. Isto protege-te contra arquivos corrompidos ou adulterados.
osnipassos/truecontact-releases. O código-fonte nunca é publicado nesse repositório — apenas os binários compilados e assinados.Podes sempre ver a versão instalada em Configurações → Sobre o TrueContact, no fundo da página.
Não encontrou resposta?
Abra uma issue no GitHub e responderemos assim que possível.
Abrir Issue no GitHub