Our mobile app is getting real close to moving to production and am confused about a couple of things:
For this app:
most users will access the mobile app from a web browser
my team access the app using the native Retool App.
I am using releases which works great and when I issue a new release both the native app and web browser pick it up on their next reload
Question 1: once we go to production, how do I test new releases in the native app without impacting existing users and then publish it without the users having to get a new URL or change Apps inside the retool app?
Question 2: I use a salesforce Sandbox. is there a way to use a runtime parameter to select the Sandbox vs. Production?
For the app in the web browser, that app can have a testing environment set up that will be separate from the production environment that will be running for end users.
The issue is that the mobile native app does not have the same functionality for testing environments
For Question 1:
The good news is Retool's Resource Environments (staging/production) are the right tool here. The recommended flow would be:
Configure your resources (Salesforce, DBs, APIs) with both staging and production credentials
Your team tests using the staging environment
End users always hit the production environment
You can link directly to a Retool app and include the _environment URL query parameter to automatically open it with a specified environment Retool — so your team's native app links can point to staging while user-facing URLs stay on production
Workaround for the native app gap: Use Source Control with multi-instance releases if you're on Enterprise. The multi-instance releases feature lets you cut and deploy consistent versions of your apps across development environments, defining which release version should be live on each instance through a manifest file — enabling structured promotion workflows from dev to staging to production.
If you're not on Enterprise, the pragmatic workaround is a separate staging app (a copy) that your team tests against, and you only issue a release on the production app once validated.
Question 2:
Go to your Salesforce resource in Retool Settings
Add a staging environment configuration pointing to your Salesforce Sandbox URL + credentials
Add the production environment configuration pointing to your Salesforce Production URL + credentials
In your app, all Salesforce queries automatically use whichever environment is active — no code changes needed
You can also detect the current environment in app logic via: {{ retoolContext.environment }} which returns the name of the active resource environment. This lets you conditionally show/hide UI elements or adjust behavior based on whether you're in staging or production.