Parameters allow you to prompt users for input before triggering your task or runbook.

Before a runbook or task is executed, you can request input from your users in the form of parameters. Parameters can be defined when creating and editing your runbook or task.

Add parameters to your task definition file (only supported for task parameters, not runbooks).

# your_task.task.yaml
- name: User email
slug: user_email
type: shorttext
description: The email address of the user

See the Task definition reference for full documentation on configuring parameters in a task definition file.

Parameter slugs

A slug is a human-friendly identifier for your parameter, which you can reference later. For example:

  • SQL tasks can pass in parameters using query args, e.g. SELECT name FROM users WHERE id = :id where id is a query arg tied to a parameter.
  • Docker Image tasks can interpolate parameters into the Docker command, e.g. echo {{}}.
  • REST tasks can interpolate parameters into the URL, query parameters, headers, and more.
  • Custom code tasks like Node.js receive the parameters as a JSON object keyed by task slug, e.g. {"name": "some name"}.


Generally, Airplane performs an "interpolation" step via JavaScript templates when running a task or 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

Parameters come in various types. Currently, the following types are supported:

Short text

This is your commonly used "string" input:

Long text

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


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


Booleans are presented as on/off toggles:



Numbers are essentially floats, allowing both whole numbers and decimals:


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

File uploads are serialized as a signed URL when passed to Node.js and Python tasks. An HTTP GET to this URL will respond with the uploaded file encoded as a byte stream in the response's body.

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.


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

"name": "my_config_var",
"value": "config_var_value"

For example, you can use config variable parameters in REST tasks:

You can also use them like normal values in Node and Python tasks:

export default async function (params) {
console.log("config var name:",;
console.log("config var value:", params.my_config_var.value);