Este projeto automatiza o registro de investimentos em Fundos Imobiliários (FIIs) recebidos por e-mail da corretora XP Investimentos, integrando Gmail, Google Pub/Sub e Notion para atualizar automaticamente uma base de dados e gráficos no Notion.
Sempre que você investe em um FII, a XP envia um e-mail de confirmação (Notas de Negociação). Este sistema:
- Recebe o e-mail da XP via integração com o Gmail.
- Dispara um webhook usando o Google Pub/Sub.
- Processa o conteúdo do e-mail para identificar o CPF e o valor do investimento.
- Registra a operação em uma tabela de um banco de dados do Notion.
- Atualiza automaticamente gráficos no Notion com base nos dados registrados.
-
Gmail Watch:
O sistema utiliza a API do Gmail para monitorar a chegada de novos e-mails da XP. -
Google Pub/Sub:
Quando um e-mail relevante chega, o Gmail envia uma notificação para um tópico Pub/Sub, que aciona o webhook do sistema. -
Processamento:
A rota /webhook/gmail da api processa o e-mail, extrai o CPF e o valor do investimento. -
Notion:
Os dados extraídos são salvos em uma tabela do Notion, que alimenta gráficos e dashboards automaticamente.
- Node.js (TypeScript)
- Express (API/servidor)
- Google Gmail API (monitoramento de e-mails)
- Google Pub/Sub (webhook e notificações)
- Notion API (registro e atualização de dados)
- Zod (validação de variáveis de ambiente)
-
Inicialização do servidor
- O servidor Express é iniciado.
- O Pub/Sub é configurado automaticamente caso necessário para receber notificações do Gmail.
- O sistema se inscreve para receber notificações de novos e-mails.
-
Recebimento de e-mail
- Ao receber um e-mail da XP, o Gmail envia uma notificação para o Pub/Sub.
- O webhook do sistema é chamado automaticamente.
-
Processamento e registro
- O conteúdo do e-mail é analisado.
- O valor do investimento é extraídos.
- Os dados são salvos no banco de dados do Notion.
-
Configure as variáveis de ambiente (veja
.env.example
). -
Instale as dependências:
npm install
-
Inicie o servidor:
npm start
-
(Opcional) Desative notificações do Gmail:
npm run unsubscribe:gmail
Observações
- Certifique-se de ter as credenciais corretas do Google e Notion.
- O banco de dados do Notion deve estar configurado para aceitar as atualizações.
- O sistema depende do correto funcionamento do Pub/Sub e permissões de API.