IP Library Granted Patent US 9,893,904
Granted Patent B2
US 9,893,904 · App. 13/894,306 · Granted Feb 13, 2018

Rule-based messaging and dialog engine

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 9,893,904
App. No.
13/894,306
Granted
Feb 13, 2018
Kind
B2
Abstract

One embodiment of the present invention provides a system for generating a message. During operation, the system receives user interaction event data. The user interaction event data describes explicit or implicit interactions of a user with a web application and/or mobile application. Next, the system modifies a graph describing the user's current context associated with the user based on an analysis of the user interaction event data, as interpreted by the system learning from previous processing of user interaction event data. The context graph includes information about the user's state, behavior, and interests, and some or all portions of the context graph may be shared between users. The system determines a set of rules associated with a group of users that includes the user, and then applies the determined set of rules to any context graph associated with the user to generate the message.

Claims (70)

1. A computer-executable method performed by a messaging server to generate a message, comprising:

receiving, by a computing device over a computer network, a hypertext transfer protocol (HTTP) request from a web application and/or a mobile application presented on a client device;

obtaining, from the HTTP request, user interaction event data that describes explicit or implicit interactions of a user with a page of the web application and/or the mobile application being viewed by the user;

updating a context graph associated with the user based on the user interaction event data, wherein the context graph includes information about the user's state, behavior and/or interests with pages of the web application and/or the mobile application;

determining a set of rules associated with a modification to the context graph, wherein a respective rule in the set of rules takes elements of the context graph as input, and is associated with a group of users that includes the user;

processing a conditional statement of the respective rule based on the context graph; and

responsive to determining that the respective rule's condition statement is satisfied, generating a message that includes a recommendation associated with the rule.

2. The method of claim 1 , further comprising:

generating a sequence of related messages that suggest a user perform an action;

tracking user responses to the related messages with a state machine;

generating a new message based on the tracked user responses and the state of the user's context graph; and

updating the context graph using data from the state machine.

3. The method of claim 1 , further comprising:

selecting a message item associated with the set of rules; and

generating the message based on the selected message item.

4. The method of claim 1 , wherein the message is retrieved by a collector/presenter and ranked with other messages to facilitate choosing a message for presentation to the user.

5. The method of claim 1 , wherein the method further comprises:

receiving the user interaction event data from a collector/presenter that monitors explicit or implicit user interactions with the web application and/or mobile application.

6. The method of claim 1 , further comprising:

sending a series of related messages to the user;

engaging the user in a dialog;

updating the context graph with data from the dialog and/or modifies the message based on the dialog and state of the user's context graph.

7. The method of claim 1 , wherein the rules are conditional statements referencing nodes and edges of the context graph.

8. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for generating a message, the method comprising:

receiving, over a computer network, a hypertext transfer protocol (HTTP) request from a web application and/or a mobile application presented on a client device;

obtaining, from the HTTP request, user interaction event data that describes explicit or implicit interactions of a user with a page of the web application and/or the mobile application being viewed by the user;

updating a context graph associated with the user based on the user interaction event data, wherein the context graph includes information about the user's state, behavior, and/or interests with pages of the web application and/or the mobile application;

determining a set of rules associated with a modification to the context graph, wherein a respective rule in the set of rules takes elements of the context graph as input, and is associated with a group of users that includes the user;

processing a conditional statement of the respective rule based on the context graph; and

responsive to determining that the respective rule's condition statement is satisfied, generating a message that includes a recommendation associated with the rule.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the computer to perform additional steps comprising:

generating a sequence of related messages that suggest a user perform an action;

tracking user responses to the related messages with a state machine;

generating a new message based on the tracked user responses and the state of the user's context graph; and

updating the context graph using data from the state machine.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the computer to perform additional steps comprising:

selecting a message item associated with the set of rules; and

generating the message based on the selected message item.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the message is retrieved by a collector/presenter and ranked with other messages to facilitate choosing a message for presentation to the user.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the computer to perform additional steps comprising:

receiving the user interaction event data from a collector/presenter that monitors explicit or implicit user interactions with the web application and/or mobile application.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the computer to perform additional steps comprising:

sending a series of related messages to the user;

engaging the user in a dialog;

updating the context graph with data from the dialog and/or modifies the message based on the dialog and state of the user's context graph.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the rules are conditional statements referencing nodes and edges of the context graph.

15. A computing system for generating a message, the system comprising:

one or more processors,

a computer-readable medium coupled to the one or more processors having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, over a computer network, a hypertext transfer protocol (HTTP) request from a web application and/or a mobile application presented on a client device:

obtaining, from the HTTP request, user interaction event data that describes explicit or implicit interactions of a user with a page of the web application and/or the mobile application being viewed by the user;

updating a context graph associated with the user based on the user interaction event data, wherein the context graph includes information about the user's state, behavior, and/or interests with pages of the web application and/or the mobile application;

determining a set of rules associated with a modification to the context graph, wherein a respective rule in the set of rules takes elements of the context graph as input, and is associated with a group of users that includes the user;

processing a conditional statement of the respective rule based on the context graph; and

responsive to determining that the respective rule's condition statement is satisfied, generating a message that includes a recommendation associated with the rule.

16. The computing system of claim 15 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the one or more processors to perform additional steps comprising:

generating a sequence of related messages that suggest a user perform an action;

tracking user responses to the related messages with a state machine;

generating a new message based on the tracked user responses and the state of the user's context graph; and

updating the context graph using data from the state machine.

17. The computing system of claim 15 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the one or more processors to perform additional steps comprising:

selecting a message item associated with the set of rules; and

generating the message based on the selected message item.

18. The computing system of claim 15 , wherein the message is retrieved by a collector/presenter and ranked with other messages to facilitate choosing a message for presentation to the user.

19. The computing system of claim 15 , wherein the method further comprises:

receiving the user interaction event data from a collector/presenter that monitors explicit or implicit user interactions with the web application and/or mobile application.

20. The computing system of claim 15 , wherein the computer-readable storage medium stores additional instructions that, when executed, cause the computing system to perform additional steps comprising:

sending a series of related messages to the user;

engaging the user in a dialog;

updating the context graph with data from the dialog and/or modifies the message based on the dialog and state of the user's context graph.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073842/0479 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →