IP Library Granted Patent US 12706987
Granted Patent B2
US 12706987 · App. 18/950,635 · Granted Aug 11, 2026

Multi-channel message exchange system demand API

Inventors: Chloe Chen (San Carlos, CA); Peter Michael Janovsky (Pleasanton, CA)
Assignee: Twilio Inc.
H04L67/63H04L67/53
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 12706987
App. No.
18/950,635
Granted
Aug 11, 2026
Kind
B2
Abstract

A customer of a multi-channel message exchange system provides criteria for selecting a service provider using an application programming interface (API). The multi-channel message exchange system selects a service provider that is best suited to deliver each individual message, via a network, for the customer. The message exchange system selects a service provider based on customer criteria, service provider data structures, and other information. The criteria may include a maximum value, a minimum quality score, a maximum latency, or any suitable combination thereof. The data structures may include geographic jurisdictions in which the service provider provides network-based message delivery, channels through which the service provider is willing to deliver messages, or any suitable combination thereof.

Claims (44)

1 . A message exchange system comprising:

one or more processors configured to perform operations comprising:

receiving, via a user interface presented on a client device, a first channel weight for a first channel and a second channel weight for a second channel;

storing the first channel weight and the second channel weight in a database;

accessing, by the one or more processors and from the database, the first channel weight and the second channel weight;

accessing a plurality of data structures provided by a plurality of service providers remote from the one or more processors, the providing of the plurality of data structures including calling an application programming interface (API) in real-time to update the plurality of data structures;

determining a ranking value for each of the plurality of service providers, based on the first channel weight, the second channel weight, and the plurality of data structures;

based on the ranking values, selecting a highest-ranked service provider; and

transmitting, by the one or more processors, a message to the selected service provider.

2 . The message exchange system of claim 1 , wherein the first channel is a short message service (SMS) channel.

3 . The message exchange system of claim 1 , wherein the first channel is email.

4 . The message exchange system of claim 1 , wherein the first channel is a proprietary channel.

5 . The message exchange system of claim 1 , wherein the first channel is voicemail.

6 . The message exchange system of claim 1 , further comprising:

receiving, via an application programming interface (API),), a modification of the first channel weight.

7 . The message exchange system of claim 1 , wherein the accessing of the first channel weight and the second channel weight is in response to receiving a request that identifies a maximum latency for transmitting the message.

8 . A method of transmitting electronic messages, the method comprising:

receiving, at one or more processors and via a user interface presented on a client device, a first channel weight for a first channel and a second channel weight for a second channel;

storing the first channel weight and the second channel weight in a database;

accessing, by the one or more processors and from the database, the first channel weight and the second channel weight;

accessing a plurality of data structures provided by a plurality of service providers remote from the one or more processors, the providing of the plurality of data structures including calling an application programming interface (API) in real-time to update the plurality of data structures;

determining a ranking value for each of the plurality of service providers, based on the first channel weight, the second channel weight, and the plurality of data structures;

based on the ranking values, selecting a highest-ranked service provider; and

transmitting, by the one or more processors, a message to the selected service provider.

9 . The method of claim 8 , wherein the first channel is a short message service (SMS) channel.

10 . The method of claim 8 , wherein the first channel is email.

11 . The method of claim 8 , wherein the first channel is a proprietary channel.

12 . The method of claim 8 , wherein the first channel is voicemail.

13 . The method of claim 8 , further comprising:

receiving, via an application programming interface (API), a modification of the first channel weight.

14 . The method of claim 8 , wherein the accessing of the first channel weight and the second channel weight is in response to receiving a request that identifies a maximum latency for transmitting the message.

15 . A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of one or more computing devices of a message exchange system, cause the one or more computing devices to perform operations comprising:

receiving, via a user interface presented on a client device, a first channel weight for a first channel and a second channel weight for a second channel;

storing the first channel weight and the second channel weight in a database;

accessing, from the database, the first channel weight and the second channel weight;

accessing a plurality of data structures provided by a plurality of service providers remote from the one or more computer processors, the providing of the plurality of data structures including calling an application programming interface (API) in real-time to update the plurality of data structures;

determining a ranking value for each of the plurality of service providers, based on the first channel weight, the second channel weight, and the plurality of data structures;

based on the ranking values, selecting a highest-ranked service provider; and

transmitting a message to the selected service provider.

16 . The non-transitory computer-readable medium of claim 15 , wherein the first channel is a short message service (SMS) channel.

17 . The non-transitory computer-readable medium of claim 15 , wherein the first channel is email.

18 . The non-transitory computer-readable medium of claim 15 , wherein the first channel is a proprietary channel.

19 . The non-transitory computer-readable medium of claim 15 , wherein the first channel is voicemail.

20 . The non-transitory computer-readable medium of claim 15 , further comprising: receiving, via an application programming interface (API), a modification of the first channel weight.