Parameters
Parameters allow you to prompt users for input before triggering your runbook.
Before a runbook is executed, you can request input from your users in the form of parameters.
Parameters can be defined when creating and editing your runbook.

Parameter slugs
Parameter slugs
A slug is a human-friendly identifier for your parameter, which you can reference later. For
example:
- Tasks and builtin blocks in your runbook can accept parameter values via
JS templates, e.g.
{{ params.value }}
. - Start conditions can use parameter values to dynamically choose whether to skip a block, e.g.
{{ params.name.length > 0 }}
.
Slugs must:
- Be fewer than 50 characters long
- Use only lowercase letters, numbers, and underscores
- Start with a lowercase letter
Interpolation
Interpolation
Generally, Airplane performs an "interpolation" step via JS templates when
running a runbook with parameters, where the values a user has entered are translated and fed into
the task code. This interpolation logic will differ depending on the parameter type (see below) and
the task type (see the various type-specific docs for details).
Parameter types
Parameter types
Parameters come in various types. Currently, the following types are supported:
Short text
Short text
This is your commonly used "string" input:

Long text
Long text
This is a string, but with a larger input box for users:

SQL
SQL
SQL inputs are similar to Long Text inputs but offer SQL syntax highlighting:

Boolean
Boolean
Booleans are presented as on/off toggles:

Integer
Integer

Float
Float
Floats allow both whole numbers and decimals:

File
File
The file type allows users to upload files from the web interface:

Uploads are a great way to allow users to upload CSVs and other files as inputs to scripts from
the web UI. At the moment, uploads are limited to the web UI and aren't supported in Slack or CLI.
File uploads are serialized as an object when passed to tasks:
jsonCopied1{2"__airplaneType": "upload",3"id": "upl20220609zlqsu3b4a1g",4"url": "https://storage.googleapis.com/airplane-external-f4aeab0/file-params/upl20220609zlqsu3b4a1g/atc.jpeg?<...credentials...>"5}
This object includes a signed URL that can be used to access the uploaded file. An
HTTP GET
to
this URL will respond with the uploaded file encoded as a byte stream in the response's body.Date
Date
Dates allow users to pick a value from a datepicker. Dates are serialized as strings, with the
following format:
2020-03-20
.
Date + Time
Date + Time
Date + Time allows users to pick a value from a date and time picker. Date + Time inputs are
serialized as ISO8601 timestamps in UTC, such as
2021-03-20T06:02:00.000Z
.
Config variable
Config variable
Config variable parameters allow users to pass in config variables as values
into a task. This is especially useful if your task needs to use different configs between runs.
Note that config variables must have select options or regular expressions specified (see
parameter constraints). Airplane will not allow unconstrained
config variables, as it may potentially allow users unintentional access to team config variables.
When using the config variable in a JS template, note that the config
variable is an object with a
.name
and .value
property. Use .value
to access the value itself.jsonCopied1{2"name": "my_config_var",3"value": "config_var_value"4}
For example, you can use config variable parameters in REST tasks:

JSON
JSON
JSON parameters allow users to pass in any valid JSON value into a task. This is useful for passing
in complex data types.

JSON parameters will be converted to a native data type or a string, depending on the task kind.
Task kind | JSON parameter type |
---|---|
JavaScript | number | string | []JSONValue | { [x: string]: JSONValue } | boolean | null |
Python | Union[int, float, str, List[Any], Dict[str, Any], bool, None] |
Shell | string |
Docker | string |
SQL | string |
REST | number | string | []JSONValue | { [x: string]: JSONValue } | boolean | null |
GraphQL | number | string | []JSONValue | { [x: string]: JSONValue } | boolean | null |
Parameter constraints
Parameter constraints
Select options
Select options
Supported types:
short text
, long text
, sql
, integer
, number
, date
, date & time
,
config variable
.Select options (aka "dropdowns" or "enums") allow you to specify exactly which values are allowed
for a given parameter.
For example, you can specify a
short text
"Environment" parameter with production
or
development
as two options.You can optionally add a label to each option. Labels are shown to the user instead of the
value. This is helpful if you want to show the user one thing (e.g. a customer name) but pass a
different value to your task (e.g. a customer ID).
Templated options
Templated options
If you are creating parameters for a form block, you can also dynamically generate a list of
options from a previous block's output by using a JS template. For more
information, refer to the form blocks page.

Regular expressions
Regular expressions
Supported types:
short text
, long text
, sql
, config variable
.Regular expressions allow you to more
dynamically control what values are permitted. For most string values, regular expressions will
match against the value itself. For config variables, regular expressions will match against the
name of the config variable (not the value).
Expressions must match the entire value. For example, an expression of
plan.*
will match plane
but not airplane
.
Example constraint settings for a parameter.