Submit a ticket

SMS Throttling

This article will explain how sending sms works and how to plan your broadcasts properly.

Sending takes time. The broadcast won't reach all of your contacts immediately.

The timeline mainly depends on Twilio and carriers. By default, you may expect that your broadcast will be sent out at ~ 1 segment per second.

Let's start with a few terms to better understand the nuances and pitfalls behind the process of sending messages.

  1. Please pay attention to the "segment" term. The segment is about 160 symbols, but adding emojis changes this threshold to 1, 2 or more segments. Here are the example of 1-segment message and 2-segment message (more about segments here and useful segment calculator).

1-segment message 
What a perfectly crafted message! You're lucky to read this message!

2-segment message 
What a perfectly crafted message! You are lucky to read this message! ??✅

  1. Also, Twilio has a queue — at any point in time Twilio can store up to 14 400 segments maximum.

In most cases ManyChat accounts don't hit this limit, but for high volume accounts we developed our own limiting mechanism to have more control over SMS traffic from these accounts.

Let's explain the queue mechanism with few examples.

Case 1: What would happen if we only had the Twilio-powered queue?

You have an account with 20 000 contacts. You decide to send 1-segment message to all of your contacts. Your will generate 20 000 segments, while Twilio queue handles only 14 400 segments. That means 5 600 segments probably will not be delivered. I say probably because the exact number of failed messages will vary. While we are loading the Twilio queue, Twilio manages to send some messages out. Regardless of these differences we would expect that some messages will hit the limit and never be delivered.

Case 2: ManyChat-powered throttling and Twilio-powered queue: what we have now.

ManyChat has designed its own mechanism to overcome the unpredictable results for mass broadcasts of the Twilio-only queue.

ManyChat throttles 100 segments per 100 seconds for broadcasts, but the speed inside this 100-second window may vary. ManyChat can send out 10 segments per second or 1 segment per second, but never exceeds 100 segments per 100 second.

The timeline for 1000-segments broadcast looks like this:

  1. 0 - 10 seconds: ManyChat sends out 100 segments;
  2. 11-100 seconds: ManyChat postpones the next chunk as the quota (100/100) is reached;
  3. 101-110 seconds: ManyChat reserves a few additional seconds for Twilio to sort out the queue of segments;
  4. 0-110 seconds: Twilio handles the first chunk of 100 segments;
  5. 110-1010 seconds: ManyChat loads the Twilio queue at 1 segment/1 second pace, and Twilio sorts it out at ~ approximately the same rate.
  6. Thus 1000-segments broadcast will be sent out during ~1010 seconds.

What are advantages of this approach?

  1. Messages from automation skip the throttling and go directly to the Twilio queue (because ManyChat only throttles broadcasts).

  2. The quota of 100 segments per 100 seconds helps us to keep the Twilio queue at the level of ~0-10 broadcast segments at every point in time.

These two features combined ensure the best possible experience. Queue length is as short as possible, and conversational (non-broadcast) messages get the Twilio queue directly and your contacts as fast as possible.