IP Library Granted Patent US 10,866,959
Granted Patent B2
US 10,866,959 · App. 16/137,353 · Granted Dec 15, 2020

Debug tracing of next best action strategy engine

Inventors: Joel Ragnar Palmert (Stockholm, SE); Greg Smolyn (Vancouver, CA); Matthew Van Wely (Lake Stevens, WA); Glyn Able Burton (Norfolk, GB); Martin Holladay (Bremerton, WA); Michael Coughlin (Vancouver, CA); Amar Gajanan Deogirikar (London, GB); Caroline Joan Liu (Vancouver, CA); Alex Edelstein (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F16/2465G06F16/2246G06F16/252G06N20/00
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,866,959
App. No.
16/137,353
Granted
Dec 15, 2020
Kind
B2
Abstract

Disclosed are some implementations of systems, apparatus, methods and computer program products for facilitating the debug tracing of a Next Best Action (NBA) strategy engine. During debug tracing, a user may interact with a user interface representing execution of the NBA strategy engine. Upon interacting with a node representing a decision point, a corresponding ordered list of options generated by the NBA strategy engine and a set of time values resulting from execution of the corresponding segment of the NBA strategy engine are provided for display in proximity to the node.

Claims (53)

1. A system comprising:

a database system implemented using a server system, the database system configurable to cause:

executing computer-readable instructions configured to evaluate a plurality of options based, at least in part, on input received from a client device, the input indicating one or more data values;

during execution of the computer-readable instructions, generating and storing a hierarchical data structure having a plurality of nodes and indicative of an execution order of the computer-readable instructions, the plurality of nodes including a root node and a plurality of child nodes, each of the plurality of child nodes storing a set of data values obtained as a result of executing a corresponding subset of the computer-readable instructions, each set of data values indicating an ordered set of the plurality of options generated as a result of executing the corresponding subset of the computer-readable instructions and indicating a set of time values pertaining to execution of the corresponding subset of the computer-readable instructions;

providing a user interface for display by the client device, the user interface including a representation of the hierarchical data structure, the representation including a plurality of user interface elements, one or more of the user interface elements representing a corresponding one of the child nodes of the hierarchical data structure;

processing a request received from the client device, the request pertaining to a particular user interface element, the particular user interface element representing a a first child node of the plurality of child nodes within the representation of the hierarchical data structure;

responsive to processing the request received from the client device, retrieving the set of data values corresponding to the first child node, represented by the particular user interface element, from the hierarchical data structure; and

providing for display by the client device, the set of data values such that the set of data values is presented within or in proximity to the particular user interface element.

2. The system as recited in claim 1 , the set of time values comprising:

an amount of time that it has taken for one or more processors of the server system to execute the corresponding subset of the computer-readable instructions.

3. The system as recited in claim 1 , the set of time values comprising:

an amount of time expended to access data records of at least one database of the database system during execution of the corresponding subset of the computer-readable instructions.

4. The system as recited in claim 1 , the set of time values comprising:

an amount of time that has been consumed, during execution of the corresponding subset of the computer-readable instructions, to obtain additional data from one or more services offered by one or more external servers external to the database system.

5. The system as recited in claim 1 , the database system further configurable to cause:

calculating, using a system clock, the set of time values.

6. The system as recited in claim 1 , the plurality of options representing one or more of: solutions to a particular problem, products, services, or offers.

7. The system as recited in claim 1 , the computer-readable instructions configured to apply a machine learning model to evaluate the plurality of options.

8. A computer program product comprising computer-readable program code capable of being executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code comprising computer-readable instructions configurable to cause:

executing computer-readable instructions configured to evaluate a plurality of options based, at least in part, on input received from a client device, the input indicating one or more data values;

during execution of the computer-readable instructions, generating and storing a hierarchical data structure having a plurality of nodes and indicative of an execution order of the computer-readable instructions, the plurality of nodes including a root node and a plurality of child nodes, each of the plurality of child nodes storing a set of data values obtained as a result of executing a corresponding subset of the computer-readable instructions, each set of data values indicating an ordered set of the plurality of options generated as a result of executing the corresponding subset of the computer-readable instructions and indicating a set of time values pertaining to execution of the corresponding subset of the computer-readable instructions;

providing a user interface for display by the client device, the user interface including a representation of the hierarchical data structure, the representation including a plurality of user interface elements, one or more of the user interface elements representing a corresponding one of the child nodes of the hierarchical data structure;

processing a request received from the client device, the request pertaining to a particular user interface element, the particular user interface element representing a first child node of the plurality of child nodes within he representation of the hierarchical data structure;

responsive to processing the request received from the client device, retrieving the set of data values corresponding to the first child node, represented by the particular user interface element, from the hierarchical data structure; and

providing for display by the client device, the set of data values such that the set of data values is presented within or in proximity to the particular user interface element.

9. The computer program product as recited in claim 8 , the set of time values comprising:

an amount of time that it has taken for one or more processors to execute the corresponding subset of the computer-readable instructions.

10. The computer program product as recited in claim 8 , the set of time values comprising:

an amount of time expended to access data records of at least one database during execution of the corresponding subset of the computer-readable instructions.

11. The computer program product as recited in claim 8 , the set of time values comprising:

an amount of time that has been consumed, during execution of the corresponding subset of the computer-readable instructions, to obtain additional data from one or more services offered by one or more external servers.

12. The computer program product as recited in claim 8 , the program code comprising instructions further configured to cause:

calculating, using a system clock, the set of time values.

13. The computer program product as recited in claim 8 , the plurality of options representing one or more of: solutions to a particular problem, products, services, or offers.

14. A method, comprising:

executing, by one or more servers, computer-readable instructions configured to evaluate a plurality of options based, at least in part, on input received from a client device, the input indicating one or more data values;

during execution of the computer-readable instructions, generating and storing, by the one or more servers, a hierarchical data structure having a plurality of nodes and indicative of an execution order of the computer-readable instructions, the plurality of nodes including a root node and a plurality of child nodes, each of the plurality of child nodes storing a set of data values obtained as a result of executing a corresponding subset of the computer-readable instructions, each set of data values indicating an ordered set of the plurality of options generated as a result of executing the corresponding subset of the computer-readable instructions and indicating a set of time values pertaining to execution of the corresponding subset of the computer-readable instructions;

providing a user interface for display by the client device, the user interface including a representation of the hierarchical data structure, the representation including a plurality of user interface elements, one or more of the user interface elements representing a corresponding one of the child nodes of the hierarchical data structure;

processing a request received from the client device, the request pertaining to a particular user interface element, the particular user interface element representing a first child node of the plurality of child nodes within the representation of the hierarchical data structure;

responsive to processing the request received from the client device, retrieving the set of data values corresponding to the first child node, represented by the particular user interface element, from the hierarchical data structure; and

providing for display by the client device, the set of data values such that the set of data values is presented within or in proximity to the particular user interface element.

15. The method as recited in claim 14 , the set of time values comprising:

an amount of time that it has taken for one or more processors to execute the corresponding subset of the computer-readable instructions.

16. The method as recited in claim 14 , the set of time values comprising:

an amount of time expended to access data records of at least one database during execution of the corresponding subset of the computer-readable instructions.

17. The method as recited in claim 14 , the set of time values comprising:

an amount of time that has been consumed, during execution of the corresponding subset of the computer-readable instructions, to obtain additional data from one or more services offered by one or more external servers.

18. The method as recited in claim 14 , further comprising:

calculating by the servers, using a system clock, the set of time values.

19. The method as recited in claim 14 , the plurality of options representing one or more of: solutions to a particular problem, products, services, or offers.

20. The method as recited in claim 14 , the computer-readable instructions configured to apply a machine learning model to evaluate the plurality of options.

21. The method as recited in claim 14 , the first child node corresponding to a decision point of a next best action (NBA) engine implemented by the computer-readable instructions.

22. The method as recited in claim 14 , the particular user interface element being one of the one or more user interface elements.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0378 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2019
From: PALMERT, JOEL RAGNAR; SMOLYN, GREG; VAN WELY, MATTHEW; BURTON, GLYN ABLE; HOLLADAY, MARTIN; COUGHLIN, MICHAEL; DEOGIRIKAR, AMAR GAJANAN; LIU, CAROLINE JOAN; EDELSTEIN, ALEX
To: SALESFORCE.COM, INC.
Reel/Frame 050684/0524 →
Continuity (1)
Related Publication 20200097588A1 · Mar 26, 2020