IP Library Granted Patent US 12665870
Granted Patent B2
US 12665870 · App. 18/814,904 · Granted Jun 23, 2026

Selecting message routing providers for message routing by communication services platform

Inventors: Adam Zika (Prague, CZ); Meelis Aus (Tallinn, EE); Riivo Kikas (Tallinn, EE); Nariman Nazari (Malmö, SE); Ilja Samoilov (Tallinn, EE)
Assignee: Twilio Inc.
H04L51/066H04L45/85H04L45/3065
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12665870
App. No.
18/814,904
Granted
Jun 23, 2026
Kind
B2
Abstract

An example method of selecting message routing providers based on message delivery data reported by multiple customers includes: identifying a plurality of message routing providers serving a specified destination network; receiving message delivery data reflecting message delivery by the plurality of message routing providers to the specified destination network; responsive to determining that a difference between a first number of messages successfully routed by a certain message routing provider in a first period of time and a second number of messages successfully routed by the certain message routing provider in a second period of time exceeds a defined threshold, producing updated message delivery data; identifying, based on the updated message delivery data, one or more message routing providers for routing one or more messages to the destination network; and routing, via the one or more message routing providers, the one or more messages to the specified destination network.

Claims (55)

1 . A method, comprising:

identifying, by a processing device, a plurality of message routing providers serving a specified destination network;

receiving message delivery data reflecting message delivery by the plurality of message routing providers to the specified destination network;

determining that a difference between a first number of messages successfully routed by a certain message routing provider in a first period of time and a second number of messages successfully routed by the certain message routing provider in a second period of time exceeds a defined threshold;

producing updated message delivery data;

identifying, based on the updated message delivery data, one or more message routing providers for routing one or more messages to the specified destination network; and

routing, via the one or more message routing providers, the one or more messages to the specified destination network.

2 . The method of claim 1 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

estimating, based on the updated message delivery data, for each message routing provider of the plurality of message routing providers, a corresponding message conversion rate reflecting a likelihood of successful message delivery by a respective message routing provider to the specified destination network.

3 . The method of claim 1 , wherein producing the updated message delivery data further comprises:

resetting message delivery counters associated with the certain message routing provider.

4 . The method of claim 1 , wherein the second period of time immediately follows the first period of time.

5 . The method of claim 1 , wherein the first period of time is defined by a predefined number of messages routed by a first message routing provider of the plurality of message routing providers.

6 . The method of claim 1 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

determining that the one or more message routing providers satisfy a provider selection criterion specifying a maximum message delivery cost.

7 . The method of claim 1 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

identifying a first message routing provider satisfying a provider selection criterion specifying a maximum message delivery cost; and

identifying a second message routing provider of the plurality of message routing providers.

8 . A system, comprising:

a memory; and

a processing device coupled to the memory, the processing device configured to:

identify a plurality of message routing providers serving a specified destination network;

receive message delivery data reflecting message delivery by the plurality of message routing providers to the specified destination network;

determine that a difference between a first number of messages successfully routed by a certain message routing provider in a first period of time and a second number of messages successfully routed by the certain message routing provider in a second period of time exceeds a defined threshold;

produce updated message delivery data;

identify, based on the updated message delivery data, one or more message routing providers for routing one or more messages to the specified destination network; and

route, via the one or more message routing providers, the one or more messages to the specified destination network.

9 . The system of claim 8 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

estimating, based on the updated message delivery data, for each message routing provider of the plurality of message routing providers, a corresponding message conversion rate reflecting a likelihood of successful message delivery by a respective message routing provider to the specified destination network.

10 . The system of claim 8 , wherein producing the updated message delivery data further comprises:

resetting message delivery counters associated with the certain message routing provider.

11 . The system of claim 8 , wherein the second period of time immediately follows the first period of time.

12 . The system of claim 8 , wherein the first period of time is defined by a predefined number of messages routed by a first message routing provider of the plurality of message routing providers.

13 . The system of claim 8 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

determining that the one or more message routing providers satisfy a provider selection criterion specifying a maximum message delivery cost.

14 . The system of claim 8 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

identifying a first message routing provider satisfying a provider selection criterion specifying a maximum message delivery cost; and

identifying a second message routing provider of the plurality of message routing providers.

15 . A non-transitory computer-readable storage medium comprising executable instructions that, responsive to execution by a processing device, cause the processing device to:

identify a plurality of message routing providers serving a specified destination network;

receive message delivery data reflecting message delivery by the plurality of message routing providers to the specified destination network;

determine that a difference between a first number of messages successfully routed by a certain message routing provider in a first period of time and a second number of messages successfully routed by the certain message routing provider in a second period of time exceeds a defined threshold;

produce updated message delivery data;

identify, based on the updated message delivery data, one or more message routing providers for routing one or more messages to the specified destination network; and

route, via the one or more message routing providers, the one or more messages to the specified destination network.

16 . The non-transitory computer-readable storage medium of claim 15 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

estimating, based on the updated message delivery data, for each message routing provider of the plurality of message routing providers, a corresponding message conversion rate reflecting a likelihood of successful message delivery by a respective message routing provider to the specified destination network.

17 . The non-transitory computer-readable storage medium of claim 15 , wherein producing the updated message delivery data further comprises:

resetting message delivery counters associated with the certain message routing provider.

18 . The non-transitory computer-readable storage medium of claim 15 , wherein the first period of time is defined by a predefined number of messages routed by a first message routing provider of the plurality of message routing providers.

19 . The non-transitory computer-readable storage medium of claim 15 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

determining that the one or more message routing providers satisfy a provider selection criterion specifying a maximum message delivery cost.

20 . The non-transitory computer-readable storage medium of claim 15 , wherein identifying the one or more message routing providers for routing the one or more messages to the specified destination network further comprises:

identifying a first message routing provider satisfying a provider selection criterion specifying a maximum message delivery cost; and

identifying a second message routing provider of the plurality of message routing providers.