Desktop Parameters allow you to configure machine-specific values that automatically populate workflows running on that desktop. This is useful for credentials, file paths, or IDs that are unique to each machine. Despite the name, these are workflow input defaults tied to a machine, not display settings like resolution or scaling.Documentation Index
Fetch the complete documentation index at: https://docs.cyberdesk.io/llms.txt
Use this file to discover all available pages before exploring further.
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 the effective input payload used by that run.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 machine context is known, desktop parameters merge into the effective input payload used for validation and execution
- Storage Behavior: Desktop parameters stay on the machine record; they are not copied into the run’s stored input values unless you also pass them explicitly at run creation
- Priority: Run-level input/sensitive values override desktop parameter defaults when both are provided
- Input Schema Compatibility: You can mark desktop-parameter keys as required in workflow
input_schema; when machine context is already known, those values participate in create-time validation automatically. For pool/auto assignment, required-key checks that may be satisfied by desktop parameters are deferred until a machine is assigned.
Need literal template-style text in the prompt instead of resolving a variable? Escape the opening delimiter:
\{customer_name}renders as literal{customer_name}\{{current_status}}renders as literal{{current_status}}\{$support_pin}renders as literal{$support_pin}
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}. Configure the key aspassword; the$prefix is only used when referencing it in prompts or input schemas.
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:- Run-level values take priority and override desktop parameter defaults
- Desktop parameters still fill missing keys when run-level values are not provided
- Desktop parameters persist across runs and are not deleted after execution
An explicit run-level
__EMPTY__ value is treated as an intentional override, so it will suppress the desktop default for that key. Omitted/null/blank values still allow desktop defaults to populate.__CLEAR__.
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 securely resolved for validation/execution and never logged
- Desktop parameters are only accessible to runs on that specific machine