Add WABA outreach automation (Z-PRO integration)

Per-product message templates, official/não-oficial channel selection,
manual per-number sending, and a 20-minute internal scheduler for the
existing automatic outreach batch — all pre-existing local work being
committed as-is.
This commit is contained in:
Gustavo
2026-08-03 13:14:09 -03:00
parent 0894ab68b3
commit eaaf7af659
32 changed files with 3522 additions and 342 deletions
+24
View File
@@ -0,0 +1,24 @@
import { loadDotEnv } from '../src/env.mjs';
import { openDb, ensureSeeds } from '../src/db.mjs';
import { runOutreachBatch } from '../src/outreach/run.mjs';
// Dispara um lote manual da automacao de envio WhatsApp (Z-PRO), fora do
// ciclo automatico de 20 min do servidor. Util pra testar ou forcar um lote
// extra sem reiniciar o servidor:
// node scripts/enviar-outreach.mjs (ou npm run outreach)
//
// Respeita as mesmas regras do ciclo automatico (outreach.ativo, horario
// comercial, limite diario) — nao manda nada "escondido" do que a tela
// de Configuracoes mostra.
await loadDotEnv();
const log = (message) => console.log(`[outreach] ${message}`);
const db = openDb();
await ensureSeeds(db, { log });
const resumo = await runOutreachBatch({ db, log });
console.log(JSON.stringify(resumo, null, 2));
db.close();
+2
View File
@@ -2,6 +2,7 @@ import { loadDotEnv, GTI_PORT } from '../src/env.mjs';
import { openDb, ensureSeeds } from '../src/db.mjs';
import { createJobManager, recoverOrphans } from '../src/jobs/manager.mjs';
import { createAppServer } from '../src/server/index.mjs';
import { startOutreachScheduler } from '../src/outreach/scheduler.mjs';
// Servidor local do GTI Maquina Comercial. Inicie com:
// npm start (ou node scripts/servidor.mjs, ou o GTI-Comercial.exe)
@@ -17,6 +18,7 @@ recoverOrphans(db, log);
const jobs = createJobManager();
const server = createAppServer({ db, jobs, log });
startOutreachScheduler({ db, log });
const port = GTI_PORT;
server.listen(port, '127.0.0.1', () => {