Skip to content

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.

RAMP steps support hierarchical nesting, allowing you to organize complex procedures into logical groups.

  • 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.

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.

Parent steps define how their children are executed:

ModeBehavior
SequentialChildren must be executed in order. The next step is only available after the previous one completes.
ParallelAll children are available simultaneously and can be executed in any order.

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

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”

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 allow templates to be parameterized, making a single template reusable across different environments, servers, or configurations.

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.

TypeDescriptionExample
StringFree-form textServer name, URL, description
NumberNumeric valuePort number, timeout
DateDate valueDeployment date, cutover window
BooleanTrue/false toggleFeature flag, dry-run mode
ListPredefined list of optionsEnvironment dropdown
StringListDelimited string of valuesComma-separated server names
PropertyDescription
NameThe placeholder name used in {{Name}} syntax
DescriptionHelp text shown to the user filling in the value
Data TypeThe value type (see table above)
Default ValuePre-filled value that can be overridden
RequiredWhether a value must be provided before the instance can proceed
Validation PatternA regex pattern for validating user input
DelimiterFor StringList type, the character used to split values (default: comma)

List and StringList variables support special iteration modes that generate virtual steps during instance execution:

ModeBehavior
NoneVariable is used as a single value. No virtual steps are generated.
ParallelCreates one virtual step per list item. All virtual steps are available for simultaneous execution.
SequentialCreates one virtual step per list item. Virtual steps must be executed in order.
ConcatJoins all list values with a delimiter into a single string. Referenced with {{*variableName}} syntax.

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:

  1. “Deploy application to web01”
  2. “Deploy application to web02”
  3. “Deploy application to web03”

All three can be executed in parallel by different team members.

Steps can be configured with target types to work with variables:

Target TypeDescription
NoneStandard step, no targeting
ListStep targets a fixed list of items
VariableStep targets values from a named variable

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.

PropertyDescriptionDefault
Execution TypeSequential or Parallel child executionSequential
Auto-CompleteParent auto-completes when all children finishYes
Estimated DurationExpected time for completionNone
PropertyDescriptionDefault
SkippableWhether the step can be skippedNo
Skip Requires CommentIf skippable, whether a reason is mandatoryNo
Requires EvidenceWhether a file attachment is required on completionNo
PropertyDescriptionDefault
Responsible ModeWho can execute: All Team Members, Specific Members, or UnassignedAll Team Members
Responsible UsersSpecific users (when mode is Specific Members)None
Responsible GroupsSpecific groups (when mode is Specific Members)None
Contact PersonA designated contact for questions about this stepNone
Required RoleA role label indicating who should handle this stepNone

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.

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.

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.