DESCRIÇÃO:
Converter script Python que já existe e está anexado nessa demanda para um workflow n8n à prova de falhas.
Não é para me cobrar criação de código ou configuração de ambiente n8n, leia tudo abaixo!
O QUE O Código de hoje já faz:
1 - realiza login em portal web (
casadomedico.stokki.com.br), obtendo e utilizando token CSRF (atualmente via Selenium).
2 - Gera um relatório via chamada api (post) e aguarda/verifica sua disponibilidade (get).
3 - Baixa o relatório gerado (formato a confirmar no processo, provavelmente XLSX).
4 - Valida a integridade/recebimento do arquivo baixado (ex: verifica se não está vazio).
5 - Processa/lê os dados do relatório (script atual assume leitura para envio ao BigQuery).
6 - Envia os dados processados para o Google BigQuery, utilizando o modo WRITE_TRUNCATE (substitui dados existentes).
7 - Confirma o sucesso do envio ao Bigquery (script atual não detalha a confirmação, mas o workflow n8n deve incluir uma verificação pós-upload, se possível).
pontos de atenção:
- risco de falha no login/csrf se cookies e token não forem mantidos entre requisições.
- Requisições e polling sem timeouts, retries/back-off, limite de tentativas ou smoke tests de selectors podem travar ou loopar o workflow.
- Download vazio/corrompido e acúmulo de arquivos temporários podem interromper o processo e estourar o storage.
- Ausência de WRITE_TRUNCATE e falta de monitoramento de quotas no BigQuery podem gerar duplicação de dados ou erros silenciosos de cota.
- Hard-code de credenciais expõe segredos; use só ENV vars ou n8n Credentials.
- Falta de logs claros e notificações de erro/sucesso deixa falhas passarem despercebidas.
- Sem versionamento do workflow e testes em homologação, mudanças no site ou no fluxo podem quebrar tudo sem possibilidade de rollback.
entregáveis:
- workflow n8n finalizado (json), exaustivamente testado, otimizado para performance e confiabilidade, e com notas explicativas nos nós. (Obs: Já tenho meu ambiente n8n, não faz parte do seu trabalho ajustar isso.)
Prazo de Entrega: Não estabelecido