<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1822615684631785&amp;ev=PageView&amp;noscript=1"/>

Understanding the timing of email campaigns

GMass times the sending of your campaigns based on both your Gmail account’s limits and the max emails per day that you designate for your campaign. You can also send beyond your Gmail account’s limits by connecting your GMass account to a third-party SMTP service like SendGrid. Even when sending natively through Gmail, and not using the SMTP option, you can send large campaigns, and GMass will distribute your campaigns over consecutive days. For example, if you’re a G Suite user with an account limit of 2,000 emails/day, you can schedule a campaign to 5,000 people, and GMass will send 2,000 emails the first day, 2,000 emails the second day, and 1,000 emails on the third day.

The timing of the various options introduces certain complexities which we’ll explain here.

Two important definitions

For clarity, let’s specify the meaning of a couple terms I’ll use throughout this article. Distributed campaigns are large campaigns that take multiple days to send because of your limits. For example, sending a campaign to 10,000 people, where the campaign is distributed at 2,000 emails/day is a distributed campaign. In contrast, a daily recurring campaign is a campaign that is connected to a spreadsheet, and the campaign checks the spreadsheet for new rows of email addresses daily, and if found, sends the campaign to those new addresses. Depending on how many addresses are being added per day, a daily recurring campaign can also be a distributed campaign.

Sending a distributed campaign through Gmail

If you set your campaign’s daily limit to <= 50% of your account’s allowance

Let’s say you schedule 5,000 emails to be sent through your G Suite account for Monday at 9:00 AM.

Assuming you let GMass end the max allowed per day, GMass would send:

  • 2,000 emails at 9:00 AM on Monday. Assume they finish at 9:30 AM.
  • another 2,000 emails on Tuesday at 10:30 AM. Assume they finish at 11:00 AM.
  • and the last 1,000 on Wednesday at 12:00 PM

If, however, GMass runs into limits imposed by Gmail unexpectedly, which often does happen if you’re trying to send the max allowed per day, GMass will wait 4 hours before trying again.

For example, on Monday at 9AM, when the first batch of 2,000 sends, if Gmail starts bouncing your email with “you have reached a limit” after just 1,500 emails, and those bounces start happening at 10:30 AM on Monday, then GMass will wait for 4 hours before attempting to resume your campaign, knowing that your account still has quota left in its daily sending ability. It will try every 4 hours to get that day’s emails out.

Now let’s say your account does NOT start bouncing your emails unexpectedly, which is what we, of course, hope for. Now, if you let GMass send your account’s full limits (the full 2,000), then the next batch will send 25 hours from the campaign end time. Sticking to the above example, if 2,000 emails send Monday at 9:00 AM and ends Monday at 10:30 AM, then the next batch of 2,000 won’t send until 25 hours later, which is Tuesday at 11:30 AM.

Why do we push it 25 hours instead of 24?

Because we’ve found that when using up Gmail’s daily limits, it’s better to use a buffer of 25 hours than 24 to get your full limits again.

Why do we advance 25 hours from the campaign end time rather than the campaign start time?

We do this in order to respect Gmail’s sending limits. If your batch of 2,000 started sending at Monday at 9:00 AM and finished at 10:30 AM, and then we started the next batch of 2,000 on Tuesday at 9:00 AM, then Gmail would calculate that you’ve sent 2,000 emails in the last 24 hours and would likely stop you from sending any more. That’s why it’s important to use the campaign end time as the basis for when to send the next batch, when you’re sending your max limits.

If you set your campaign’s daily limit to > 50% of your account’s allowance

If, however, you’ve set a campaign daily limit that is under your max allowed Gmail account limits, then different rules apply based on how much your campaign daily limit is under your account’s daily limits. If your campaign daily limit is less than 50% of your account’s max daily limits, then  GMass would advance the next batch 24 hours after the campaign START time. Otherwise, GMass will advance the next batch 24 hours after the campaign END time.

For example, if you’ve set your campaign of 5,000 to send 200 emails/day, starting at Monday at 9:00 AM.

  • The first 200 would send Monday at 9:00 AM, and let’s say it finished at 9:30 AM.
  • The next batch of 200 would send Tuesday at 9:00 AM. (The end time of the first batch is irrelevant.)

In contrast, let’s say you’ve set your campaign of 5,000 to send 1,200 emails/day, starting at Monday at 9:00 AM.

  • The first 1,200 would send Monday at 9:00 AM, and let’s say it finished at 10:00 AM.
  • The next batch of 1,200 would send Tuesday at 10:00 AM. (24 hours from the prior batch’s end time)

In the latter scenario, it’s based on 24 hours after the campaign end time, not the campaign start time, because if we attempted to send the next batch Tuesday at 9:00 AM, GMass would examine your campaign and find that 1,200 emails have already been sent in the last 24 hours and would therefore NOT send any emails (actually it would send just one).

In the first scenario where your campaign’s daily limit is already less than half of your account’s daily limits, we assume the user values consistency of daily timing above all else, and we also assume that the second and subsequent batches won’t violate Gmail’s limits, even though they will technically violate the campaign’s daily limits from a strictly 24-hour standpoint. Meaning, in the first example, the second batch of 200 would send even though in the last 24 hours prior to Tuesday at 9:00 AM, 200 emails have “already” been sent. The algorithm checks the prior batch’s start time, and if it’s approximately 24 hours before the current batch’s start time, and the <= 50% rules applies, then GMass assumes that 0 emails have been sent for the campaign in the last 24 hours, which is what allows the full 200 emails to be sent “now”.

This mechanism also protects you from sending out more emails than desired if the campaign errors out due to a temporary Gmail API issue and is retried an hour later, or if you, the user, manually adjusts the campaign send time. For example, let’s say you have a big campaign set to send 200 emails/day at 9:00 AM daily. For the first 3 days, a batch of 200 emails will be sent daily starting at 9:00 AM. On day 3, after that day’s batch has sent, you adjust the time of the campaign to send next at 6:00 PM on that day. At 6:00 PM, no emails will be sent, because GMass will calculate that 200 emails have already been sent in the prior 24 hours for the campaign and that the prior batch’s start time wasn’t 24 hours ago. At 6:00 PM on the following day, however, a full batch of 200 emails will be sent.

Daily recurring campaigns

If you have a daily recurring campaign set that’s connected to a spreadsheet, then the timing is different. If your campaign sends to all the new rows in the spreadsheet and you don’t specify a daily limit, and the campaign doesn’t run into Gmail bounces, then the next batch will send 24 hours from the campaign start time, so that every day the campaign sends to new emails at a consistent time.

For example, let’s say your daily recurring campaign is connected to a spreadsheet called “My Contacts”. Your G Suite account allows 2,000 emails/day, and every day, no more than 100 rows are added to the spreadsheet.

  • The first batch sends Monday at 9:00 AM to 50 people.
  • Later that day, 150 rows are added to the sheet.
  • The next batch sends Tuesday at 9:00 AM.
  • Later that day, 100 rows are added.
  • The next batch sends Wednesday at 9:00 AM.
  • Later that day 2,500 rows are added. On Wednesday at 9:00 AM, the 2,000 emails start sending, since GMass will respect your account’s limits. That batch of 2,000 finishes on Wednesday at 10:30 AM.
  • The next batch will send 25 hours from Wednesday at 10:30 AM, so Thursday at 11:30 AM.

Now let’s say that when those 2,500 rows were added, you modified your campaign to send only 1,000 emails/day max. On Wednesday at 9:00 AM, those 1,000 emails send and finish at 9:45 AM, and now the next batch of 1,000 won’t send until Thursday at 9:45 AM. If we sent it on Thursday at 9:00 AM, then GMass would analyze the last 24 hours and see that you’ve already sent 1,000 emails for that campaign in the last 24 hours and wouldn’t send any new emails.


Here are the rules:

  1. If GMass runs into your daily account limits, where Gmail isn’t bouncing the emails, GMass will send the next batch 25 hours from the batch end time.
  2. If GMass runs into a daily limit that you’ve set for your campaign, where Gmail isn’t bouncing the emails, GMass will send the next batch either 24 hours from the batch start time or batch end time, based on whether your campaign limits is less than or greater than 50% of your account’s daily limits.
  3. If GMass detects that your account is bouncing emails, it will pause and re-attempt sending 4 hours later.
  4. If you’re sending a daily recurring campaign, and GMass doesn’t run into any limits, including your max account limits or a daily limit you’ve set, then each batch will send at the same time every day. If GMass runs into either your account’s daily limit or a limit you’ve set for sending, then rules 1 and 2 apply.
  5. Additionally, if you’re using the Skip Weekends setting, then the same logic applies, except the next batch would advance to the next day that isn’t a weekend.
  6. Additionally, if you’re using the Long Delay Between Emails setting, then that can make the batch ending time much greater than the start time. Your 200 email batch starting Monday at 9:00 AM may not end until Monday at 12:00 PM, and so if you’ve set your daily sending limit to be 200, the next batch wouldn’t then send until Tuesday at 12:00 PM.

Best Practices

All these rules can be confusing. But we’ve implemented the logic in a way that we think makes the most sense, doesn’t break Gmail’s rules while still getting your emails out as quickly as possible.

  1. If it’s important that each daily batch of emails is sent at the same time daily, then make sure your campaign’s max limit is set to less than 50% of your account’s daily limits. So, if you’re using an @gmail.com account, set your campaign limits to 225/day or less. If you’re using a G Suite account, set your campaign limits to 950/day or less.
  2. If setting up a daily recurring campaign connected to a spreadsheet, don’t add more rows to your spreadsheet daily than you want sent daily. Also, make sure if you set a daily limit, that this number is higher than the number of new rows you add daily.
  3. Pay attention to the explanation of how many emails were sent and why, at the bottom of campaign email notifications you receive whenever a batch finishes sending.
  1. please help me. i asked several time. But i did not get any reply from you.

    I set up the custom date like 03:00PM +09:00

    But every day, the custom date and time is changed to ??:?? +00:00

    Please help me.

    1. Hi Jeff,

      Please set up your custom date with your timezone difference right before you’re ready to schedule or send your campaign. When you click the GMass button, it will do 1 of 2 things, the first is to save the custom fields you’ve inputted such as follow-ups as well as the custom time and the second, is GMass will schedule your email campaigns to go out using those values,


    1. Hi Kevin,

      You can change this setting by opening the campaign’s draft. Open the GMass settings and under “Schedule”, you can change the maximum number of emails you want GMass to send per day.

  3. Hi, I got an error that says This campaign has reached the maximum number of processing times (30),so you must click the link in the email you received to keep this campaign sending.

    I don’t know what email should I click the link to keep sending again. I received responses from the previously sent email auto-follow ups but where do I need to click the link? What link is it pertaining to?

    My campaign stops sending emails. Please help.


    1. Hi Andrew,

      Yes, if you want to keep running that same campaign, go ahead and click that link. The reason for this is we’ve added a failsafe for GMass campaigns so they don’t continue running indefinitely. So after 30 batches, we send you a notification to check in with you if you want to keep the campaign running. You can search your mailbox for “has processed 30 times, click link to keep sending” and it should show you the campaign where you will need to click the link to requeue your campaign.

  4. Someone please tell me what the purpose of GMass is if Google is going to suspend our account for sending too many emails in a day?

  5. Hi Marvin,
    We have a team account and I can only find the “click link to keep sending” email in 2 of the 5 gmail accounts.
    How can I reactivate those accounts?

  6. Hello,

    I schedule a campaign for 45 emails and one follow up. The original email and the follow up have been sent, but I still have drafts of those campaigns in the “Gmass Scheduled” and “Gmass Auto-follow up” folders as well as the regular “Draft” folder. Will these email drafts not be auto deleted when a campaign is complete? Do I have to manually delete those drafts, or, do they auto-delete but my campaign has not finished? Please advise.



  7. I have been using GMass for over 1.5 years. Just yesterday I was attempting to schedule an email to go out 11 months from now but was not able to schedule beyond a few months (August). Is this a built in limitation? Is there a workaround to this limitation?

  8. I’d like to send a Gmass email 3 days AFTER an email is added to my google spreadsheet (from Facebook Lead Ad) – Is this possible?

Leave a Reply

Your email address will not be published. Required fields are marked *

Try GMass today

It only takes 30 seconds to install it!

Install Now GMass requires Chrome


Share This