chesterdocs

#Schemas and transformations

An action's schemas describe the fields it sends and returns, and drive what the Designer offers to fill in and to pick; transformations decode single fields of an answer before the process sees it.

#What a schema drives

flowchart LR
  S["Response Body schema<br/>customer.name · creditLimit"] --> V["Variable list after the task<br/>Activity_fetch.customer.name"]
  S --> T["Type check of expressions<br/>creditLimit is a number"]
  P["Parameter / Request Body schema"] --> F["Fields to fill in on the task,<br/>required ones marked"]

A missing response schema means later steps have nothing to pick — the task shows "No response body schema available" — and expressions that use the answer are not type-checked.

#Edit a schema

Every schema card on an action has two views:

  • Visual — one row per field: its name, an example, its type and, for what is sent, whether it is required. + Field adds one; an object or list gets sub-fields.
  • Code — the JSON schema itself, applied as you type.

Types: String, Number, Integer, Boolean, Object, Array and File. A list can hold texts, numbers, true/false values or objects — not lists and not files.

Allowed values, patterns, formats and defaults are shown as small tags on a field; change them in the Code view.

⚠️ Saving an action rewrites its schemas from the visual rows. Anything the rows cannot show is dropped — "either text or empty" types, extra properties, length limits, alternatives (oneOf, allOf) and references. Keep an imported schema as it is unless you need to change it.

⚠️ A field's description can only be edited in the Code view.

⚠️ A response that is a single file, not an object, is turned into an empty object when the action is saved.

❌ A schema cannot be created from an example answer.

#Files in a schema

A File field marks a place where a file travels:

  • in what is sent, a file reference from an earlier step is uploaded;
  • in what is returned, a file in the answer is stored and handed on as a reference.

See Call a system with a service task.

#Transformations

Some APIs wrap data — a Base64-encoded JSON inside a JSON answer, a JSON text inside a field. Transformationen on the action's Schema tab unwraps them:

Type Turns
Base64 → JSON a Base64 text into the object it encodes
Base64 → Text a Base64 text into plain text
JSON Parse a JSON text into an object

Each row takes a source and a target path, written with dots — message.data → message.decodedData. The rows run in order; a row whose source is missing or not a text is skipped, and a row that fails is skipped with a warning — the step does not fail.

Transformations apply to the answer of an HTTP or GraphQL action, and to an incoming webhook delivery. ⚠️ Not to a file answer, and not to a delivery at a static URL.

⚠️ The fields a transformation adds are not offered in the variable list — they exist at run time, but you type their path yourself.

❌ A path cannot reach into a list: items.0.data is not possible.

⚠️ The Transformations section on the adapter's own Configuration tab is saved, but not applied — use the action's.