IP Library Granted Patent US 11,425,074
Granted Patent B1
US 11,425,074 · App. 15/395,303 · Granted Aug 23, 2022

Methods, apparatuses, and systems for providing an event evaluation framework

Inventor: In Jae Lee (Shoreline, WA)
Assignee: Groupon, Inc.
H04L51/18G06F9/542G06F9/546H04L51/38H04L67/34G06Q10/107G06Q20/387G06Q30/0225G06Q30/0235G06Q30/0255
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 11,425,074
App. No.
15/395,303
Granted
Aug 23, 2022
Kind
B1
Abstract

In general, embodiments of the present invention provide systems, methods and computer readable media for a defining and executing state machines that act based on messages received on a message queue.

Claims (51)

1. A computer-implemented method for providing real time management of events in a multi-tenant system, the method comprising:

receiving a plurality of state machine definitions for a plurality of state machines;

generating a plurality of scripts, comprising generating a first script to define first data processing by a first state machine of the plurality of state machines based on a first state machine definition of the plurality of state machine definitions, and generating a second script to define second data processing by a second state machine of the plurality of state machines based on a second state machine definition of the plurality of state machine definitions;

providing messages from a message queue as input to the first state machine and the second state machine;

using the first state machine associated with the first script, monitoring the message queue to identify a first event with respect to first messages of the messages from the message queue;

using the second state machine associated with the second script, monitoring the message queue to identify a second event with respect to second messages of the messages from the message queue, wherein at least one of the first event and the second event is associated with a registered user computing device of a plurality of registered user computing devices, wherein at least one of the first event and the second event is associated with an interaction between the registered user computing device and a device rendered object, wherein the first event comprises a first event type, and the second event comprises a second event type;

in response to identifying the first event based on the monitoring using the first state machine,

generating a first electronic communication based on first executable code defined within a first application programming interface (API) accessible to the first state machine; and

transmitting the first electronic communication to the registered user computing device; and

in response to identifying the second event based on the monitoring using the second state machine,

generating a second electronic communication and updating user profile data for a user identifier associated with the registered user computer device based on second executable code defined within a second API accessible to the second state machine; and

transmitting the second electronic communication to the registered user computing device, wherein first content of the first electronic communication is different than second content of the second electronic communication, and wherein at least one of the first electronic communication and the second electronic communication is renderable via a display of the registered user computing device.

2. The method of claim 1 , wherein the first event type is one or more of a first abandoned cart event, a first device rendered object view event, or a first service subscription event, and wherein the second event type is one or more of a second abandoned cart event, a second device rendered object view event, or a second service subscription event.

3. The method of claim 1 , wherein the first electronic communication is one or more of a first email message or a first SMS message, and wherein the second electronic communication is one or more of a second email message or a second SMS message.

4. The method of claim 1 , wherein a state machine of the plurality of state machines comprises a plurality of states and a plurality of defined messages.

5. The method of claim 4 , wherein each message of the plurality of defined messages results in a state transition.

6. The method of claim 5 , wherein each state of the plurality of states is associated with a particular action to be performed.

7. A system for real time management of events in a multi-tenant system, the system comprising one or more processors and one or more storage devices storing instructions that are operable, when executed by the one or more processors, to cause the system to:

receive a plurality of state machine definitions for a plurality of state machines;

generate a plurality of scripts, wherein the plurality of scripts comprise a first script to define first data processing by a first state machine of the plurality of state machines based on a first state machine definition of the plurality of state machine definitions, and wherein the plurality of scripts comprise a second script to define second data processing by a second state machine of the plurality of state machines based on a second state machine definition of the plurality of state machine definitions;

provide messages from a message queue as input to the first state machine and the second state machine;

using the first state machine associated with the first script, monitor the message queue to identify a first event with respect to first messages of the messages from the message queue;

using the second state machine associated with the second script, monitor the message queue to identify a second event with respect to second messages of the messages from the message queue, wherein at least one of the first event and the second event is associated with a registered user computing device of a plurality of registered user computing devices, wherein at least one of the first event and the second event is associated with an interaction between the registered user computing device and a device rendered object, wherein the first event comprises a first event type, and the second event comprises a second event type;

in response to identifying the first event based on the monitoring using the first state machine,

generate a first electronic communication based on first executable code defined within a first application programming interface (API) accessible to the first state machine; and

transmitting the first electronic communication to the registered user computing device; and

in response to identifying the second event based on the monitoring using the second state machine,

generate a second electronic communication and update user profile data for a user identifier associated with the registered user computer device based on second executable code defined within a second API accessible to the second state machine; and

transmit the second electronic communication to the registered user computing device, wherein first content of the first electronic communication is different than second content of the second electronic communication, and wherein at least one of the first electronic communication and the second electronic communication is renderable via a display of the registered user computing device.

8. The system of claim 7 , wherein the first event type is one or more of a first abandoned cart event, a first device rendered object view event, or a first service subscription event, and wherein the second event type is one or more of a second abandoned cart event, a second device rendered object view event, or a second service subscription event.

9. The system of claim 7 , wherein the first electronic communication is one or more of a first email message or a first SMS message, and wherein the second electronic communication is one or more of a second email message or a second SMS message.

10. The system of claim 7 , wherein a state machine of the plurality of state machines comprises a plurality of states and a plurality of defined messages.

11. The system of claim 10 , wherein each message of the plurality of defined messages results in a state transition.

12. The system of claim 11 , wherein each state of the plurality of states is associated with a particular action to be performed.

13. A computer program product, stored on a computer readable medium, comprising instructions that when executed by one or more computers cause the one or more computers to:

receive a plurality of state machine definitions for a plurality of state machines;

generate a plurality of scripts, wherein the plurality of scripts comprise a first script to define first data processing by a first state machine of the plurality of state machines based on a first state machine definition of the plurality of state machine definitions, and wherein the plurality of scripts comprise a second script to define second data processing by a second state machine of the plurality of state machines based on a second state machine definition of the plurality of state machine definitions;

provide messages from a message queue as input to the first state machine and the second state machine;

using the first state machine associated with the first script, monitor the message queue to identify a first event with respect to first messages of the messages from the message queue;

using the second state machine associated with the second script, monitoring the message queue to identify a second event with respect to second messages of the messages from the message queue, wherein at least one of the first event and the second event is associated with a registered user computing device of a plurality of registered user computing devices, wherein at least one of the first event and the second event is associated with an interaction between the registered user computing device and a device rendered object, wherein the first event comprises a first event type, and the second event comprises a second event type;

in response to identifying the first event based on the monitoring using the first state machine,

generate a first electronic communication based on first executable code defined within a first application programming interface (API) accessible to the first state machine; and

transmit the first electronic communication to the registered user computing device; and

in response to identifying the second event based on the monitoring using the second state machine,

generate a second electronic communication and update user profile data for a user identifier associated with the registered user computer device based on second executable code defined within a second API accessible to the second state machine; and

transmit the second electronic communication to the registered user computing device, wherein first content of the first electronic communication is different than second content of the second electronic communication, and wherein at least one of the first electronic communication and the second electronic communication is renderable via a display of the registered user computing device.

14. The computer program product of claim 13 , wherein the first event type is one or more of a first abandoned cart event, a first device rendered object view event, or a first service subscription event, and wherein the second event type is one or more of a second abandoned cart event, a second device rendered object view event, or a second service subscription event.

15. The computer program product of claim 13 , wherein the first electronic communication is one or more of a first email message or a first SMS message, and wherein the second electronic communication is one or more of a second email message or a second SMS message.

16. The computer program product of claim 13 , wherein a state machine of the plurality of state machines comprises a plurality of states and a plurality of defined messages.

17. The computer program product of claim 16 , wherein each message of the plurality of defined messages results in a state transition.

18. The computer program product of claim 17 , wherein each state of the plurality of states is associated with a particular action to be performed.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2024
From: GROUPON, INC.
To: BYTEDANCE INC.
Reel/Frame 068833/0811 →
RELEASE OF SECURITY INTEREST Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RIGHTS Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0251 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: LEE, IN JAE
To: GROUPON, INC.
Reel/Frame 053364/0960 →
SECURITY INTEREST Recorded Jul 23, 2020
From: GROUPON, INC.; LIVINGSOCIAL, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 053294/0495 →
Continuity (1)
Provisional Application 62273569 · Dec 31, 2015