Promoting from UAT to Production
Many teams build and validate Actions in a UAT (user acceptance testing) tenant first, then move the finished work to a Production tenant once it behaves correctly. Studio supports this with export and import for both Actions and Apps.
This page walks through a full promotion: you export your Apps and Actions from UAT as JSON, then import that JSON into Production and reconnect the parts that do not travel with an export (credentials and secrets).
The environment badge next to the studio wordmark tells you which environment you are in. Always confirm the badge before you export or import so you do not promote into the wrong place.
What Export and Import Cover
You can export and import two kinds of objects:
- Apps — an App export includes the App's configuration and all of its Input Types and Tools. Triggers are recreated automatically from the App type on import.
- Actions — an Action export includes the trigger configuration, every step, and each step's prompt, model reference, input assignments, tool assignments, and switch branches. If the Action bundles default Skills, those travel with it too.
Exports use names, not internal IDs. A step that uses the Read email details input from a Microsoft Exchange - AP App stores those names in the export, and the import resolves them against the objects that exist in the target tenant. This is what makes an export portable between environments.
What Is Not Exported
Exports deliberately leave out anything secret or environment-specific:
- Credentials configured on an App (client secrets, connection strings, API keys).
- Tenant Variables and Secrets (see Variables and Secrets).
- Run history and execution logs.
You reconnect these in the target tenant after importing. This keeps production secrets out of files that move between environments.
Recommended Order: Apps First, Then Actions
Because an Action references the Apps, Tools, and Inputs it uses, those resources must already exist in Production before the Action can resolve them cleanly. Promote in this order:
- Export and import the Apps the Action depends on (each App brings its Inputs and Tools).
- Configure credentials on the imported Apps in Production.
- Recreate any Variables and Secrets the Action relies on.
- Export and import the Action, using the import wizard to map models and Apps where names differ.
- Select AI models, enable the Action, and verify a test run.
Step 1 — Export an App from UAT
- Confirm the badge shows your UAT environment.
- Go to Tenant Admin > Apps and select the App you want to promote.
- Select Export App.
- In the Export App dialog, select Copy to Clipboard. The JSON includes the App plus all of its Input Types and Tools.
Save the copied JSON somewhere you can reach it from Production, such as a shared note or a file in source control.
Built-in Standard Apps cannot be exported or imported. Promote your own Apps — for example OpenAPI, Azure Storage, Microsoft Exchange, or Remote MCP Apps.
Step 2 — Import the App into Production
- In the Production tenant, confirm the badge shows US or EU depending on your region.
- Go to Tenant Admin > Apps and select Import.
- Paste the JSON into the Import App dialog and select Import New App. Studio creates the App together with its Input Types and Tools, and recreates the App's triggers from its type.
If the App Already Exists
If an App with the same name already exists in Production, Studio asks how to proceed:
- Add numbered suffix — keep the existing App and create a new one with a numbered name (for example
Microsoft Exchange - AP 1). - Overwrite existing — replace the existing App, including its Input Types and Tools.
Choose Overwrite existing when you are deliberately updating an App you previously promoted; choose Add numbered suffix when you want to keep both.
Individual Tools and Input Types can also be exported and imported on their own from the same screens, with the same conflict choices. Promoting the whole App at once is usually simpler because it keeps the Inputs and Tools together.
Step 3 — Reconnect Credentials and Secrets
In Production, open each imported App and select Configure Credentials to enter the production secrets. Then recreate any Variables and Secrets your Actions reference. None of these values come across in an export, so this step is required before the Action will run.
Step 4 — Export an Action from UAT
- Back in UAT, open the Action in the editor.
- Select Export in the Action header.
- In the Export Action dialog, select Copy to Clipboard.
Step 5 — Import the Action into Production
- In Production, go to the Actions list and select Import.
- Paste the JSON into the Import Action dialog and select Import New Action.
Studio runs a dry-run validation before creating anything. If every model, App, Tool, Input, and the trigger resolve by name — and the Action bundles no Skills that need attention — the Action is created directly.
The Import Wizard
If anything needs your input, the import wizard opens with a preview of what will be created and what could not be matched automatically:
The wizard shows:
- Import Preview — counts of steps, and the resolution status of the trigger, Tools, Inputs, Models, Apps, and Skills. Each item is marked Matched, Auto-matched (matched by type), Missing, or Ambiguous.
- AI Model Mapping — when a model from UAT does not exist in Production by the same name, pick the Production model to use instead. This is common, because environments often run different model deployments.
- App Mapping — when an App referenced by a Tool or Input was not found by name, pick the matching Production App.
- Default Skills — Skills bundled with the Action. New Skills are created automatically; Skills whose context key already exists are kept as-is and never overwritten.
- Step Details — an expandable, per-step breakdown of every reference and how it resolved.
Resolve any Missing or Ambiguous items using the dropdowns, then select Import Action. If there are blocking errors, the button stays disabled until they are resolved.
Tip: if you promoted the Apps first (Step 1), most Tools and Inputs resolve automatically and you will usually only need to confirm the model mapping.
Step 6 — Finish and Verify in Production
After the Action is imported:
- Open the imported Action and confirm each step's AI model is the one you intend to use in Production.
- Check trigger settings — for example, a webhook URL or schedule may need production-specific values.
- The imported Action starts disabled. Run it once manually with sample data and review the run in Runs.
- When the test run looks correct, enable the Action so its trigger can fire.
Promotion Checklist
- Apps exported from UAT and imported into Production (Inputs and Tools included).
- Credentials configured on each imported App in Production.
- Variables and Secrets recreated in Production.
- Action exported from UAT and imported into Production.
- Model and App mappings confirmed in the import wizard.
- AI models selected and trigger settings checked.
- Verified with a manual test run, then enabled.
Related Pages
- Apps — what each App type provides and how credentials are stored.
- Actions and Steps — exporting and importing individual Actions.
- Variables and Secrets — tenant values that must be recreated per environment.
- AI Models — configuring the models that steps run on.