IP Library Granted Patent US 11,704,102
Granted Patent B2
US 11,704,102 · App. 17/655,657 · Granted Jul 18, 2023

Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment

Inventors: David Brooks (San Jose, CA); Lewis Wiley Tucker (San Francisco, CA); Benji Jasik (San Francisco, CA); Timothy Mason (San Francisco, CA); Eric David Bezar (Oakland, CA); Simon Wong (San Carlos, CA); Douglas Chasman (Pittsford, NY); Tien Tzuo (San Francisco, CA); Scott Hansma (Burlingame, CA); Adam Gross (San Francisco, CA); Steven Tamm (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F8/61G06F3/0482G06F8/60G06F8/658G06F16/176G06F16/211G06F16/214G06F16/2329G06F16/27G06F16/283G06F16/289G06F16/40G06F16/9566G06F16/972H04L63/1433H04L67/34G06F3/0483G06F15/173G06F16/24573G06F16/904H04L12/50
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,704,102
App. No.
17/655,657
Granted
Jul 18, 2023
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for creating, exporting, viewing and testing, and importing custom applications in a multitenant database environment. These mechanisms and methods can enable embodiments to provide a vehicle for sharing applications across organizational boundaries. The ability to share applications across organizational boundaries can enable tenants in a multi-tenant database system, for example, to easily and efficiently import and export, and thus share, applications with other tenants in the multi-tenant environment.

Claims (54)

1. A computer-implemented method of installing and customizing an application published in an application directory of a multi-tenant system, the application created by a source organization in the multi-tenant system, the method including:

receiving a request from a user of a recipient organization in the multi-tenant system to install the application from the application directory;

installing the application for the recipient organization responsive to receiving the request to install the application;

customizing the application based on input received from the user of the recipient organization; and

deploying the application in a development mode to allow the user of the recipient organization to verify functioning of customizations made to the application prior to sharing the application with users of the recipient organization.

2. The computer-implemented method of claim 1 , further comprising:

receiving a request from the user of the recipient organization to uninstall the application; and

uninstalling the application for the recipient organization responsive to receiving the request to uninstall the application.

3. The computer-implemented method of claim 1 , further comprising:

scanning the application for malicious functionality.

4. The computer-implemented method of claim 1 , wherein the application is password-protected such that the user of the recipient organization must enter a correct password to install the application for the recipient organization.

5. The computer-implemented method of claim 1 , further comprising:

detecting a conflict between objects of the application and objects of the recipient organization; and

presenting an interface that allows the user of the recipient organization to resolve the conflict.

6. The computer-implemented method of claim 1 , further comprising:

presenting an interface that allows the user of the recipient organization to define mappings from references in the application that are specific to the source organization to values that are appropriate for the recipient organization.

7. The computer-implemented method of claim 1 , further comprising:

upgrading the application for the recipient organization in response to a determination that the source organization has updated the application.

8. The computer-implemented method of claim 7 , wherein the upgrading includes determining a value of a manageable field for an object of the application, determining a value of a control field for the object, or determining a value of an immutable field for the object, wherein the manageable field for the object is used to indicate whether customizations to the object are subject to upgrade, wherein the control field for the object is used to indicate whether the object may be modified by a publisher or subscriber, and the immutable field for the object is used to indicate whether the object may be modified at all.

9. The computer-implemented method of claim 1 , further comprising:

determining whether the user of the recipient organization has organizational permission to install and customize the application for the recipient organization.

10. A computer system to execute a method of installing and customizing an application published in an application directory of a multi-tenant system, the application created by a source organization in the multi-tenant system, the computer system comprising:

one or more processors; and

a non-transitory computer-readable medium having stored therein computer instructions that, when executed by the one or more processors, cause the computer system to:

receive a request from a user of a recipient organization in the multi-tenant system to install the application from the application directory,

install the application for the recipient organization responsive to receiving the request to install the application,

customize the application based on input received from the user of the recipient organization, and

deploy the application in a development mode to allow the user of the recipient organization to verify functioning of customizations made to the application prior to sharing the application with users of the recipient organization.

11. The computer system of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the computer system to:

receive a request from the user of the recipient organization to uninstall the application, and

uninstall the application for the recipient organization responsive to receiving the request to uninstall the application.

12. The computer system of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the computer system to:

detect a conflict between objects of the application and objects of the recipient organization, and

present an interface that allows the user of the recipient organization to resolve the conflict.

13. The computer system of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the computer system to:

present an interface that allows the user of the recipient organization to define mappings from references in the application that are specific to the source organization to values that are appropriate for the recipient organization.

14. The computer system of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the computer system to:

upgrade the application for the recipient organization in response to a determination that the source organization has updated the application.

15. The computer system of claim 14 , wherein the upgrading includes determining a value of a manageable field for an object of the application, determining a value of a control field for the object, or determining a value of an immutable field for the object, wherein the manageable field for the object is used to indicate whether customizations to the object are subject to upgrade, wherein the control field for the object is used to indicate whether the object may be modified by a publisher or subscriber, and the immutable field for the object is used to indicate whether the object may be modified at all.

16. A non-transitory computer-readable storage medium having stored therein a set of instructions, the set of instructions, when executed by one or more processors of a computer system, causes the computer system to perform a set of operations for installing and customizing an application published in an application directory of a multi-tenant system, the application created by a source organization in the multi-tenant system, the set of operation comprising:

receiving a request from a user of a recipient organization in the multi-tenant system to install the application from the application directory;

installing the application for the recipient organization responsive to receiving the request to install the application;

customizing the application based on input received from the user of the recipient organization; and

deploying the application in a development mode to allow the user of the recipient organization to verify functioning of customizations made to the application prior to sharing the application with users of the recipient organization.

17. The non-transitory computer-readable storage medium of claim 16 having further instructions stored therein, which, when executed by the one or more processors, cause additional operations to be performed by the computer system, the additional operations comprising:

receiving a request from the user of the recipient organization to uninstall the application; and

uninstalling the application for the recipient organization responsive to receiving the request to uninstall the application.

18. The non-transitory computer-readable storage medium of claim 16 having further instructions stored therein, which, when executed by the one or more processors, cause additional operations to be performed by the computer system, the additional operations comprising:

detecting a conflict between objects of the application and objects of the recipient organization; and

presenting an interface that allows the user of the recipient organization to resolve the conflict prior to the application being installed.

19. The non-transitory computer-readable storage medium of claim 16 having further instructions stored therein, which, when executed by the one or more processors, cause additional operations to be performed by the computer system, the additional operations comprising:

presenting an interface that allows the user of the recipient organization to define mappings from references in the application that are specific to the source organization to values that are appropriate for the recipient organization.

20. The non-transitory computer-readable storage medium of claim 16 having further instructions stored therein, which, when executed by the one or more processors, cause additional operations to be performed by the computer system, the additional operations comprising:

upgrading the application for the recipient organization in response to a determination that the source organization has updated the application.

Assignments (2)
CHANGE OF NAME Recorded Feb 17, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062794/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2022
From: BROOKS, DAVID; TUCKER, LEWIS WILEY; JASIK, BENJI; MASON, TIMOTHY; BEZAR, ERIC DAVID; WONG, SIMON; CHASMAN, DOUGLAS; TZUO, TIEN; HANSMA, SCOTT; GROSS, ADAM; TAMM, STEVEN
To: SALESFORCE.COM, INC.
Reel/Frame 059326/0595 →