The Problem
You have workflows that need different input values depending on which machine runs them:- Different login credentials for each machine
- Machine-specific file paths or configurations
- Hardware-specific settings or IDs
The Solution
Set Desktop Parameters on each machine. When a run is assigned to that machine, the parameters automatically populate as input values.How It Works
- Configure Parameters: In the desktop details page, add parameters with names and values in the “Edit” dialog
- Use in Workflows: Reference them in prompts using standard syntax:
{parameter_name}or{$sensitive_parameter} - Automatic Population: When a run is assigned to this desktop, parameters merge with run input values
- Priority: Desktop parameters override run-level input values if both are provided
Example
Setup Desktop Parameters
In the desktop details page, click the “Edit” button in the top right, then configure parameters for Machine A:Use in Workflow
Result
When this workflow runs on Machine A, the system automatically replaces:{api_url}→https://api-region-east.example.com{username}→user_machine_a{database_path}→C:\\MachineA\\data.db
Sensitive Parameters
For sensitive values like passwords or API keys, mark parameters as “Sensitive”:- In the edit desktop dialog, check the “Sensitive” checkbox when adding a parameter
- Enter the sensitive value (it will be obscured as you type)
- The value is stored securely in Basis Theory
- Use in prompts with sensitive syntax:
{$password}
Example with Sensitive Parameters
Desktop parameters:Configuration via SDK
You can also set desktop parameters programmatically:Best Practices
✅ Good Use Cases
- Machine-specific credentials or API keys
- Hardware-specific paths or configurations
- Region-specific URLs or endpoints
- Machine-assigned identifiers
❌ Avoid
- Workflow-specific logic (use input values instead)
- Data that changes frequently (parameters are relatively static)
- Large datasets (use file attachments instead)
Priority and Overrides
When both run input values and desktop parameters are provided:- Desktop parameters take priority and override run-level inputs
- Overridden run-level sensitive values are automatically cleaned up
- Desktop parameters persist across runs and are not deleted after execution
Security
- Sensitive desktop parameters are stored in Basis Theory
- Values are never displayed in the UI after being saved
- Only parameter names are visible; values show as ”●●●●●●”
- Sensitive values are injected at execution time and never logged
- Desktop parameters are only accessible to runs on that specific machine