IP Library Granted Patent US 10,880,697
Granted Patent B2
US 10,880,697 · App. 16/511,863 · Granted Dec 29, 2020

Multi-channel communication system

Inventors: Jack Shirazi (Middlesex, GB); Tiago Lam (London, GB); Eric Nadalin (London, GB); Chris Moore (Piedmont, CA); Sumit Suman (San Francisco, CA)
Assignee: Nexmo, Inc.
H04W4/12H04M15/41H04M15/61H04M15/8221H04W4/24H04W4/21H04W48/18
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 10,880,697
App. No.
16/511,863
Granted
Dec 29, 2020
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving from a first system information comprising a message and an identifier of a user, selecting a channel from a plurality of different third party communication channels for sending the message based on one or more properties of communications on the channel, determining a channel-specific user identifier for the selected channel based on the identifier of the user, creating a channel-specific message formatted for the selected channel based on the message, and sending the message to the user on the selected channel using the channel-specific user identifier.

Claims (53)

1. A method of using an Application Programming Interface (API) that exposes message delivery functionality of a second system to a first system, comprising:

sending, from the first system to an API provided by the second system, a request to send a message to a user, wherein the request includes information comprising the message and an identifier of a user;

receiving, from the second system, information generated by a device operated by the user that was sent to the second system in response to the message, wherein the delivery of the message by the second system to the user is accomplished by:

selecting a channel from a plurality of different third-party communication channels for sending the message to the user based on one or more properties of communications on the channel;

determining a channel-specific user identifier for the selected channel based on the identifier of the user;

creating a channel-specific message formatted for the selected channel based on the message;

sending the channel-specific message to the user on the selected channel using the channel-specific user identifier; and

receiving a second message from the user on the selected channel in response to the channel-specific message; and

wherein the selecting, determining, creating, sending and receiving steps are performed by one or more computers of the second system.

2. The method of claim 1 wherein delivery of the message by the second system to the user further comprises:

verifying that credentials included with the request sent by the first system are valid for the first system; and

after verifying that the credentials for the first system are valid, sending the channel-specific message.

3. The method of claim 1 wherein the selected channel is a social network and wherein the channel-specific user identifier is a user account name on the social network.

4. The method of claim 1 wherein the identifier of the user comprises a telephone number.

5. The method of claim 1 wherein a particular third-party communication channel is an over-the-top provider, GSM, or a public switched telephone network.

6. The method of claim 1 wherein the one or more properties of communications on the channel comprises at least one of a cost to send a message on the channel, a payment made to a sender of a message through the channel, a quality of service of the channel, the availability of delivery receipts via the channel, and/or reachability of the user through the channel.

7. The method of claim 1 wherein selecting a channel from a plurality of different channels for sending the message based on one or more properties of communications on the channel comprises selecting a particular channel using a rule-based system wherein a particular rule of the rule-based system corresponds to a set of one or more required properties for the message.

8. The method of claim 7 , wherein the required properties are determined by metadata associated with at least the message.

9. The method of claim 8 , wherein one or more rules of the rule-based system are periodically updated by a machine learning system with input comprising respective past performance data for at least one property on each of the plurality of third-party communication channels.

10. The method of claim 1 , wherein the delivery of the message by the second system to the user further comprises:

determining that an attempt to send the channel-specific message to the user on the selected channel failed, and based thereon:

selecting a second channel from the plurality of channels;

determining a second channel-specific user identifier for the user;

creating a second channel-specific message formatted for the second channel based on the message; and

sending the second channel-specific message to the user on the second channel using the second channel-specific user identifier.

11. The method of claim 1 wherein the message comprises one or more of text, an image, video, audio, executable code, and programming language statements.

12. A system for delivering a message to a user and for forwarding the user's response to the message, comprising:

one or more processors configured to provide an Application Programming Interface (API) that operates to:

receive from a first system, a request to send a message to a user, wherein the request includes information to be included in the message and an identifier of the user;

select a channel from a plurality of different third party communication channels for sending the message to the user based on one or more properties of communications on the channel;

determine a channel-specific user identifier for the selected channel based on the identifier of the user;

create a channel-specific message formatted for the selected channel based on the message;

send the channel-specific message to the user on the selected channel using the channel-specific user identifier; and

receive a response message from the user on the selected channel that the user sends in response to the channel-specific message; and

forward response information to the first system, the response information being based on the response message received from the user.

13. The system of claim 12 wherein sending the channel-specific message further comprises:

verifying that credentials received from the first system during the receiving step are valid for the first system; and

after verifying that the credentials for the first system are valid, sending the channel-specific message.

14. The system of claim 12 wherein the selected channel is a social network and wherein the channel-specific user identifier is a user account name on the social network.

15. The system of claim 12 wherein the identifier of the user comprises a telephone number.

16. The system of claim 12 wherein a particular third-party communication channel is an over-the-top provider, GSM, or a public switched telephone network.

17. The system of claim 12 wherein the one or more properties of communications on the channel comprises at least one of a cost to send a message on the channel, a payment made to a sender of a message through the channel, a quality of service of the channel, delivery receipts, and/or reachability of the user through the channel.

18. The system of claim 12 wherein selecting a channel from a plurality of different channels for sending the message based on one or more properties of communications on the channel comprises:

selecting a particular channel using a rule-based system wherein a particular rule of the rule-based system corresponds to a set of one or more required properties for the message.

19. The system of claim 18 , wherein the required properties are determined by metadata associated with at least the message.

20. The system of claim 19 , wherein one or more rules of the rule-based system are periodically updated by a machine learning system with input comprising respective past performance data for at least one property on each of the plurality of third-party communication channels.

21. The system of claim 12 , wherein the API also operates to:

determine that at attempt to send the channel-specific message to the user on the selected channel failed, and based thereon:

selecting a second channel from the plurality of channels;

determining a second channel-specific user identifier for the user;

creating a second channel-specific message formatted for the second channel based on the message; and

sending the second channel-specific message to the user on the second channel using the second channel-specific user identifier.

22. The system of claim 12 wherein the message comprises one or more of text, an image, video, audio, executable code, and programming language statements.

Assignments (2)
MERGER Recorded Feb 7, 2022
From: NEXMO INC.
To: VONAGE BUSINESS INC.
Reel/Frame 058911/0325 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2019
From: SHIRAZI, JACK; LAM, TIAGO; NADALIN, ERIC; MOORE, CHRIS; SUMAN, SUMIT
To: NEXMO, INC.
Reel/Frame 049760/0676 →