Pular para conteúdo

Gmail Nodes - Documentação Completa

📧 Visão Geral

Esta pasta contém a documentação completa de 16 tools do Gmail Executor para o Lumina Flow Builder. Essas ferramentas permitem automação completa de email através da API do Gmail usando autenticação OAuth2.

🔑 Configuração OAuth2

Todas as tools Gmail requerem credenciais OAuth2:

{
  clientId: "YOUR_CLIENT_ID.apps.googleusercontent.com",
  clientSecret: "YOUR_CLIENT_SECRET",
  refreshToken: "YOUR_REFRESH_TOKEN"
}

Como obter: 1. Google Cloud Console 2. Criar projeto > APIs e Serviços > Credenciais 3. Criar credenciais > ID do cliente OAuth 2.0 4. Usar OAuth Playground para obter refresh_token

📚 Tools Documentadas

✅ Envio de Emails (3 tools)

Tool Status Descrição
send_email Implementada Enviar email texto simples
send_html_email Implementada Enviar email com HTML formatado
send_with_attachment Implementada Enviar email com anexos (PDF, imagens, etc)

✅ Resposta e Encaminhamento (2 tools)

Tool Status Descrição
reply_to_email Implementada Responder email mantendo thread
forward_email Implementada Encaminhar email para outros destinatários

✅ Busca e Leitura (3 tools)

Tool Status Descrição
get_emails Implementada Listar emails da caixa de entrada
get_email_by_id Implementada Buscar email específico por ID
search_emails Implementada Busca avançada com queries Gmail

⚠️ Gerenciamento de Status (2 tools - NÃO IMPLEMENTADAS)

Tool Status Descrição
mark_as_read ⚠️ Não Implementada Marcar email como lido
mark_as_unread ⚠️ Não Implementada Marcar email como não lido

✅ Exclusão (1 tool)

Tool Status Descrição
delete_email Implementada Deletar email permanentemente

⚠️ Organização (3 tools - NÃO IMPLEMENTADAS)

Tool Status Descrição
trash_email ⚠️ Não Implementada Mover para lixeira (recuperável)
archive_email ⚠️ Não Implementada Arquivar email (remove da inbox)

⚠️ Labels (2 tools - NÃO IMPLEMENTADAS)

Tool Status Descrição
add_label ⚠️ Não Implementada Adicionar label/etiqueta ao email
remove_label ⚠️ Não Implementada Remover label/etiqueta do email

⚠️ Rascunhos (1 tool - NÃO IMPLEMENTADA)

Tool Status Descrição
create_draft ⚠️ Não Implementada Criar rascunho para revisão

📊 Status da Implementação

✅ Implementadas: 9/16 (56%)
⚠️ Não Implementadas: 7/16 (44%)

Tools Implementadas no Código

O arquivo /home/zielinski/develop/gptapi/src/whatsapp-flows/executors/gmail-executor.service.ts atualmente implementa:

  1. send - Envio de emails (texto, HTML, com anexos)
  2. get - Buscar email específico por ID
  3. getAll - Listar/buscar múltiplos emails
  4. delete - Deletar email permanentemente
  5. reply - Responder email mantendo thread
  6. forward - Encaminhar email

Tools Que Precisam Implementação

Para completar as 16 tools, implementar:

  1. ⚠️ mark_as_read - Modificar email removendo UNREAD label
  2. ⚠️ mark_as_unread - Modificar email adicionando UNREAD label
  3. ⚠️ trash - Mover email para lixeira
  4. ⚠️ archive - Arquivar email (remover INBOX label)
  5. ⚠️ add_label - Adicionar label customizada
  6. ⚠️ remove_label - Remover label customizada
  7. ⚠️ create_draft - Criar rascunho

🚀 Exemplos Rápidos

Enviar Email Simples

{
  "type": "gmail",
  "operation": "send",
  "oauth2": { "clientId": "...", "clientSecret": "...", "refreshToken": "..." },
  "to": "destinatario@example.com",
  "subject": "Assunto",
  "message": "Corpo do email"
}

Buscar Emails Não Lidos

{
  "type": "gmail",
  "operation": "getAll",
  "oauth2": { "clientId": "...", "clientSecret": "...", "refreshToken": "..." },
  "query": "is:unread",
  "maxResults": 10
}

Responder Email

{
  "type": "gmail",
  "operation": "reply",
  "oauth2": { "clientId": "...", "clientSecret": "...", "refreshToken": "..." },
  "messageId": "18f2b9c4d5e6a7f8",
  "replyMessage": "Obrigado pela mensagem!"
}

📖 Documentação de Referência

Cada tool possui documentação completa incluindo:

  • ✅ O que é e por que existe
  • ✅ Como funciona internamente (código TypeScript)
  • ✅ Quando usar e quando NÃO usar
  • ✅ Parâmetros detalhados com flows testáveis
  • ✅ Exemplos práticos com JSON completo
  • ✅ Resposta esperada do node
  • ✅ Boas práticas e dicas

💡 Dicas Gerais

  1. Teste OAuth2 primeiro: Use testConnection() antes de enviar emails
  2. Respeite limites: Gmail tem quotas de API (verifique no Console)
  3. Use queries específicas: Filtrar no servidor é mais eficiente
  4. Armazene tokens com segurança: refreshToken nunca expira se bem mantido
  5. Erros 401: Indicam problema de autenticação OAuth2

🆘 Troubleshooting

Erro "invalid_grant"

  • refreshToken expirado ou revogado
  • Reautenticar via OAuth Playground

Erro 401 "Authentication failed"

  • clientId ou clientSecret incorretos
  • Verificar credenciais no Google Cloud Console

Erro 403 "Rate limit exceeded"

  • Muitas requisições em curto período
  • Implementar backoff exponencial

Email não enviado

  • Verificar se conta Gmail está ativa
  • Conferir se API Gmail está habilitada no projeto

📝 Contribuindo

Para adicionar nova funcionalidade:

  1. Implementar método no gmail-executor.service.ts
  2. Adicionar case no switch do execute()
  3. Atualizar validate() e getSupportedOperations()
  4. Criar documentação seguindo padrão dos arquivos existentes
  5. Atualizar este README

Criado em: 12 de Outubro de 2025 Última atualização: 12 de Outubro de 2025 Status: 9/16 tools implementadas, 7/16 documentadas mas pendentes de implementação