Skip to main content
Actions are API calls (and optional App Function steps) that users or automations can execute. Each action has a form for user input, a step pipeline (requests[]), and response mapping.

Defining an Action

renderStrategy values:

Parameters (JSON Schema)

Parameters define the user-facing form using JSON Schema. Extended with custom x-* properties for dynamic data.
Supported type values: Custom extensions:

Requests & Chaining

Each action has a requests array. Requests execute sequentially — the response from request N is available as placeholders in request N+1. Single request:
Chained requests (multi-step):
Request fields:

Placeholders

There are two placeholder syntaxes: Placeholder resolution order for {{key}}:
  1. User’s form input (parameters)
  2. Previous request’s mapping output (in chained requests)
  3. auth.config values (for registration requests)
  4. System-injected values (webhookUrl, subdomain, uid)
Type preservation: If a placeholder is the entire value (e.g., body: { data: '{{myObject}}' }), the raw type is preserved — objects remain objects, arrays remain arrays. If a placeholder is part of a larger string (e.g., "Hello {{name}}!"), it’s stringified.

Response Mapping

Mapping extracts values from API responses. Two formats with different behaviors: Object mapping — Values are persisted in the database:
Use object mapping in get_token, refresh_token, registrationRequests, and userDetails. Array mapping — Values are forwarded to the next request only (not persisted):
Use array mapping in action requests when you need to chain request outputs. Dot-path syntax: Values use JSONPath-like syntax starting with $:

App Functions (pipeline steps)

Actions are not limited to HTTP. The requests[] array is a step pipeline where each entry is either an HTTP request (default) or an App Function step. App Functions are small, sandboxed JavaScript helpers shipped in the mini-app definition (sibling of source and actions). They let you search, reshape, or assert on data between HTTP calls — for example, find a spreadsheet row by column name, or build a sparse update body.

Defining functions

Using a function as a pipeline step

Returned object keys (found, rowNumber, row, …) are merged into the shared placeholder context and are available to later steps and to automation custom-field mappings.

Security & sandbox limits

Step type reference

Last modified on August 8, 2026