Case studies · Marketing automation

Luny — a campaign that never stops sending

Email sending infrastructure for an Australian cashback platform — seven mailboxes rotated automatically on a rolling 24-hour limit, so a campaign fills one account, moves to the next and never pauses.

Luny sending rotation — seven mailboxes on a rolling 24-hour limit
12,600Emails a day across the pool
7Sending accounts in rotation
24hRolling window, not a midnight reset
0Sends lost to a full mailbox
Client
Luny
Sector
Marketing automation
Services
AI automation · Web development
Duration
[e.g. 6 weeks]

The problem

Where it started.

Every mailbox has a daily sending limit, and a campaign that hits it stops. The usual answers are both bad: send under the limit and the campaign takes a week, or send over it and the provider throttles you — which costs deliverability long after the campaign is finished.

The other trap is the reset. Most limits are described as daily, so teams assume capacity returns at midnight and queue everything for 00:01, which is exactly the pattern that looks like a spam run. Real limits move on a rolling window, and the sender has to move with them.

The work

What we built.

Rotation without a pause

The worker fills the first account to its daily limit, then moves to the next by priority. The campaign does not stop, retry, or need a human to notice.

A rolling 24-hour window

Capacity comes back gradually through the day rather than all at midnight, so sending stays even and never spikes into a pattern a provider will flag.

Priority, not round robin

Lower number goes first, so the accounts you would rather send from get used before the ones held in reserve.

Health on every account

Sent in the last 24 hours, sent over 30 days, failures over 30 days and when it was last used — per mailbox, on one screen, before anything goes wrong.

Test before you trust

A single test send per account, so a new mailbox is proven from the dashboard rather than discovered mid-campaign.

Add, disable, retire

Accounts are added, paused or removed without touching the campaign running through them.

Process

How we ran it.

  1. 01

    Measure the real ceiling

    What each mailbox will actually take before a provider throttles it.

  2. 02

    Model the window

    The rolling limit first, because reset behavior is what breaks naive senders.

  3. 03

    Build the worker

    Rotation, priority and failover, with the campaign never aware of the switch.

  4. 04

    Make it visible

    A dashboard the team reads at a glance instead of a log they have to grep.

Outcome

What changed.

7,208Sent in a single 24-hour window
0Failures in 30 days, across every account
12,600Daily ceiling the pool now carries

[Add a quote from Luny — ideally about campaigns no longer stalling on a full mailbox.]

[Name, role, Luny]

Stack

Built with.

  • Queue worker
  • Rolling rate limits
  • SMTP
  • Cron scheduling
  • Deliverability monitoring

Got a problem
shaped like this one?

Thirty minutes on your process. We'll tell you what we'd build first and what we'd leave alone.

Book the call

Or email hello@devjunction.co