Configuration Settings
Define the settings operators fill in when they install your plugin.
Your configuration schema defines the settings entered when your plugin is set up — the API key, account ID, region and anything else the integration needs. You design that form field by field, and every setting then becomes available throughout your flows and connections as {{config.<key>}}. This article covers the field types, the options on each field, grouping and conditional visibility, and how to reference settings.
How to reach it
Open Settings → Integrations → Plugins, open your plugin, and choose the Config tab. The screen is titled Config Schema and is laid out in three columns: an Add Field palette and a Field Groups panel on the left, and the list of fields you have defined on the right. Two buttons sit in the header: Preview, which renders the form exactly as it will appear, and Save Schema, which stays disabled until you change something.
How configuration works
You don't type your own API credentials into a plugin you intend to share — you define fields so that whoever installs it enters their own values. The schema you build is the setup form. Values are stored (with secrets encrypted), and your flows read them at run time.
Field types
Press a type in the Add Field palette to append a field of that type.
| Type | Use it for |
|---|---|
| Text | A single line of text. |
| URL | A URL. The value is checked for a valid URL when the form is saved. |
| Secret | An API key or token. Encrypted, masked on screen, never exported. |
| Password | A masked text input, encrypted the same way as Secret. |
| Number | A numeric value, optionally bounded. |
| Boolean | An on/off switch. |
| Toggle | An on/off switch drawn as a sliding toggle. |
| Select | A dropdown of predefined choices. |
| Date | A date picker. The value is checked for a valid date. |
| Textarea | Multi-line text. |
| JSON | A structured value edited as JSON; invalid JSON is rejected on save. |
| Info | Display-only text or a notice. It collects no value. |
| Callback URL | Display-only. It renders this plugin's own inbound callback URL with a copy button, so you can tell the operator exactly what to paste into the provider's dashboard. It collects no value. |
Per-field options
Selecting a field opens its editor. Some options apply to every field; others only appear for certain types.
On every field:
- Field Key — the identifier you reference as
{{config.<key>}}. Required. The input forces lower case and replaces anything other than a letter, digit or underscore with an underscore as you type, so keys are always simple lowercase identifiers. The editor shows the resulting reference beneath the box. - Display Label — the name shown on the form. Required.
- Placeholder — hint text shown in the empty input.
- Default Value — a pre-filled value. Not offered on Secret or Password fields, since there is nothing safe to pre-fill. Boolean and Toggle fields offer Off (false) / On (true); Date fields offer a date picker.
- Help Text — a short description shown under the input.
- Required Field — a toggle. When on, the plugin is not treated as configured until the value is filled in.
- Group — which section the field renders under, or None (general).
- Conditional Visibility — Always visible, or the key of another field. The field is then shown only while that other field holds a truthy value, and it is not validated while hidden. Custom key… lets you type a key by hand.
Type-specific options:
- Number — Minimum and Maximum bounds, enforced on save.
- Select — a list of Options, each a value and a label. A saved value that is not one of the options is rejected.
- Text and URL — a Validation Pattern (a regular expression) and an Error Message shown when a value doesn't match.
- Info and Callback URL — only a key, a label and a Content / Help Text body; the other options are hidden because these fields store no value.
Field groups
The Field Groups panel adds optional sections to the form. Each group has a name (lower-cased and underscored like a field key), a label and a description. Assign a field to a group from the field editor's Group selector; ungrouped fields render first under the general section. Use Preview to see the grouped layout.
Secret and Password fields
Mark any credential as Secret or Password. Those values are encrypted at rest, masked whenever the form is displayed, and never included when you export or share the plugin. As soon as your schema contains one, the builder shows a notice confirming this. Because there is nothing safe to pre-fill, these two types have no Default Value.
Referencing settings
Anywhere you need a configured value — inside a flow node, or in your connection — reference it with:
{{config.<key>}}
Replace <key> with the field's key. A Secret field with the key api_key is referenced as {{config.api_key}}, and a Text field with the key account_id as {{config.account_id}}. Because keys are always lower case, always write the reference in lower case. See Variables & Expressions for the full reference syntax used inside flows.
Tip: a key can also be built at run time. In an expression,
config['msg_' + input.eventKey]reads whichever configuration field the current event maps to — the pattern the seeded notification flows use for their per-event message templates.
A practical example
A simple Infrastructure Provider plugin might define:
- API URL — type URL, key
api_url, required, with help text pointing at where the operator finds it. - API Key — type Secret, key
api_key, required. - Default Region — type Select, key
region, with a few region options. - Use sandbox — type Toggle, key
sandbox, with a Sandbox URL Text field whose Conditional Visibility is set tosandboxso it only appears when the toggle is on.
The operator fills these in once. Your connection's base URL can then be {{config.api_url}}, its authentication can read {{config.api_key}}, and your provisioning flow can send {{config.region}} in the request body.
Related: Connections & Authentication · Variables & Expressions · Building Flows · Packaging, Importing & Updating
