#Define a GraphQL action
A GraphQL action is one query or mutation — its text, its arguments and its return type; imported actions come complete, while hand-made ones cannot yet receive variables from a step.
#From action to request
flowchart LR
Q["Query text<br/>query ($id: ID!) { customer(id: $id) { name } }"] --> R["POST { query, variables }"]
A["Arguments<br/>id: ID! — required"] --> S["The task's Request body<br/>id = StartEvent_order.customerId"]
S --> R
R --> D["data.customer → the task's result"]
#Imported or hand-made
Imported by introspection when the adapter was created, an action has everything: the query text, its Arguments — shown as "Taken from introspection" — and its Return Type. The step's Request body offers one field per argument, and those become the variables.
Hand-made with Create action, it has a name, a type (query or mutation) and the query text.
⚠️ A hand-made action has no arguments and no return type, so its step shows no Request body to fill the variables in, and later steps find no fields to pick.
#The Schema tab
- GraphQL Query/Mutation — the query text, editable after Edit. Write the variables as
$name. - Arguments — read-only: name, type, and whether each is required (● Pflicht).
- Return Type — read-only.
- Transformationen — decode fields of the answer's
data. See Schemas and transformations.
#The Settings tab
Operation type (query or mutation) and Operation name, plus the same Metadaten, Behaviour and Status cards as an HTTP action.
⚠️ The operation type is only a label; the query text decides. The operation name is only sent when
the query text itself names the operation — query GetCustomer (…). Imported queries are unnamed.
#What you cannot do
- ❌ Subscriptions.
- ❌ Edit the arguments or the return type.
- ❌ Delete or duplicate a single action.
