Setup notes and best practices
In order to make use of the Tray Embedded APIs, an admin/owner of the Embedded account will need to create a Master Token.
This is generated in the Tokens section under Settings in your dashboard:
You can set your Embedded ID (i.e. your company name or initials) in the Embedded Settings section.
This is required for loading Config Wizard CSS.
It is also passed as a parameter in the url for the Config Wizard:
Org / Environment setupCopy
It is not currently possible to create Embedded Solutions in custom workspaces.
Therefore Solutions need to be created in the main 'Embedded' workspace.
Thus it is generally recommended to have multiple Tray accounts for e.g. dev, staging and prod and then promote from one account to the next.
Please see Environment Promotion for more information.
You should configure an alerting Workflow which makes use of the Solution Alert Trigger In order to be alerted about any errors that are occurring with Solution Instances / Solutions / Workflows.
This is useful in terms of a 'helicopter view' of the overall health of your projects - which solutions and solution instances are causing problems.
Please see our page on Error handling (Embedded) for more information.
Custom OAuth appsCopy
When delivering third-party app integrations, Tray strongly recommends that you use your own third-party Custom OAuth apps when going to production.
This will ensure:
Your customers can receive a branded, White-labeled authentication experience with no mention of Tray.
This approach ensures that all necessary security approvals and reviews are communicated directly between you and the third-party vendor.
OAuth app reviews are common practice by third-party vendors and can impact uptime. You would have complete control over this process by using your own OAuth app.
When presenting integrations to your users natively within your app, you should prepare a user model to store the Tray user IDs and details of solution Instances they are subscribed to.
This would allow you to serve your users faster and provide better UX.
Here is an example of what you may want to store for a user:
Together they allow you to simplify your workflows by allowing you to work with a 'modular' approach - i.e. multiple workflows can gather data before calling one workflow which can carry out the actual processing tasks (calculations, updating of records etc.)
A basic explanation of setting up a callable workflow can be seen on the Callable Trigger page.
Please see our Using callable workflows documentation for more information on best practices and advanced usage - such as processing large volumes of data.