I'm creating an app that allows a user to send a query to a third party (external) service (through a REST API call) and then see the results in the app.

I'd like the user to be able to "import" the results (once displayed) into other apps they might have installed in their org. Is data within an app automatically available for use within other apps or do I need to do something special (tag it in some way) to it?


1 Answer 1


Barring special exceptions (namely, Protected Custom Settings), your custom objects are visible to any other package or application that cares to examine them and their data. You can expose protected custom settings though some standard API, usually as a means of controlling how they are set for data integrity. Note that normal sharing and profile settings apply to your managed package custom objects and fields as any other object and field in salesforce.com.

If you are not using custom objects (e.g. saving data to the database), you can expose your classes through the keyword "global", which grants any code from any package (even unpackaged client code) access to the methods and variables also declared as "global." They can access the code through the System.Type methods, executeAnonymous calls, and so on. Permissions to these classes can be extended at the profile level so that administrators can still control who has access to specific features.

Similarly, your custom application could perform describe calls and save the data to any standard or custom object that your app has access to, or even call functions stored in other packages that are also global or are a part of the global namespace (unpackaged classes, pages, etc). All of this information is covered in the developer documentation.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .