IP Library Granted Patent US 12,236,462
Granted Patent B2
US 12,236,462 · App. 17/061,810 · Granted Feb 25, 2025

Method, system, and computer-readable media for message exchange based on bids, quality scores, and cost

Inventors: Chloe Chen (San Carlos, CA); Simon Khalaf (San Francisco, CA); Jamie O'Shaughnessy (Surrey, GB)
Assignee: Twilio, Inc.
G06Q30/0611
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 12,236,462
App. No.
17/061,810
Granted
Feb 25, 2025
Kind
B2
Abstract

Disclosed are systems, methods, and non-transitory computer-readable media for selecting a routing provider that is best suited to deliver each individual message. The message exchange system selects a routing provider based on customer criteria provided by the customer, bids provided by the routing providers and/or performance of the routing providers. The message exchange system ranks the bids based on a ranking value calculated for each bid based on the cost value associated with the bid, the quality score of the associated routing provider and the customer criteria. The message exchange system selects a bid based on the resulting ranking values. For example, the message exchange system selects the bid that is ranked the highest based on the ranking values. The message exchange system then transmits the message to its intended recipient via the routing provider associated with the selected bid.

Claims (92)

1. A method comprising:

receiving, from a first client device associated with a client system and by a message exchange system via a communication network, a first client request to update a first set of criteria identifying client preferences for text message delivery, the first client request identifying a first cost preference for a first text message type of a plurality of text message types and a second cost preference for a second text message type of the plurality of text message types, wherein a text message type corresponds to a classification of text messages based on content of a text message;

storing an identifier of the first set of criteria at a data store;

subsequent to receiving the first client request to update the first set of criteria, receiving, from a second client device associated with the client system and by the message exchange system, a second client request to transmit a first text message to a recipient device, the second client request associated with a first account; and

in response to the receiving of the second client request:

identifying, by the message exchange system, the first set of criteria identifying the client preferences for text message delivery and stored at the data store based on a unique identifier associated with the client system;

gathering, by the message exchange system, a first bid provided by a first routing provider and a second bid provided by a second routing provider, the first bid indicating a first cost value for the first routing provider to deliver the first text message to the recipient device, and the second bid indicating a second cost value for the second routing provider to deliver the first text message to the recipient device;

determining, by the message exchange system, a first quality score indicating a likelihood that the first text message delivered by the first routing provider will be successfully delivered to the recipient device, wherein the first quality score is determined using first feedback data describing an actual performance of the first routing provider in delivering first previous text messages, wherein the first feedback data identifies (i) whether the first previous text messages were successfully received by recipient devices, and (ii) whether the first previous text messages resulted in a specified action by recipients associated with the recipient devices;

determining, by the message exchange system, a second quality score indicating a likelihood that the first text message delivered by the second routing provider will be successfully delivered to the recipient device, wherein the second quality score is determined using second feedback data describing an actual performance of the second routing provider in delivering second previous text messages;

selecting, by the message exchange system, the first routing provider to deliver the first text message to the recipient device based on the first bid, the second bid, the first quality score, the second quality score, and one of the first cost preference for the first text message type or the second cost preference for the second text message type identified in the first set of criteria; and

causing, by the message exchange system, the first text message to be transmitted to the recipient device via the first routing provider.

2. The method of claim 1 , wherein selecting the first routing provider to deliver the first text message comprises:

calculating a first ranking value for the first bid based on the first set of criteria, the first cost value, and the first quality score;

calculating a second ranking value for the second bid based on the first set of criteria, the second cost value, and the second quality score;

ranking the first bid and the second bid based on the first ranking value and the second ranking value; and

selecting the first routing provider based on the ranking.

3. The method of claim 2 , wherein calculating the first ranking value comprises:

determining a first weight value based on the first set of criteria;

applying the first weight value to the first quality score, yielding a first weighted quality score; and

determining the first ranking value based on the first cost value and the first weighted quality score.

4. The method of claim 3 , wherein calculating the second ranking value comprises:

applying the first weight value to the second quality score, yielding a second weighted quality score; and

determining the second ranking value based on the second cost value and the second weighted quality score.

5. The method of claim 1 , the method further comprising:

receiving a third client request to transmit a second text message to a second recipient device, the third client request associated with a second account;

gathering a second set of criteria associated with the second account;

gathering the first bid provided by the first routing provider and the second bid provided by the second routing provider;

gathering a first updated quality score indicating an updated likelihood that the second text message delivered by the first routing provider will be successfully delivered to the second recipient device, and a second updated quality score indicating an updated likelihood that the second text message delivered by the second routing provider will be successfully delivered to the second recipient device;

selecting the second routing provider to deliver the second text message to the second recipient device based on the second set of criteria associated with the second account, the first bid, the second bid, the first updated quality score and the second updated quality score; and

causing the second text message to be transmitted to the second recipient device via the second routing provider.

6. The method of claim 1 , wherein the first set of criteria identifies a maximum cost value.

7. The method of claim 6 , wherein the gathering of the first bid provided by the first routing provider and the gathering of the second bid provided by the second routing provider comprise:

determining that the first cost value and the second cost value do not exceed the maximum cost value identified by the first set of criteria.

8. The method of claim 7 , wherein the gathering the first bid provided by the first routing provider and the gathering of the second bid provided by the second routing provider further comprise:

based on determining that a third cost value associated with a third bid exceeds the maximum cost value identified by the first set of criteria, excluding the third bid from a set of bids gathered for potential selection to deliver the first text message, the set of bids gathered for potential selection to deliver the first text message including the first bid and the second bid.

9. The method of claim 1 , wherein the first set of criteria identifies a minimum level of service.

10. The method of claim 9 , wherein the gathering of the first bid provided by the first routing provider and the gathering of the second bid provided by the second routing provider comprise:

determining that a first level of service associated with the first bid and a second level of service associated with the second bid meet or exceed the minimum level of service identified by the first set of criteria.

11. The method of claim 1 , wherein the first feedback data further identifies (iii) whether the first routing provider transmitted the first previous text messages to the recipient devices.

12. The method of claim 1 , further comprising:

providing, to the first client device, a user interface for providing the first set of criteria identifying the client preferences for text message delivery; and

receiving, from the first client device via the user interface, an identifier of the first cost preference for the first text message type and the second cost preference for the second text message type.

13. A message exchange system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the message exchange system to perform operations comprising:

receiving, from a first client device associated with a client system and by a text message exchange system via a communication network, a first client request to update a first set of criteria identifying client preferences for text message delivery, the first client request identifying a first cost preference for a first text message type of a plurality of text message types and a second cost preference for a second text message type of the plurality of text message types, wherein a text message type corresponds to a classification of text messages based on content of a text message;

storing an identifier of the first set of criteria at a data store;

subsequent to receiving the first client request to update the first set of criteria, receiving, from a second client device associated with the client system and by the message exchange system, a second client request to transmit a first text message to a recipient device, the second client request associated with a first account; and

in response to the receiving of the second client request:

identifying the first set of criteria identifying the client preferences for text message delivery and that are stored at the data store based on a unique identifier associated with the client system;

gathering a first bid provided by a first routing provider and a second bid provided by a second routing provider, the first bid indicating a first cost value for the first routing provider to deliver the first text message to the recipient device, and the second bid indicating a second cost value for the second routing provider to deliver the first text message to the recipient device;

determining a first quality score indicating a likelihood that the first text message delivered by the first routing provider will be successfully delivered to the recipient device, wherein the first quality score is determined using first feedback data describing an actual performance of the first routing provider in delivering first previous text messages, wherein the first feedback data identifies (i) whether the first previous text messages were successfully received by recipient devices, and (ii) whether the first previous text messages resulted in a specified action by recipients associated with the recipient devices;

determining a second quality score indicating a likelihood that the first text message delivered by the second routing provider will be successfully delivered to the recipient device, and wherein the second quality score is determined using second feedback data describing an actual performance of the second routing provider in delivering second previous text messages;

selecting the first routing provider to deliver the first text message to the recipient device based on the first bid, the second bid, the first quality score, the second quality score, and one of the first cost preference for the first text message type or the second cost preference for the second text message type identified in the first set of criteria; and

causing the first text message to be transmitted to the recipient device via the first routing provider.

14. The system of claim 13 , wherein selecting the first routing provider to deliver the first text message comprises:

calculating a first ranking value for the first bid based on the first set of criteria, the first cost value, and the first quality score;

calculating a second ranking value for the second bid based on the first set of criteria, the second cost value, and the second quality score;

ranking the first bid and the second bid based on the first ranking value and the second ranking value; and

selecting the first routing provider based on the ranking.

15. The system of claim 14 , wherein calculating the first ranking value comprises:

determining a first weight value based on the first set of criteria;

applying the first weight value to the first quality score, yielding a first weighted quality score; and

determining the first ranking value based on the first cost value and the first weighted quality score.

16. The system of claim 15 , wherein calculating the second ranking value comprises:

applying the first weight value to the second quality score, yielding a second weighted quality score; and

determining the second ranking value based on the second cost value and the second weighted quality score.

17. The system of claim 13 , the operations further comprising:

receiving a third client request to transmit a second text message to a second recipient device, the third client request associated with a second account;

gathering a second set of criteria associated with the second account;

gathering the first bid provided by the first routing provider and the second bid provided by the second routing provider;

gathering a first updated quality score indicating an updated likelihood that the second text message delivered by the first routing provider will be successfully delivered to the second recipient device, and a second updated quality score indicating an updated likelihood that the second text message delivered by the second routing provider will be successfully delivered to the second recipient device;

selecting the second routing provider to deliver the second text message to the second recipient device based on the second set of criteria associated with the second account, the first bid, the second bid, the first updated quality score and the second updated quality score; and

causing the second text message to be transmitted to the second recipient device via the second routing provider.

18. The system of claim 17 , wherein the gathering of the first bid provided by the first routing provider and the gathering of the second bid provided by the second routing provider comprise:

determining that a first level of service associated with the first bid and a second level of service associated with the second bid meet or exceed a minimum level of service identified by the first set of criteria.

19. The system of claim 13 , wherein the first set of criteria identifies a maximum cost value.

20. The system of claim 19 , wherein the gathering the first bid provided by the first routing provider and the gathering of the second bid provided by the second routing provider comprise:

determining that the first cost value and the second cost value do not exceed the maximum cost value identified by the first set of criteria.

21. The system of claim 20 , wherein the gathering of the first bid provided by the first routing provider and the gathering of the second bid provided by the second routing provider further comprise:

based on determining that a third cost value associated with a third bid exceeds the maximum cost value identified by the first set of criteria, excluding the third bid from a set of bids gathered for potential selection to deliver the first text message, the set of bids gathered for potential selection to deliver the first text message including the first bid and the second bid.

22. 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, from a first client device associated with a client system and by the message exchange system via a communication network, a first client request to update a first set of criteria identifying client preferences for text message delivery, the first client request identifying a first cost preference for a first text message type of a plurality of text message types and a second cost preference for a second text message type of the plurality of text message types, wherein a text message type corresponds to a classification of text messages based on content of a text message;

storing an identifier of the first set of criteria at a data store;

subsequent to receiving the first client request to update the first set of criteria, receiving, from a second client device associated with the client system and by the message exchange system, a second client request to transmit a first text message to a recipient device, the second client request associated with a first account; and

in response to the receiving of the second client request;

identifying the first set of criteria identifying the client preferences for text message delivery and that are stored at the data store based on a unique identifier associated with the client system;

gathering a first bid provided by a first routing provider and a second bid provided by a second routing provider, the first bid indicating a first cost value for the first routing provider to deliver the first text message to the recipient device, and the second bid indicating a second cost value for the second routing provider to deliver the first text message to the recipient device;

determining a first quality score indicating a likelihood that the first text message delivered by the first routing provider will be successfully delivered to the recipient device, wherein the first quality score is determined using first feedback data describing an actual performance of the first routing provider in delivering first previous text messages, wherein the first feedback data identifies (i) whether the first previous text messages were successfully received by recipient devices, and (ii) whether the first previous text messages resulted in a specified action by recipients associated with the recipient devices;

determining a second quality score indicating a likelihood that the first text message delivered by the first routing provider will be successfully delivered to the recipient device, wherein the second quality score is determined using second feedback data describing an actual performance of the second routing provider in delivering second previous text messages;

selecting the first routing provider to deliver the first text message to the recipient device based on the first bid, the second bid, the first quality score, the second quality score and one of the first cost preference for the first text message type or the second cost preference for the second text message type identified in the first set of criteria; and

causing the first text message to be transmitted to the recipient device via the first routing provider.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2022
From: CHEN, CHLOE; KHALAF, SIMON; O'SHAUGHNESSY, JAMIE
To: TWILIO INC.
Reel/Frame 061947/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2020
From: CHEN, CHLOE; KHALAF, SIMON; O'SHAUGHNESSY, JAMIE
To: TWILIO INC.
Reel/Frame 053987/0674 →
Continuity (2)
Provisional Application 62980629 · Feb 24, 2020
Related Publication 20210264489A1 · Aug 26, 2021
References Cited (63)
US 6134589A · Hultgren · 2000 [cited by examiner]
US 6487172B1 · Zonoun · 2002 [cited by examiner]
US 8355316B1 · Lushear et al. · 2013 [cited by applicant]
US 9467970B1 · Kim et al. · 2016 [cited by applicant]
US 10939256B1 · Shcherbakov et al. · 2021 [cited by applicant]
US 11290352B2 · O'Shaughnessy et al. · 2022 [cited by applicant]
US 20020177448A1 · Moran · 2002 [cited by examiner]
US 20030088529A1 · Klinker et al. · 2003 [cited by applicant]
US 20090003269A1 · Kumazawa et al. · 2009 [cited by applicant]
US 20100228641A1 · Das · 2010 [cited by examiner]
US 20110166958A1 · Hamilton, II et al. · 2011 [cited by applicant]
US 20130022186A1 · Blackwell et al. · 2013 [cited by applicant]
US 20140031070A1 · Nowack et al. · 2014 [cited by applicant]
US 20150131444A1 · Malatack et al. · 2015 [cited by applicant]
US 20150381648A1 · Mathis · 2015 [cited by applicant]
US 20150382263A1 · Jain et al. · 2015 [cited by applicant]
US 20170041213A1 · Nadalin et al. · 2017 [cited by applicant]
US 20180219818A1 · Kramer et al. · 2018 [cited by applicant]
US 20200252343A1 · Popescu et al. · 2020 [cited by applicant]
US 20210344575A1 · O'Shaughnessy et al. · 2021 [cited by applicant]
US 20220158911A1 · O'Shaughnessy et al. · 2022 [cited by applicant]
US 20230254224A1 · Jamie · 2023 [cited by applicant]
EP 3334214 · 2018 [cited by applicant]
IN 202217034647 · 2022 [cited by applicant]
IN 202217035888 · 2022 [cited by applicant]
JP 2006197306A · 2006 [cited by applicant]
WO 9428683 · 1994 [cited by applicant]
WO 9711553 · 1997 [cited by applicant]
WO 03040947A9 · 2004 [cited by applicant]
WO 2006069039 · 2006 [cited by applicant]
WO 2012006659A1 · 2012 [cited by applicant]
WO 2021173655 · 2021 [cited by applicant]
WO 2021222914 · 2021 [cited by applicant]
Boehm, D. W. (2002). An investigation of negotiations of quality of service parameters in a connection oriented telecommunications network environment (Order No. 3066272). Available from ProQuest Dissertations and These… [cited by examiner]
Ng, C. Y. (2010). Resource allocation for cooperative transmission in wireless network (Order No. 3484726). Available from ProQuest Dissertations and Theses Professional. (906719527). Retrieved from https://dialog.proqu… [cited by examiner]
“International Application Serial No. PCT/US2021/019396, International Search Report mailed Jun. 9, 2021”, 5 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/019396, Written Opinion mailed Jun. 9, 2021”, 8 pgs. [cited by applicant]
“International Application Serial No. PCT US2021 070269, International Preliminary Report on Patentability mailed Jul. 5, 2022”, 7 pgs. [cited by applicant]
“International Application Serial No. PCT US2021 070269, International Preliminary Report on Patentability mailed Aug. 16, 2022”, 9 pgs. [cited by applicant]
“International Application Serial No. PCT US2021 019396, International Preliminary Report on Patentability mailed Sep. 9, 2022”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/649,984, Non Final Office Action mailed Sep. 26, 2022”, 17 pgs. [cited by applicant]
“International Application Serial No. PCT US2021 070269, International Search Report mailed Jul. 1, 2021”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT US2021 070269, Written Opinion mailed Jul. 1, 2021”, 6 pgs. [cited by applicant]
“U.S. Appl. No. 17/130,831, Non Final Office Action mailed Aug. 19, 2021”, 18 pgs. [cited by applicant]
“U.S. Appl. No. 17/130,831, Examiner Interview Summary mailed Oct. 7, 2021”, 1 pg. [cited by applicant]
“U.S. Appl. No. 17/130,831, Response filed Nov. 11, 2021 to Non Final Office Action mailed Aug. 19, 2021”, 15 pgs. [cited by applicant]
“U.S. Appl. No. 17/130,831, Notice of Allowance mailed Nov. 24, 2021”, 10 pgs. [cited by applicant]
European Application Serial No. 21/720,150_8, Response to Communication Pursuant to Rules 161 and 162 EPC filed Jan. 31, 2023, 12 pgs. [cited by applicant]
Indian Application Serial No. 202217034647, Response filed Feb. 24, 2023 to First Examination Report mailed Nov. 9, 2022, w English claims, 20 pgs. [cited by applicant]
Japanese Application Serial No. 2022-565738, Voluntary Amendment filed Mar. 29, 2023, w English claims, 13 pgs. [cited by applicant]
Japanese Application Serial No. 2022-565738, Office Action issued on Aug. 22, 2023, w English translation, 6 pages. [cited by applicant]
USPTO, U.S. Appl. No. 17/649,984, Corrected Notice of Allowability mailed May 15, 2023. [cited by applicant]
U.S. Appl. No. 17/649,984, filed Feb. 4, 2022, Message Routing Optimization System. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 18/134,837, mailed Dec. 1, 2023, 19 Pages. [cited by applicant]
Office Action for Australian Patent Application No. 2021225837, mailed Oct. 17, 2023, 4 Pages. [cited by applicant]
Office Action for Australian Patent Application No. 2021263605, mailed Nov. 23, 2023, 3 Pages. [cited by applicant]
Office Action for Korean Patent Application No. 20227022489, mailed Oct. 26, 2023, 9 Pages. [cited by applicant]
“Korean Application Serial No. 10-2022-7022489, Office Action mailed Sep. 27, 2022”, With English machine translation, 5 pgs. [cited by applicant]
“Indian Application Serial No. 202217034647, First Examination Report mailed Nov. 9, 2022”, With English translation, 7 pgs. [cited by applicant]
“U.S. Appl. No. 17/649,984, Response filed Dec. 20, 2022 to Non Final Office Action mailed Sep. 26, 2022”, 8 pgs. [cited by applicant]
“European Application Serial No. 21713208.3, Response to Communication Pursuant to Rules 161 and 162 EPC filed Sep. 16, 2022”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 17/649,984, Notice of Allowance mailed Jan. 17, 2023”, 9 pgs. [cited by applicant]
“Indian Application Serial No. 202217035888, Office Action mailed Jan. 17, 2023”, 6 pgs. [cited by applicant]