IP Library Granted Patent US 11,079,909
Granted Patent B2
US 11,079,909 · App. 15/785,068 · Granted Aug 3, 2021

Macro building tool with an information pane and a macro building pane for compiling an ordered macro and determining data dependency

Inventors: Kristen Noriko Muramoto (San Francisco, CA); Clément Jacques Antoine Tussiot (San Francisco, CA); Orjan Nils Kjellberg (Walnut Creek, CA)
Assignee: salesforce.com, inc.
G06F3/0484G06F3/0481G06F8/20G06F8/34G06F9/451G06F9/45512
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,079,909
App. No.
15/785,068
Granted
Aug 3, 2021
Kind
B2
Abstract

Disclosed herein are system, method, and computer-readable storage medium embodiments for ordered macro building. An embodiment may include operations of displaying, via a user interface, a first user interface object and a second user interface object, populating a macro building pane comprising a first macro building object and a second macro building object, in response to the first user interface object receiving a first interaction and in response to the second user interface object receiving a second interaction, and compiling a macro with at least the first interaction and the second interaction, the first interaction being with a first application and the second interaction being with a second application.

Claims (90)

1. A method, comprising:

displaying, by at least one processor and via a user interface (UI), at least an information pane and a macro-building (MB) pane, wherein the information pane comprises a first UI object displaying data of a first data type, a second UI object displaying data of a second data type, and a third UI object;

populating, by the at least one processor, the MB pane with MB objects comprising a first MB object associated with the first UI object, a second MB object associated with the second UI object, and a third MB object associated with the third UI object,

wherein the first MB object is populated in the MB pane via a first event handler in response to the first UI object receiving a first UI interaction,

wherein the second MB object is populated in the MB pane via a second event handler in response to the second UI object receiving a second UI interaction,

wherein the first UI interaction is of a first type of UI interaction,

wherein the second UI interaction is of a second type of UI interaction different from the first type of UI interaction, and

wherein the first MB object, the second MB object, and the third MB object are displayed within the MB pane in a first order;

displaying, by the at least one processor, a first prompt for a string and a condition for inserting the string into a data item of the first data type;

storing the string and the condition in the first MB object;

compiling, by the at least one processor, a macro based on the first MB object, the second MB object, and the third MB object, wherein the first MB object corresponds to a first application, wherein the second MB object corresponds to a second application, wherein the first application has a first functionality, wherein the second application has a second functionality that is different from the first functionality,

wherein the compiling the macro comprises at least one serialization operation performed while the first UI object, the second UI object, and the third UI object are being displayed via the UI and before the macro is committed to persistent storage, and

wherein the compiling the macro further comprises:

compiling a first command for the first MB object based on the string and the condition;

assigning an execution order to the compiled first command based on a count;

increasing the count in response to determining that an MB interaction has not been received for the second MB object;

compiling a second command for the second MB object after receiving the interaction for the second MB object; and

assigning an execution order to the compiled second command based on the count:

identifying, by the at least one processor, an existing function as coinciding with the macro, wherein the existing function comprises a known function in the UI;

determining, by the at least one processor, that a part of the macro is out of order with respect to a data dependency; and

reloading, by the at least one processor, the MB pane, wherein the reloaded MB pane comprises interactive guidance with at least a presentation comprising the first MB object, the second MB object, and the third MB object displayed in a second order based on the data dependency, and wherein the reloading is performed dynamically in response to the determining that the part of the macro is out of order with respect to the data dependency.

2. The method of claim 1 , wherein the first MB object and the second MB object are displayed within the MB pane in the second order based at least in part on at least one of the first UI interaction and the second UI interaction.

3. The method of claim 1 , further comprising:

serializing, by the at least one processor, a plurality of instructions that form the macro, wherein each instruction comprises at least one action.

4. The method of claim 3 , further comprising:

storing, by the at least one processor, the plurality of instructions that form the macro, wherein the plurality of instructions is saved to the persistent storage in a format different from the serializing.

5. The method of claim 1 , further comprising:

generating, by the at least one processor, an indication corresponding to the identifying the existing function as coinciding with the macro, wherein the indication comprises an instruction to a user, via the UI, to use the existing function instead of the macro.

6. The method of claim 1 , wherein:

the first data type is email,

the second data type is contact information, and

the third UI object displays event alerts.

7. The method of claim 1 , wherein:

the first application is an email client,

the second application is a web browser.

8. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to perform operations comprising:

displaying, via a user interface (UI), at least an information pane and a macro-building (MB) pane, wherein the information pane comprises a first UI object displaying data of a first data type, a second UI object displaying data of a second data type, and a third UI object;

populating the MB pane with MB objects comprising a first MB object associated with the first UI object, a second MB object associated with the second UI object, and a third MB object associated with the third UI object,

wherein the first MB object is populated in the MB pane via a first event handler in response to the first UI object receiving a first UI interaction,

wherein the second MB object is populated in the MB pane via a second event handler in response to the second UI object receiving a second UI interaction,

wherein the first UI interaction is of a first type of UI interaction,

wherein the second UI interaction is of a second type of UI interaction different from the first type of UI interaction, and

wherein the first MB object, the second MB object and the third MB object are displayed within the MB pane in a first order;

displaying a first prompt for a string and a condition for inserting the string into a data item of the first data type;

storing the string and the condition in the first MB object;

compiling a macro based on the first MB object, the second MB object, and the third MB object, wherein the first MB object corresponds to a first application, wherein the second MB object corresponds to a second application, wherein the first application has a first functionality, wherein the second application has a second functionality that is different from the first functionality,

wherein the compiling the macro comprises at least one serialization operation performed while the first UI object, the second UI object, and the third UI object are being displayed via the UI and before the macro is committed to persistent storage, and

wherein the compiling the macro further comprises:

compiling a first command for the first MB object based on the string and the condition;

assigning an execution order to the compiled first command based on a count:

increasing the count in response to determining that an MB interaction has not been received for the second MB object;

compiling a second command for the second MB object after receiving the interaction for the second MB object; and

assigning an execution order to the compiled second command based on the count;

identifying an existing function as coinciding with the macro, wherein the existing function comprises a known function in the UI;

determining that a part of the macro is out of order with respect to a data dependency; and

reloading the MB pane, wherein the reloaded MB pane comprises interactive guidance with at least a presentation comprising the first MB object, the second MB object, and the third MB object displayed in a second order based on the data dependency, and wherein the reloading is performed dynamically in response to the determining that the part of the macro is out of order with respect to the data dependency.

9. The system of claim 8 , wherein the first MB object and the second MB object are displayed within the MB pane in the second order based at least in part on at least one of the first UI interaction and the second UI interaction.

10. The system of claim 8 , the operations further comprising:

serializing a plurality of instructions that form the macro, wherein each instruction comprises at least one action.

11. The system of claim 10 , the operations further comprising:

storing the plurality of instructions that form the macro, wherein the plurality of instructions is saved to the persistent storage.

12. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:

displaying, via a user interface (UI), at least an information pane and a macro-building (MB) pane, wherein the information pane comprises a first UI object displaying data of a first data type, a second UI object displaying data of a second data type, and a third UI object;

populating the MB pane with MB objects comprising a first MB object associated with the first UI object, a second MB object associated with the second UI object, and a third MB object associated with the third UI object,

wherein the first MB object is populated in the MB pane via a first event handler in response to the first UI object receiving a first UI interaction,

wherein the second MB object is populated in the MB pane via a second event handler in response to the second UI object receiving a second UI interaction,

wherein the first UI interaction is of a first type of UI interaction,

wherein the second UI interaction is of a second type of UI interaction different from the first type of UI interaction, and

wherein the first MB object, the second MB object, and the third MB object are displayed within the MB pane in a first order;

displaying a first prompt for a string and a condition for inserting the string into a data item of the first data type;

storing the string and the condition in the first MB object;

compiling a macro based on the first MB object, the second MB object, and the third MB object, wherein the first MB object corresponds to a first application, wherein the second MB object corresponds to a second application, wherein the first application has a first functionality, wherein the second application has a second functionality that is different from the first functionality, and

wherein the compiling the macro comprises at least one serialization operation performed while the first UI object, the second UI object, and the third UI object are being displayed via the UI and before the macro is committed to persistent storage, and

wherein the compiling the macro further comprises:

compiling a first command for the first MB object based on the string and the condition;

assigning an execution order to the compiled first command based on a count;

increasing the count in response to determining that an MB interaction has not been received for the second MB object;

compiling a second command for the second MB object after receiving the interaction for the second MB object; and

assigning an execution order to the compiled second command based on the count:

identifying an existing function as coinciding with the macro, wherein the existing function comprises a known function in the UI;

determining, that a part of the macro is out of order with respect to a data dependency; and

reloading the MB pane, wherein the reloaded MB pane comprises interactive guidance with at least a presentation comprising the first MB object, the second MB object, and the third MB object displayed in a second order based on the data dependency, and wherein the reloading is performed dynamically in response to the determining that the part of the macro is out of order with respect to the data dependency.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the first MB object and the second MB object are displayed within the MB pane in the second order based at least in part on at least one of the first interaction and the second interaction.

14. The non-transitory computer-readable storage medium of claim 12 , serializing a plurality of instructions that form the macro, wherein each instruction comprises at least one action.

15. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising:

storing the plurality of instructions that form the macro, wherein the plurality of instructions is saved to persistent storage in a format different from the serializing.

16. The non-transitory computer-readable storage medium of claim 12 , the operations further comprising:

generating an indication corresponding to the identifying the existing function as coinciding with the macro, wherein the existing function comprises a known function in the UI, wherein the indication comprises an instruction to a user, via the UI, to use the existing function instead of the macro.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2018
From: MURAMOTO, KRISTEN NORIKO; TUSSIOT, CLÉMENT JACQUES ANTOINE; KJELLBERG, ORJAN NILS
To: SALESFORCE.COM, INC.
Reel/Frame 045612/0097 →
Continuity (3)
Provisional Application 62556064 · Sep 8, 2017
Provisional Application 62438890 · Dec 23, 2016
Related Publication 20180181270A1 · Jun 28, 2018