Basic Properties
These properties collect basic information from the user.Short Text
This property collects a short text input from the user.Long Text
This property collects a long text input from the user.Rich Text
This property gives the user a formatting toolbar (bold, italic, underline, links, lists) and preserves{{ variables }} inserted from previous steps. Pair it with a sibling dropdown via formatProperty to let the user switch between plain text and HTML; the returned value is a plain string in the chosen format.
Checkbox
This property presents a toggle for the user to switch on or off.reveals. The revealed fields appear indented beneath the toggle.
Markdown
This property displays a markdown snippet to the user, useful for documentation or instructions. It includes avariant option to style the markdown, using the MarkdownVariant enum:
- BORDERLESS: For a minimalistic, no-border layout.
- INFO: Displays informational messages.
- WARNING: Alerts the user to cautionary information.
- TIP: Highlights helpful tips or suggestions.
variant is INFO.
DateTime
This property collects a date and time from the user.Date Range
This property collects a relative or absolute time window. The user picks a preset (last 24 hours, 7 / 30 / 90 days, this month) or a custom range with explicit after / before dates. Setdisplay: 'dropdown' to render the presets as a compact select (used inside the filter builder); omit it for pill buttons.
{ preset, after?, before? }. Resolve it to concrete ISO bounds inside run() with dateRangeUtils.resolve. Relative presets resolve against “now”, so recurring flows roll the window forward:
Number
This property collects a numeric input from the user.display: 'stepper' with min / max / step to render a compact −/value/+ control for bounded numbers.
Static Dropdown
This property presents a dropdown menu with predefined options.display: 'cards' to render the options as selectable cards. Each option may carry an icon and a short description.
Static Multiple Dropdown
This property presents a dropdown menu with multiple selection options.JSON
This property collects JSON data from the user.Dictionary
This property collects key-value pairs from the user.File
This property collects a file from the user, either by providing a URL or uploading a file.Color
This property collects a color from the user via a swatch and hex input.Array of Strings
This property collects an array of strings from the user.Array of Fields
This property collects an array of objects from the user.Dynamic Data Properties
These properties provide more advanced options for collecting user input.Dropdown
This property allows for dynamically loaded options based on the user’s input.Multi-Select Dropdown
This property allows for multiple selections from dynamically loaded options.Dynamic Properties
This property is used to construct forms dynamically based on API responses or user input.Layout & display options
Every property accepts a few optional hints that fine-tune how it renders. They are ignored where they don’t apply, so they’re always safe to add.
Every property renders in the main form by default, required or not. Set
advanced: true on a secondary option to tuck it into the collapsible Advanced section; advanced: false is the default and has no effect. Avoid the flag on required props: the section starts collapsed, so a mandatory field hidden there only surfaces as a validation error.
Half-width fields
Grouping properties
Actions and triggers can declarepropertyGroups to organize related fields. Each group references its members by name and chooses how they render with display.
Segmented tabs
display: 'tabs' groups a set of props into a segmented tab control, for example To / Cc / Bcc recipients.
Filter builder
For search / list actions,display: 'builder' renders a progressive “Add filter” builder: the user starts with an empty step and adds only the filters they need from a searchable, categorized picker. Each builder group becomes a picker category; a footer group pins a control (such as a result limit) below the list.
Sectioned cards
display: 'section' groups related props into titled cards, for example a Send to card and a Message card. Unlike tabs and the filter builder, sectioned layouts keep the collapsible Advanced section for props outside the cards: an ungrouped prop still honours advanced: true, unless it is a checkbox reveals target, which renders inline under its toggle instead. Props inside a section are always essential. Give each group a label and icon, and use width: 'half' on members to pack two fields per row.
Custom Property (BETA)
This is a property that lets you inject JS code into the frontend and manipulate the DOM of this content however you like, it is extremely useful in case you are embedding Activepieces and want to have a way to communicate with the SaaS embedding it. It has acode property which is a function that takes in an object parameter which will have the following schema:
- You can return a clean up function at the end of the
codeproperty function to remove any listeners or HTML elements you inserted (this is important for development mode, the component gets mounted twice). - This function must be pure without any imports from external packages or variables outside the function scope.
- Must mark your piece
minimumSupportedReleaseproperty to be at least0.58.0after introducing this property to it.
- If you would like to know more about how to setup communication between Activepieces and the SaaS that’s embedding it, check the window postMessage API.