Operations and Limits
GitHub Actions, secrets, deployment, and external constraints.
GitHub Actions
MailPulse uses GitHub Actions for scheduled jobs. Vercel Cron is not used.
Filon Recovery runs with:
3,13,23,33,43,53 * * * *Scheduled campaigns run through the send-scheduled.yml workflow.
GitHub secrets
Required secrets are:
MAILPULSE_APP_URLfor Filon Recovery.APP_URLor the equivalent URL depending on the campaign workflow.CRON_SECRET, identical to the application environment variable.
Managed MailPulse variables
MAILPULSE_MANAGED_FROM_EMAILenables the platform email fallback.MAILPULSE_MANAGED_WHATSAPP_ENABLEDenables the platform WhatsApp resource.MAILPULSE_MANAGED_WHATSAPP_MODEdeclares the managed mode.
External limits
GitHub Actions can run late. Runners must stay idempotent and accept delayed executions.
Resend requires properly verified domains for good deliverability. Webhooks depend on Svix signatures.
Meta WhatsApp Cloud API requires WABA, phone number, token, and approved templates outside the 24-hour window.
Baileys and Evolution API rely on WhatsApp Web. It is convenient, but unofficial, fragile, and risky at volume.
MailPulse resources help when users do not yet have a domain or phone number, but remain subject to platform limits.
Shared WhatsApp instances
An Evolution instance can serve both an organization's dashboard and an external application. Before any manual intervention that could disconnect, delete or rename an instance, list the shared ones:
pnpm check:shared-whatsapp-instancesThe script only reads. It exits with code 2 when it finds a shared instance: leave it alone without explicit agreement.

