Stress-Testing a 35,000-Contact Nonprofit Email Automation

A nonprofit stress-tested its GoFundMe Pro, Zapier, and Mailchimp automation before 35,000 contacts. See the 6 fixes the pre-launch audit uncovered.

Sep 17, 2026
Stress-Testing a 35,000-Contact Nonprofit Email Automation
A ~50-person disease-awareness nonprofit had a fully built event email automation system — and a hard production launch date. What it didn't have was an outside set of eyes before 35,000 contacts received their first campaign.
Photo by Stephen Phillips on Unsplash
Photo by Stephen Phillips on Unsplash

The Situation: Email Automation for a Nonprofit at Scale

The organization runs multiple recurring campaigns: monthly meetups, support group meetups, branch recruitment emails, and major fundraising walk/cycle events. Their technical lead had spent months building a custom automation stack connecting GoFundMe Pro, Zapier, AWS Lambda, and Mailchimp. The system was sophisticated — Python scripts running behind an API Gateway, secrets stored in AWS Secrets Manager, contact batching logic to respect Mailchimp rate limits — but it had never touched a production audience.
The launch deadline was June 1st. With 35,000 contacts on the line, one misconfigured IAM policy, one runaway API call, or one unhandled rate-limit error could trigger a deliverability incident that takes months to recover from.

The Problem

The team had built something real. The risk wasn't that the automation didn't work — it had run successfully against a 4-person test audience. The risk was that it hadn't been stress-tested at scale, and the code hadn't been reviewed by anyone outside the organization.
Specific concerns heading into the review:
  • API key exposure — secrets were still embedded in the codebase rather than centrally managed
  • MailChimp rate-limit handling — no queuing mechanism to prevent concurrent Zapier triggers from hammering the API simultaneously
  • IAM permissions — overly broad or misconfigured, limiting visibility and auditability
  • No monitoring — no alerting if the API Gateway failed or a Lambda function exited on a rate limit

What They'd Already Tried

Everything on this list was already in place before bringing in outside help: AWS Lambda functions, Zapier webhook triggers from GoFundMe Pro, MailChimp audience segmentation by event tags, Python-based batching logic, and a test run against a small internal audience. The gap wasn't technical ability — it was the lack of a structured pre-launch audit with someone who'd seen these failure modes before.

What We Reviewed

A Connex consultant worked directly with the organization's technical lead in a structured production-readiness session. The review covered the full architecture end to end:
  • Security: Confirmed the move of API keys into AWS Secrets Manager and recommended IP whitelisting Zapier's IP range on the API Gateway endpoint for an additional layer
  • Rate-limit strategy: Reviewed the existing 5,000-contact batching with 8-thread pooling and 0.1-second inter-call delays — confirmed the approach was sound, then added Zapier's "Delay by Queue" feature to prevent concurrent triggers from colliding when multiple event types fire simultaneously
  • Error handling: Confirmed retry logic on 429 and 500 responses; flagged the absence of monitoring for cases where the script exits on rate-limit failure with no alert
  • IAM: Identified a misconfigured permissions JSON and corrected the policy to give the consultant auditable access without over-permissioning
  • Monitoring: Recommended CloudWatch timestamp tracking for last-successful-batch events, plus a simple dashboard for the non-technical leadership team
  • Operational hygiene: Naming conventions for Zaps (ON/OFF prefixes, versioning), folder structure in Zapier, Git repository setup with proper .gitignore for secrets
For the geolocation-driven walk/cycle campaigns (which target contacts within 50 miles of an event address), the consultant validated the zip-code segmentation approach against the MailChimp audience structure and confirmed it would hold at the ESG campaign scale of approximately 34,000 contacts.

The Result

The system launched on schedule. The pre-launch audit surfaced six actionable fixes — including the IAM misconfiguration and the missing concurrency control — that would have been difficult or impossible to diagnose mid-campaign with 35,000 contacts in flight.
More practically: the technical lead left the session with a clear production checklist, not just a vague "looks good." The Zapier delay queues were implemented, the secrets were secured, and the monitoring gaps were documented for the follow-up sprint. The organization's CMO had confidence in the system before the first real email sent.
The campaign went live June 1st as planned.

Frequently Asked Questions

We already have a developer who built our automation. Why bring in an outside reviewer?

The same reason you have a second set of eyes on a contract before signing. Your developer knows the intent — they built to a spec. An outside reviewer knows the failure modes: what breaks at scale, what MailChimp's API actually does under load, what an IAM misconfiguration looks like from the outside. One session often surfaces the two or three things that would have required emergency debugging mid-campaign.

Does a review require handing over AWS credentials?

No. The review was conducted with read-level IAM access — enough to inspect function configurations, review code logic, and trace the data flow. No write access to production resources was required, and secrets management was part of what was reviewed, not a prerequisite for it.

How long does a pre-launch audit take?

For a system of this complexity — multiple Lambda functions, Zapier workflows, a segmented MailChimp audience, and geolocation logic — one focused hour covered the full architecture review and produced a clear action list. More complex systems with multiple event types or custom API integrations may need a second session, but the goal is always a concrete checklist, not an open-ended engagement.

What if we want to migrate off MailChimp later?

The architecture review specifically noted that the Python scripts and AWS infrastructure are platform-agnostic — the MailChimp integration is one layer. The team flagged a future CRM migration as a consideration and structured the Lambda functions with that flexibility in mind. The automation logic travels; the ESP doesn't.

Get help with your pre-launch audit

If you're building or inheriting an automation system and need someone to pressure-test it before a production launch — not rebuild it from scratch, just review it with experienced eyes — that's exactly what a ZoomFlow session is designed for. One of our consultants will work through your full architecture live and hand you a concrete action list before the call ends.
Book a session at connex.digital/book/website.