Steps & Variables
Steps and variables are the building blocks of every template version. Steps define what needs to be done, while variables provide parameterization so the same template can be reused across different contexts.
Step hierarchy
Section titled “Step hierarchy”RAMP steps support hierarchical nesting, allowing you to organize complex procedures into logical groups.
Structure
Section titled “Structure”- Root steps — Top-level steps that appear at the first indentation level.
- Child steps — Steps nested under a parent step, forming sub-procedures.
- Unlimited depth — Steps can be nested to any depth, though 2-3 levels is typical for readability.
Virtual steps (groups)
Section titled “Virtual steps (groups)”A step that contains child steps acts as a virtual step or group header. Virtual steps:
- Serve as organizational containers for their children.
- Can have their own title and content (often used for section-level instructions).
- Track completion based on their children’s progress.
- Can be configured to auto-complete when all children are finished, or require manual completion.
Execution types
Section titled “Execution types”Parent steps define how their children are executed:
| Mode | Behavior |
|---|---|
| Sequential | Children must be executed in order. The next step is only available after the previous one completes. |
| Parallel | All children are available simultaneously and can be executed in any order. |
Step content
Section titled “Step content”Rich text editor
Section titled “Rich text editor”Each step has a rich text content area powered by TipTap. The editor supports:
- Text formatting — Bold, italic, underline, strikethrough
- Headings — H1 through H6
- Lists — Ordered and unordered lists, task lists
- Code — Inline code and fenced code blocks with syntax highlighting
- Tables — Full table support with column/row operations
- Links — Hyperlinks to external resources
- Block quotes — For callouts and important notes
- Horizontal rules — Visual separators
Step title
Section titled “Step title”Each step has an optional Title field that appears in the step tree and in execution views. Titles should be short and descriptive:
- “Stop Application Services”
- “Verify Database Connectivity”
- “Deploy Configuration Files”
Step notes
Section titled “Step notes”The Notes field provides a space for internal documentation that is visible in the editor and during step execution detail views but is not shown in the main execution preview. Use notes for:
- Implementation details for the executor
- Links to related documentation
- Troubleshooting tips
- Contact information
Variables
Section titled “Variables”Variables allow templates to be parameterized, making a single template reusable across different environments, servers, or configurations.
Variable syntax
Section titled “Variable syntax”Reference variables in step content using double curly braces:
Connect to server {{ServerName}} on port {{Port}}.When an instance is created, the executor fills in the actual values (e.g., prod-db-01 and 5432), and the step content displays the resolved text.
Variable data types
Section titled “Variable data types”| Type | Description | Example |
|---|---|---|
| String | Free-form text | Server name, URL, description |
| Number | Numeric value | Port number, timeout |
| Date | Date value | Deployment date, cutover window |
| Boolean | True/false toggle | Feature flag, dry-run mode |
| List | Predefined list of options | Environment dropdown |
| StringList | Delimited string of values | Comma-separated server names |
Variable properties
Section titled “Variable properties”| Property | Description |
|---|---|
| Name | The placeholder name used in {{Name}} syntax |
| Description | Help text shown to the user filling in the value |
| Data Type | The value type (see table above) |
| Default Value | Pre-filled value that can be overridden |
| Required | Whether a value must be provided before the instance can proceed |
| Validation Pattern | A regex pattern for validating user input |
| Delimiter | For StringList type, the character used to split values (default: comma) |
Iteration modes
Section titled “Iteration modes”List and StringList variables support special iteration modes that generate virtual steps during instance execution:
| Mode | Behavior |
|---|---|
| None | Variable is used as a single value. No virtual steps are generated. |
| Parallel | Creates one virtual step per list item. All virtual steps are available for simultaneous execution. |
| Sequential | Creates one virtual step per list item. Virtual steps must be executed in order. |
| Concat | Joins all list values with a delimiter into a single string. Referenced with {{*variableName}} syntax. |
Example: Server deployment with iteration
Section titled “Example: Server deployment with iteration”Consider a template step: “Deploy application to {{ServerName}}”
If ServerName is a StringList variable with values web01, web02, web03 and iteration mode set to Parallel, RAMP creates three virtual steps during instance execution:
- “Deploy application to web01”
- “Deploy application to web02”
- “Deploy application to web03”
All three can be executed in parallel by different team members.
Multi-target steps
Section titled “Multi-target steps”Steps can be configured with target types to work with variables:
| Target Type | Description |
|---|---|
| None | Standard step, no targeting |
| List | Step targets a fixed list of items |
| Variable | Step targets values from a named variable |
Syncing variables
Section titled “Syncing variables”The Sync Variables feature scans all step content for {{VariableName}} patterns and:
- Creates variables for any referenced names that do not yet exist.
- Reports variables that are defined but not referenced in any step.
This helps keep variable definitions consistent with step content.
Step properties reference
Section titled “Step properties reference”Execution control
Section titled “Execution control”| Property | Description | Default |
|---|---|---|
| Execution Type | Sequential or Parallel child execution | Sequential |
| Auto-Complete | Parent auto-completes when all children finish | Yes |
| Estimated Duration | Expected time for completion | None |
Skipping and evidence
Section titled “Skipping and evidence”| Property | Description | Default |
|---|---|---|
| Skippable | Whether the step can be skipped | No |
| Skip Requires Comment | If skippable, whether a reason is mandatory | No |
| Requires Evidence | Whether a file attachment is required on completion | No |
Responsibility
Section titled “Responsibility”| Property | Description | Default |
|---|---|---|
| Responsible Mode | Who can execute: All Team Members, Specific Members, or Unassigned | All Team Members |
| Responsible Users | Specific users (when mode is Specific Members) | None |
| Responsible Groups | Specific groups (when mode is Specific Members) | None |
| Contact Person | A designated contact for questions about this step | None |
| Required Role | A role label indicating who should handle this step | None |
Identity tracking
Section titled “Identity tracking”Each step has a Step Identifier and Step Version that persist across template versions. When you create a new draft from a published version, each step retains its identifier, allowing RAMP to:
- Track step changes across versions for the comparison view.
- Enable instance upgrades that preserve step execution state.
- Provide accurate change diffs in the history view.
Repeatable steps
Section titled “Repeatable steps”Steps can be marked as Repeatable, meaning they can be executed multiple times during an instance. When a step is repeatable:
- A Repeat Variable can be linked to control the number of repetitions.
- The Repeatable Mode determines whether repetitions run sequentially or in parallel.
Step dependencies
Section titled “Step dependencies”Steps can have explicit dependencies on other steps, enforcing execution order beyond the natural tree hierarchy. Dependencies are tracked separately from parent-child relationships and can be overridden at the instance level if needed.