picked 0.0.101 → 0.0.102-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/reference/dashboard/workflow-test-runs.md +40 -17
- package/docs/reference/management-api/schema/action.md +67 -79
- package/docs/reference/management-api/schema/analytics-session.md +77 -94
- package/docs/reference/management-api/schema/analytics.md +16 -14
- package/docs/reference/management-api/schema/api-key.md +43 -51
- package/docs/reference/management-api/schema/auth.md +271 -404
- package/docs/reference/management-api/schema/cms-fields.md +348 -245
- package/docs/reference/management-api/schema/cms-models.md +369 -378
- package/docs/reference/management-api/schema/common.md +69 -130
- package/docs/reference/management-api/schema/condition.md +63 -74
- package/docs/reference/management-api/schema/design-system.md +59 -51
- package/docs/reference/management-api/schema/experience.md +388 -364
- package/docs/reference/management-api/schema/external-api.md +153 -171
- package/docs/reference/management-api/schema/feature.md +85 -103
- package/docs/reference/management-api/schema/feedback.md +27 -31
- package/docs/reference/management-api/schema/field.md +117 -135
- package/docs/reference/management-api/schema/index.md +184 -184
- package/docs/reference/management-api/schema/integration.md +72 -78
- package/docs/reference/management-api/schema/label.md +81 -137
- package/docs/reference/management-api/schema/lead.md +80 -119
- package/docs/reference/management-api/schema/mcp-server.md +73 -71
- package/docs/reference/management-api/schema/metric.md +6 -9
- package/docs/reference/management-api/schema/operation.md +17 -26
- package/docs/reference/management-api/schema/organization.md +198 -220
- package/docs/reference/management-api/schema/project.md +177 -186
- package/docs/reference/management-api/schema/report.md +69 -65
- package/docs/reference/management-api/schema/saved-view.md +71 -71
- package/docs/reference/management-api/schema/shopify.md +331 -204
- package/docs/reference/management-api/schema/step.md +72 -80
- package/docs/reference/management-api/schema/tenant-branding.md +48 -70
- package/docs/reference/management-api/schema/workbench.md +54 -66
- package/docs/reference/management-api/schema/workflow-run.md +66 -79
- package/docs/reference/management-api/schema/workflow.md +310 -353
- package/docs/reference/management-api/schema/workspace-version.md +212 -261
- package/docs/reference/management-api/schema/workspace.md +275 -328
- package/package.json +4 -4
|
@@ -6,13 +6,14 @@ generated: true
|
|
|
6
6
|
|
|
7
7
|
# Workflow schema
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
See [Management API schema](/reference/management-api/schema) for every domain, the endpoint and authentication.
|
|
10
10
|
|
|
11
11
|
## Queries
|
|
12
12
|
|
|
13
13
|
### `workflow`
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Reads a workflow.
|
|
16
|
+
Scope: `ORGANIZATION_WORKSPACE_READ`.
|
|
16
17
|
|
|
17
18
|
```graphql
|
|
18
19
|
workflow(id: ID!): Workflow @auth
|
|
@@ -20,8 +21,7 @@ workflow(id: ID!): Workflow @auth
|
|
|
20
21
|
|
|
21
22
|
### `workflowTools`
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
the editor to build its node palette.
|
|
24
|
+
Lists every tool a workflow node can run, with the arguments each takes.
|
|
25
25
|
|
|
26
26
|
```graphql
|
|
27
27
|
workflowTools: [WorkflowToolDefinition!]! @auth
|
|
@@ -29,8 +29,8 @@ workflowTools: [WorkflowToolDefinition!]! @auth
|
|
|
29
29
|
|
|
30
30
|
### `workflows`
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
Lists the workflows in a workspace. `search` matches a case-insensitive substring of the name.
|
|
33
|
+
Scope: `ORGANIZATION_WORKSPACE_READ`.
|
|
34
34
|
|
|
35
35
|
```graphql
|
|
36
36
|
workflows(first: Int, after: String, last: Int, before: String, workspaceId: ID!, search: String, sortKey: WorkflowSortKeys = NAME, reverse: Boolean = false): WorkflowConnection! @auth
|
|
@@ -40,7 +40,9 @@ workflows(first: Int, after: String, last: Int, before: String, workspaceId: ID!
|
|
|
40
40
|
|
|
41
41
|
### `workflowCreate`
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Creates a workflow in a workspace. The caller must hold the scopes the tools of the graph need,
|
|
44
|
+
as `Workflow.scopes` describes.
|
|
45
|
+
Scope: `ORGANIZATION_WORKSPACE_UPDATE`.
|
|
44
46
|
|
|
45
47
|
```graphql
|
|
46
48
|
workflowCreate(input: WorkflowCreateInput!): WorkflowCreatePayload! @auth
|
|
@@ -48,7 +50,8 @@ workflowCreate(input: WorkflowCreateInput!): WorkflowCreatePayload! @auth
|
|
|
48
50
|
|
|
49
51
|
### `workflowUpdate`
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
Updates the name or the node visit limit of a workflow.
|
|
54
|
+
Scope: `ORGANIZATION_WORKSPACE_UPDATE`.
|
|
52
55
|
|
|
53
56
|
```graphql
|
|
54
57
|
workflowUpdate(input: WorkflowUpdateInput!): WorkflowUpdatePayload! @auth
|
|
@@ -56,8 +59,9 @@ workflowUpdate(input: WorkflowUpdateInput!): WorkflowUpdatePayload! @auth
|
|
|
56
59
|
|
|
57
60
|
### `workflowGraphUpdate`
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
Updates the graph of a workflow with a change set, all or nothing. A refused change set writes
|
|
63
|
+
nothing and comes back in `errors`.
|
|
64
|
+
Scope: `ORGANIZATION_WORKSPACE_UPDATE`.
|
|
61
65
|
|
|
62
66
|
```graphql
|
|
63
67
|
workflowGraphUpdate(input: WorkflowGraphUpdateInput!): WorkflowGraphUpdatePayload! @auth
|
|
@@ -65,7 +69,9 @@ workflowGraphUpdate(input: WorkflowGraphUpdateInput!): WorkflowGraphUpdatePayloa
|
|
|
65
69
|
|
|
66
70
|
### `workflowDelete`
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
Deletes a workflow. Published versions keep their copy, and an action that started it can start
|
|
73
|
+
another workflow.
|
|
74
|
+
Scope: `ORGANIZATION_WORKSPACE_UPDATE`.
|
|
69
75
|
|
|
70
76
|
```graphql
|
|
71
77
|
workflowDelete(input: WorkflowDeleteInput!): WorkflowDeletePayload! @auth
|
|
@@ -73,10 +79,9 @@ workflowDelete(input: WorkflowDeleteInput!): WorkflowDeletePayload! @auth
|
|
|
73
79
|
|
|
74
80
|
### `workflowTestRun`
|
|
75
81
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
a refusal names each one missing.
|
|
82
|
+
Tests a workflow by walking its draft graph once, holding back every write. Nothing is stored,
|
|
83
|
+
and the caller must also hold every scope in `Workflow.scopes`.
|
|
84
|
+
Scope: `ORGANIZATION_WORKSPACE_UPDATE`.
|
|
80
85
|
|
|
81
86
|
```graphql
|
|
82
87
|
workflowTestRun(input: WorkflowTestRunInput!): WorkflowTestRunPayload! @auth
|
|
@@ -88,49 +93,43 @@ workflowTestRun(input: WorkflowTestRunInput!): WorkflowTestRunPayload! @auth
|
|
|
88
93
|
|
|
89
94
|
```graphql
|
|
90
95
|
"""
|
|
91
|
-
An automation
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
`workflowCreate` and `workflowGraphUpdate`.
|
|
96
|
+
An automation in a workspace: when its trigger fires, a run walks its graph of `nodes` and
|
|
97
|
+
`edges`. Publishing freezes a copy into the version, so an edit does not change a published
|
|
98
|
+
version.
|
|
95
99
|
"""
|
|
96
100
|
type Workflow {
|
|
97
|
-
"""
|
|
101
|
+
"""The ID of the workflow."""
|
|
98
102
|
id: ID!
|
|
99
|
-
"""
|
|
103
|
+
"""The name of the workflow."""
|
|
100
104
|
name: String!
|
|
101
|
-
"""
|
|
102
|
-
What causes this workflow to run. Chosen at create and fixed for the workflow's life.
|
|
103
|
-
"""
|
|
105
|
+
"""What starts a run. Set at creation and fixed after."""
|
|
104
106
|
trigger: WorkflowTrigger!
|
|
105
107
|
"""
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
The scopes a run acts with, set by the tools the graph names each time the graph is saved.
|
|
109
|
+
Saving needs each of them except `ORGANIZATION_LEADS_CREATE`, `ORGANIZATION_ACTION_RUNS_READ`,
|
|
110
|
+
`ORGANIZATION_ACTION_RUNS_UPDATE` and `ORGANIZATION_EXTERNAL_APIS_CALL`, which any author grants.
|
|
109
111
|
"""
|
|
110
112
|
scopes: [Scope!]!
|
|
111
|
-
"""
|
|
113
|
+
"""The nodes of the graph."""
|
|
112
114
|
nodes: [WorkflowNode!]!
|
|
113
|
-
"""
|
|
115
|
+
"""The edges of the graph."""
|
|
114
116
|
edges: [WorkflowEdge!]!
|
|
115
117
|
"""
|
|
116
|
-
|
|
117
|
-
|
|
118
|
+
The most times a run can visit one node, from 1 to 100; 10 by default. A run that reaches a node
|
|
119
|
+
this many times fails with `loop_limit_reached`.
|
|
118
120
|
"""
|
|
119
121
|
maxNodeVisits: Int!
|
|
120
|
-
"""When
|
|
122
|
+
"""When the workflow was created."""
|
|
121
123
|
createdAt: DateTime!
|
|
122
|
-
"""When
|
|
124
|
+
"""When the workflow last changed."""
|
|
123
125
|
updatedAt: DateTime!
|
|
124
|
-
"""The workspace
|
|
126
|
+
"""The workspace of the workflow."""
|
|
125
127
|
workspace: Workspace!
|
|
126
|
-
"""
|
|
127
|
-
The workspace ID this workflow belongs to (denormalised for query convenience).
|
|
128
|
-
"""
|
|
128
|
+
"""The ID of the workspace of the workflow."""
|
|
129
129
|
workspaceId: ID
|
|
130
130
|
"""
|
|
131
|
-
Every path
|
|
132
|
-
|
|
133
|
-
Read by the editor's reference picker and its condition builder.
|
|
131
|
+
Every path the templates and rules of the workflow can address: the trigger, the output of each
|
|
132
|
+
tool by `nodes.<id>`, and the run variables.
|
|
134
133
|
"""
|
|
135
134
|
references: WorkflowReferences!
|
|
136
135
|
}
|
|
@@ -139,13 +138,11 @@ type Workflow {
|
|
|
139
138
|
### `WorkflowTriggerType`
|
|
140
139
|
|
|
141
140
|
```graphql
|
|
142
|
-
"""
|
|
143
|
-
Which kind of trigger this is: what tells `WorkflowEventTrigger` and `WorkflowActionTrigger` apart.
|
|
144
|
-
"""
|
|
141
|
+
"""The kind of workflow trigger."""
|
|
145
142
|
enum WorkflowTriggerType {
|
|
146
143
|
"""A domain event starts the run."""
|
|
147
144
|
EVENT
|
|
148
|
-
"""
|
|
145
|
+
"""An action starts the run."""
|
|
149
146
|
ACTION
|
|
150
147
|
}
|
|
151
148
|
```
|
|
@@ -154,10 +151,8 @@ enum WorkflowTriggerType {
|
|
|
154
151
|
|
|
155
152
|
```graphql
|
|
156
153
|
"""
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
An action is reached through an `ACTION` trigger rather than an event, so that a
|
|
160
|
-
workflow names the one action it answers to.
|
|
154
|
+
The domain events that can start a workflow. An action starts a workflow through an `ACTION`
|
|
155
|
+
trigger.
|
|
161
156
|
"""
|
|
162
157
|
enum WorkflowEventName {
|
|
163
158
|
"""A workspace was created."""
|
|
@@ -168,11 +163,11 @@ enum WorkflowEventName {
|
|
|
168
163
|
WORKSPACE_DELETED
|
|
169
164
|
"""A workspace version was published."""
|
|
170
165
|
WORKSPACE_PUBLISHED
|
|
171
|
-
"""A feature was created."""
|
|
166
|
+
"""A feature flag was created."""
|
|
172
167
|
FEATURE_CREATED
|
|
173
|
-
"""A feature was updated."""
|
|
168
|
+
"""A feature flag was updated."""
|
|
174
169
|
FEATURE_UPDATED
|
|
175
|
-
"""A feature was deleted."""
|
|
170
|
+
"""A feature flag was deleted."""
|
|
176
171
|
FEATURE_DELETED
|
|
177
172
|
"""A step was deleted."""
|
|
178
173
|
STEP_DELETED
|
|
@@ -186,11 +181,9 @@ enum WorkflowEventName {
|
|
|
186
181
|
### `WorkflowTrigger`
|
|
187
182
|
|
|
188
183
|
```graphql
|
|
189
|
-
"""
|
|
190
|
-
What starts a workflow's run. Use `__typename` to discriminate the implementation.
|
|
191
|
-
"""
|
|
184
|
+
"""What starts the runs of a workflow. `__typename` names the kind."""
|
|
192
185
|
interface WorkflowTrigger {
|
|
193
|
-
"""
|
|
186
|
+
"""The kind of trigger."""
|
|
194
187
|
type: WorkflowTriggerType!
|
|
195
188
|
}
|
|
196
189
|
```
|
|
@@ -198,8 +191,9 @@ interface WorkflowTrigger {
|
|
|
198
191
|
### `WorkflowEventTrigger`
|
|
199
192
|
|
|
200
193
|
```graphql
|
|
201
|
-
"""A
|
|
194
|
+
"""A trigger that starts a run on a domain event."""
|
|
202
195
|
type WorkflowEventTrigger implements WorkflowTrigger {
|
|
196
|
+
"""The kind of trigger."""
|
|
203
197
|
type: WorkflowTriggerType!
|
|
204
198
|
"""The event that starts the run."""
|
|
205
199
|
eventName: WorkflowEventName!
|
|
@@ -210,15 +204,14 @@ type WorkflowEventTrigger implements WorkflowTrigger {
|
|
|
210
204
|
|
|
211
205
|
```graphql
|
|
212
206
|
"""
|
|
213
|
-
A
|
|
207
|
+
A trigger that starts a run when an action runs. An action starts at most one workflow.
|
|
214
208
|
"""
|
|
215
209
|
type WorkflowActionTrigger implements WorkflowTrigger {
|
|
210
|
+
"""The kind of trigger."""
|
|
216
211
|
type: WorkflowTriggerType!
|
|
217
|
-
"""ID of the action
|
|
212
|
+
"""The ID of the action."""
|
|
218
213
|
actionId: ID!
|
|
219
|
-
"""
|
|
220
|
-
The action whose run starts the workflow. Null once that action is deleted.
|
|
221
|
-
"""
|
|
214
|
+
"""The action. Null when the action was deleted."""
|
|
222
215
|
action: Action
|
|
223
216
|
}
|
|
224
217
|
```
|
|
@@ -226,16 +219,14 @@ type WorkflowActionTrigger implements WorkflowTrigger {
|
|
|
226
219
|
### `WorkflowTriggerInput`
|
|
227
220
|
|
|
228
221
|
```graphql
|
|
229
|
-
"""
|
|
230
|
-
Input form of a workflow's trigger. Only the field matching `type` is read.
|
|
231
|
-
"""
|
|
222
|
+
"""A workflow trigger to set. Only the field that matches `type` is read."""
|
|
232
223
|
input WorkflowTriggerInput {
|
|
233
|
-
"""
|
|
224
|
+
"""The kind of trigger."""
|
|
234
225
|
type: WorkflowTriggerType!
|
|
235
|
-
"""
|
|
226
|
+
"""The event that starts the run, for an `EVENT` trigger."""
|
|
236
227
|
eventName: WorkflowEventName
|
|
237
228
|
"""
|
|
238
|
-
|
|
229
|
+
The ID of an action that starts no workflow yet, for an `ACTION` trigger.
|
|
239
230
|
"""
|
|
240
231
|
actionId: ID
|
|
241
232
|
}
|
|
@@ -244,15 +235,15 @@ input WorkflowTriggerInput {
|
|
|
244
235
|
### `WorkflowNodeType`
|
|
245
236
|
|
|
246
237
|
```graphql
|
|
247
|
-
"""
|
|
238
|
+
"""The kind of workflow node."""
|
|
248
239
|
enum WorkflowNodeType {
|
|
249
240
|
"""Where a run starts. Exactly one per workflow."""
|
|
250
241
|
ORIGIN
|
|
251
|
-
"""
|
|
242
|
+
"""Runs a tool."""
|
|
252
243
|
TOOL
|
|
253
|
-
"""
|
|
244
|
+
"""Chooses a branch by a rule."""
|
|
254
245
|
CONDITION
|
|
255
|
-
"""
|
|
246
|
+
"""Pauses the run for a duration."""
|
|
256
247
|
SLEEP
|
|
257
248
|
}
|
|
258
249
|
```
|
|
@@ -260,16 +251,13 @@ enum WorkflowNodeType {
|
|
|
260
251
|
### `WorkflowEdgeHandle`
|
|
261
252
|
|
|
262
253
|
```graphql
|
|
263
|
-
"""
|
|
264
|
-
Edge handle for `WorkflowConditionNode` outgoing edges. Picks which branch the
|
|
265
|
-
run follows when the condition resolves true / false.
|
|
266
|
-
"""
|
|
254
|
+
"""The exit an edge leaves a node by."""
|
|
267
255
|
enum WorkflowEdgeHandle {
|
|
268
|
-
"""The
|
|
256
|
+
"""The branch a condition takes when its rule is true."""
|
|
269
257
|
TRUE
|
|
270
|
-
"""The
|
|
258
|
+
"""The branch a condition takes when its rule is false."""
|
|
271
259
|
FALSE
|
|
272
|
-
"""
|
|
260
|
+
"""The exit a run takes when a tool fails."""
|
|
273
261
|
ERROR
|
|
274
262
|
}
|
|
275
263
|
```
|
|
@@ -277,17 +265,13 @@ enum WorkflowEdgeHandle {
|
|
|
277
265
|
### `WorkflowNode`
|
|
278
266
|
|
|
279
267
|
```graphql
|
|
280
|
-
"""
|
|
281
|
-
A node in the workflow graph. Use `__typename` to discriminate the implementation.
|
|
282
|
-
"""
|
|
268
|
+
"""A node in the graph of a workflow. `__typename` names the kind."""
|
|
283
269
|
interface WorkflowNode {
|
|
284
|
-
"""
|
|
285
|
-
Stable node identifier within the graph, and the run's durable step id.
|
|
286
|
-
"""
|
|
270
|
+
"""The ID of the node, unique in the graph."""
|
|
287
271
|
id: ID!
|
|
288
|
-
"""
|
|
272
|
+
"""The kind of node."""
|
|
289
273
|
type: WorkflowNodeType!
|
|
290
|
-
"""
|
|
274
|
+
"""The position of the node on the canvas."""
|
|
291
275
|
position: Position!
|
|
292
276
|
}
|
|
293
277
|
```
|
|
@@ -295,14 +279,13 @@ interface WorkflowNode {
|
|
|
295
279
|
### `WorkflowOriginNode`
|
|
296
280
|
|
|
297
281
|
```graphql
|
|
298
|
-
"""
|
|
299
|
-
Where a run starts. Exactly one per workflow.
|
|
300
|
-
|
|
301
|
-
It carries no trigger: what starts a workflow is the workflow's own `trigger`.
|
|
302
|
-
"""
|
|
282
|
+
"""The node where every run starts. Exactly one per workflow."""
|
|
303
283
|
type WorkflowOriginNode implements WorkflowNode {
|
|
284
|
+
"""The ID of the node, unique in the graph."""
|
|
304
285
|
id: ID!
|
|
286
|
+
"""The kind of node."""
|
|
305
287
|
type: WorkflowNodeType!
|
|
288
|
+
"""The position of the node on the canvas."""
|
|
306
289
|
position: Position!
|
|
307
290
|
}
|
|
308
291
|
```
|
|
@@ -310,14 +293,17 @@ type WorkflowOriginNode implements WorkflowNode {
|
|
|
310
293
|
### `WorkflowToolNode`
|
|
311
294
|
|
|
312
295
|
```graphql
|
|
313
|
-
"""A node that runs a
|
|
296
|
+
"""A node that runs a tool."""
|
|
314
297
|
type WorkflowToolNode implements WorkflowNode {
|
|
298
|
+
"""The ID of the node, unique in the graph."""
|
|
315
299
|
id: ID!
|
|
300
|
+
"""The kind of node."""
|
|
316
301
|
type: WorkflowNodeType!
|
|
302
|
+
"""The position of the node on the canvas."""
|
|
317
303
|
position: Position!
|
|
318
|
-
"""
|
|
304
|
+
"""The name of the tool."""
|
|
319
305
|
tool: String!
|
|
320
|
-
"""
|
|
306
|
+
"""The values of the arguments of the tool."""
|
|
321
307
|
configuration: JSON!
|
|
322
308
|
}
|
|
323
309
|
```
|
|
@@ -326,13 +312,16 @@ type WorkflowToolNode implements WorkflowNode {
|
|
|
326
312
|
|
|
327
313
|
```graphql
|
|
328
314
|
"""
|
|
329
|
-
A node that
|
|
315
|
+
A node that chooses a branch. Its outgoing edges carry `sourceHandle` `TRUE` or `FALSE`.
|
|
330
316
|
"""
|
|
331
317
|
type WorkflowConditionNode implements WorkflowNode {
|
|
318
|
+
"""The ID of the node, unique in the graph."""
|
|
332
319
|
id: ID!
|
|
320
|
+
"""The kind of node."""
|
|
333
321
|
type: WorkflowNodeType!
|
|
322
|
+
"""The position of the node on the canvas."""
|
|
334
323
|
position: Position!
|
|
335
|
-
"""The rule
|
|
324
|
+
"""The rule the node evaluates."""
|
|
336
325
|
logic: JSON!
|
|
337
326
|
}
|
|
338
327
|
```
|
|
@@ -340,13 +329,16 @@ type WorkflowConditionNode implements WorkflowNode {
|
|
|
340
329
|
### `WorkflowSleepNode`
|
|
341
330
|
|
|
342
331
|
```graphql
|
|
343
|
-
"""A node that
|
|
332
|
+
"""A node that pauses the run."""
|
|
344
333
|
type WorkflowSleepNode implements WorkflowNode {
|
|
334
|
+
"""The ID of the node, unique in the graph."""
|
|
345
335
|
id: ID!
|
|
336
|
+
"""The kind of node."""
|
|
346
337
|
type: WorkflowNodeType!
|
|
338
|
+
"""The position of the node on the canvas."""
|
|
347
339
|
position: Position!
|
|
348
340
|
"""
|
|
349
|
-
|
|
341
|
+
The length of the pause, as a count and a unit such as `500ms`, `30s`, `5m`, `2h` or `1d`. At most one day.
|
|
350
342
|
"""
|
|
351
343
|
duration: String!
|
|
352
344
|
}
|
|
@@ -355,16 +347,16 @@ type WorkflowSleepNode implements WorkflowNode {
|
|
|
355
347
|
### `WorkflowEdge`
|
|
356
348
|
|
|
357
349
|
```graphql
|
|
358
|
-
"""
|
|
350
|
+
"""A connection between two nodes in the graph of a workflow."""
|
|
359
351
|
type WorkflowEdge {
|
|
360
|
-
"""
|
|
352
|
+
"""The ID of the edge, unique in the graph."""
|
|
361
353
|
id: ID!
|
|
362
|
-
"""
|
|
354
|
+
"""The ID of the node the edge leaves."""
|
|
363
355
|
sourceNodeId: ID!
|
|
364
|
-
"""
|
|
356
|
+
"""The ID of the node the edge arrives at."""
|
|
365
357
|
destinationNodeId: ID!
|
|
366
358
|
"""
|
|
367
|
-
The exit the edge leaves by:
|
|
359
|
+
The exit the edge leaves by: `TRUE` or `FALSE` from a condition, `ERROR` from a tool. Null for any other exit.
|
|
368
360
|
"""
|
|
369
361
|
sourceHandle: WorkflowEdgeHandle
|
|
370
362
|
}
|
|
@@ -373,17 +365,12 @@ type WorkflowEdge {
|
|
|
373
365
|
### `WorkflowToolNodeInput`
|
|
374
366
|
|
|
375
367
|
```graphql
|
|
376
|
-
"""
|
|
377
|
-
The data a `TOOL` node carries: which registered tool runs, and with what.
|
|
378
|
-
|
|
379
|
-
A tool's arguments belong to one node in one workflow, so they sit on the node
|
|
380
|
-
rather than on an entity of their own.
|
|
381
|
-
"""
|
|
368
|
+
"""The data of a `TOOL` node: the tool and its arguments."""
|
|
382
369
|
input WorkflowToolNodeInput {
|
|
383
|
-
"""
|
|
370
|
+
"""The name of a tool that `workflowTools` lists."""
|
|
384
371
|
name: String!
|
|
385
372
|
"""
|
|
386
|
-
|
|
373
|
+
The values of the arguments of the tool. Omit for a tool with no arguments.
|
|
387
374
|
"""
|
|
388
375
|
configuration: JSON
|
|
389
376
|
}
|
|
@@ -392,11 +379,9 @@ input WorkflowToolNodeInput {
|
|
|
392
379
|
### `WorkflowConditionNodeInput`
|
|
393
380
|
|
|
394
381
|
```graphql
|
|
395
|
-
"""The data a `CONDITION` node
|
|
382
|
+
"""The data of a `CONDITION` node: the rule that chooses the branch."""
|
|
396
383
|
input WorkflowConditionNodeInput {
|
|
397
|
-
"""
|
|
398
|
-
The rule evaluated when the run reaches the node. Outgoing edges carry `sourceHandle`.
|
|
399
|
-
"""
|
|
384
|
+
"""The rule the node evaluates."""
|
|
400
385
|
logic: JSON!
|
|
401
386
|
}
|
|
402
387
|
```
|
|
@@ -404,9 +389,11 @@ input WorkflowConditionNodeInput {
|
|
|
404
389
|
### `WorkflowSleepNodeInput`
|
|
405
390
|
|
|
406
391
|
```graphql
|
|
407
|
-
"""The data a `SLEEP` node
|
|
392
|
+
"""The data of a `SLEEP` node: the length of the pause."""
|
|
408
393
|
input WorkflowSleepNodeInput {
|
|
409
|
-
"""
|
|
394
|
+
"""
|
|
395
|
+
A count and a unit, such as `500ms`, `30s`, `5m`, `2h` or `1d`. At most one day.
|
|
396
|
+
"""
|
|
410
397
|
duration: String!
|
|
411
398
|
}
|
|
412
399
|
```
|
|
@@ -415,21 +402,20 @@ input WorkflowSleepNodeInput {
|
|
|
415
402
|
|
|
416
403
|
```graphql
|
|
417
404
|
"""
|
|
418
|
-
|
|
419
|
-
a position; the block matching its kind carries the rest. `ORIGIN` has no block.
|
|
405
|
+
A node to set in a graph. The block that matches `type` carries its data; `ORIGIN` has none.
|
|
420
406
|
"""
|
|
421
407
|
input WorkflowNodeInput {
|
|
422
|
-
"""
|
|
408
|
+
"""The ID of the node, unique in the graph."""
|
|
423
409
|
id: ID!
|
|
424
|
-
"""
|
|
410
|
+
"""The kind of node."""
|
|
425
411
|
type: WorkflowNodeType!
|
|
426
|
-
"""
|
|
412
|
+
"""The position of the node on the canvas."""
|
|
427
413
|
position: PositionInput!
|
|
428
|
-
"""
|
|
414
|
+
"""The tool and its arguments, for a `TOOL` node."""
|
|
429
415
|
tool: WorkflowToolNodeInput
|
|
430
|
-
"""
|
|
416
|
+
"""The rule, for a `CONDITION` node."""
|
|
431
417
|
condition: WorkflowConditionNodeInput
|
|
432
|
-
"""
|
|
418
|
+
"""The length of the pause, for a `SLEEP` node."""
|
|
433
419
|
sleep: WorkflowSleepNodeInput
|
|
434
420
|
}
|
|
435
421
|
```
|
|
@@ -437,16 +423,16 @@ input WorkflowNodeInput {
|
|
|
437
423
|
### `WorkflowEdgeInput`
|
|
438
424
|
|
|
439
425
|
```graphql
|
|
440
|
-
"""
|
|
426
|
+
"""An edge to set in a graph."""
|
|
441
427
|
input WorkflowEdgeInput {
|
|
442
|
-
"""
|
|
428
|
+
"""The ID of the edge, unique in the graph."""
|
|
443
429
|
id: ID!
|
|
444
|
-
"""
|
|
430
|
+
"""The ID of the node the edge leaves."""
|
|
445
431
|
sourceNodeId: ID!
|
|
446
|
-
"""
|
|
432
|
+
"""The ID of the node the edge arrives at."""
|
|
447
433
|
destinationNodeId: ID!
|
|
448
434
|
"""
|
|
449
|
-
The exit the edge leaves by:
|
|
435
|
+
The exit the edge leaves by: `TRUE` or `FALSE` from a condition, `ERROR` from a tool.
|
|
450
436
|
"""
|
|
451
437
|
sourceHandle: WorkflowEdgeHandle
|
|
452
438
|
}
|
|
@@ -456,29 +442,27 @@ input WorkflowEdgeInput {
|
|
|
456
442
|
|
|
457
443
|
```graphql
|
|
458
444
|
"""
|
|
459
|
-
The type
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
literal. A template that is the whole value keeps the type of what it names; one mixed with
|
|
463
|
-
text renders to text and is read as the declared type when the node runs.
|
|
445
|
+
The type of a tool argument. Every argument also takes a workflow template such as
|
|
446
|
+
`{{ nodes.n1.leads[0].id }}`: a template that is the whole value keeps the type of what it names,
|
|
447
|
+
and one mixed with text is read as the declared type when the node runs.
|
|
464
448
|
"""
|
|
465
449
|
enum WorkflowArgumentType {
|
|
466
|
-
"""
|
|
450
|
+
"""Text."""
|
|
467
451
|
STRING
|
|
468
|
-
"""A
|
|
452
|
+
"""A number."""
|
|
469
453
|
NUMBER
|
|
470
|
-
"""
|
|
454
|
+
"""True or false."""
|
|
471
455
|
BOOLEAN
|
|
472
456
|
"""Any JSON value."""
|
|
473
457
|
JSON
|
|
474
458
|
"""
|
|
475
|
-
A query
|
|
476
|
-
|
|
459
|
+
A query in the query language of one resource. A template can stand only in the value of a
|
|
460
|
+
clause.
|
|
477
461
|
"""
|
|
478
462
|
QUERY
|
|
479
463
|
"""
|
|
480
|
-
|
|
481
|
-
|
|
464
|
+
A reference to one record of the type `resourceType` names, which resolves to the ID of the
|
|
465
|
+
record before the tool runs.
|
|
482
466
|
"""
|
|
483
467
|
REFERENCE
|
|
484
468
|
}
|
|
@@ -487,36 +471,31 @@ enum WorkflowArgumentType {
|
|
|
487
471
|
### `WorkflowToolArgument`
|
|
488
472
|
|
|
489
473
|
```graphql
|
|
490
|
-
"""
|
|
474
|
+
"""An argument a tool takes."""
|
|
491
475
|
type WorkflowToolArgument {
|
|
492
|
-
"""Argument name, as it appears in a tool node's `configuration`."""
|
|
493
|
-
name: String!
|
|
494
476
|
"""
|
|
495
|
-
The
|
|
477
|
+
The name of the argument, as a key in the `configuration` of a tool node.
|
|
496
478
|
"""
|
|
479
|
+
name: String!
|
|
480
|
+
"""The display name of the argument, such as `Lead`."""
|
|
497
481
|
label: String!
|
|
498
|
-
"""The type the argument
|
|
482
|
+
"""The type of the argument."""
|
|
499
483
|
type: WorkflowArgumentType!
|
|
500
484
|
"""
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
free-form JSON. Unlike `type` this vocabulary is open: an editor that does not know the
|
|
504
|
-
shape edits the value as raw JSON.
|
|
485
|
+
The structured shape of a `JSON` argument, such as `labels`. Null for free-form JSON. The set of
|
|
486
|
+
shapes can grow; edit an unknown shape as raw JSON.
|
|
505
487
|
"""
|
|
506
488
|
shape: String
|
|
507
489
|
"""
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
vocabulary is open, and it is matched against `WorkflowReferenceEntry.resourceType` by
|
|
511
|
-
equality.
|
|
490
|
+
The resource type a `REFERENCE` argument names, such as `Lead`, matched by equality against
|
|
491
|
+
`WorkflowReferenceEntry.resourceType`. Null for other types.
|
|
512
492
|
"""
|
|
513
493
|
resourceType: String
|
|
514
494
|
"""
|
|
515
|
-
|
|
516
|
-
than free text. Null when the argument takes any string.
|
|
495
|
+
The values a `STRING` argument accepts. Null when it accepts any string.
|
|
517
496
|
"""
|
|
518
497
|
options: [String!]
|
|
519
|
-
"""Whether the argument
|
|
498
|
+
"""Whether the argument is required."""
|
|
520
499
|
required: Boolean!
|
|
521
500
|
"""What the argument is for."""
|
|
522
501
|
description: String!
|
|
@@ -526,19 +505,18 @@ type WorkflowToolArgument {
|
|
|
526
505
|
### `WorkflowToolDefinition`
|
|
527
506
|
|
|
528
507
|
```graphql
|
|
529
|
-
"""A tool a workflow node
|
|
508
|
+
"""A tool a workflow node can run."""
|
|
530
509
|
type WorkflowToolDefinition {
|
|
531
|
-
"""
|
|
510
|
+
"""The name a tool node uses."""
|
|
532
511
|
name: String!
|
|
533
|
-
"""The
|
|
512
|
+
"""The display name of the tool, such as `External endpoint`."""
|
|
534
513
|
label: String!
|
|
535
514
|
"""What the tool does."""
|
|
536
515
|
description: String!
|
|
537
|
-
"""The arguments
|
|
516
|
+
"""The arguments the tool takes."""
|
|
538
517
|
arguments: [WorkflowToolArgument!]!
|
|
539
518
|
"""
|
|
540
|
-
The scopes a run
|
|
541
|
-
no data. Read by the editor to show which tools the viewer can place.
|
|
519
|
+
The scopes a run needs to run the tool. Empty for a tool that touches no data.
|
|
542
520
|
"""
|
|
543
521
|
scopes: [Scope!]!
|
|
544
522
|
}
|
|
@@ -547,20 +525,20 @@ type WorkflowToolDefinition {
|
|
|
547
525
|
### `WorkflowReferenceType`
|
|
548
526
|
|
|
549
527
|
```graphql
|
|
550
|
-
"""
|
|
528
|
+
"""The type of the value at a reference path."""
|
|
551
529
|
enum WorkflowReferenceType {
|
|
552
|
-
"""
|
|
530
|
+
"""Text."""
|
|
553
531
|
STRING
|
|
554
|
-
"""A
|
|
532
|
+
"""A number."""
|
|
555
533
|
NUMBER
|
|
556
|
-
"""
|
|
534
|
+
"""True or false."""
|
|
557
535
|
BOOLEAN
|
|
558
|
-
"""Any JSON value
|
|
536
|
+
"""Any JSON value. Paths beneath it are not listed."""
|
|
559
537
|
JSON
|
|
560
|
-
"""A record
|
|
538
|
+
"""A record, with its fields listed beneath it."""
|
|
561
539
|
OBJECT
|
|
562
540
|
"""
|
|
563
|
-
A list
|
|
541
|
+
A list addressed by index. `.0.` entries describe each item, and `.truncated` says whether the list was cut short.
|
|
564
542
|
"""
|
|
565
543
|
COLLECTION
|
|
566
544
|
}
|
|
@@ -570,28 +548,24 @@ enum WorkflowReferenceType {
|
|
|
570
548
|
|
|
571
549
|
```graphql
|
|
572
550
|
"""
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
`action.responses.email` beneath `trigger`, `leads.0.id` beneath `nodes.<id>`, and
|
|
577
|
-
`current.startedAt` from the root for a variable. A template writes an index as
|
|
578
|
-
`leads[0].id`.
|
|
551
|
+
A path that the templates and rules of a workflow can address. The path is relative to its owner,
|
|
552
|
+
in dotted form: `action.responses.email` beneath `trigger`, `leads.0.id` beneath `nodes.<id>`. A
|
|
553
|
+
template writes an index as `leads[0].id`.
|
|
579
554
|
"""
|
|
580
555
|
type WorkflowReferenceEntry {
|
|
581
556
|
"""The path, relative to its owner."""
|
|
582
557
|
path: String!
|
|
583
|
-
"""
|
|
558
|
+
"""The type of the value."""
|
|
584
559
|
type: WorkflowReferenceType!
|
|
585
|
-
"""
|
|
560
|
+
"""The display name of the path."""
|
|
586
561
|
label: String!
|
|
587
|
-
"""
|
|
562
|
+
"""What the path holds."""
|
|
588
563
|
description: String!
|
|
589
|
-
"""
|
|
564
|
+
"""An example value."""
|
|
590
565
|
example: JSON!
|
|
591
566
|
"""
|
|
592
|
-
The resource type
|
|
593
|
-
|
|
594
|
-
`WorkflowToolArgument.resourceType` by equality.
|
|
567
|
+
The resource type of a path that names a whole record or its ID, such as `Lead`, matched by
|
|
568
|
+
equality against `WorkflowToolArgument.resourceType`. Null for other paths.
|
|
595
569
|
"""
|
|
596
570
|
resourceType: String
|
|
597
571
|
}
|
|
@@ -601,12 +575,12 @@ type WorkflowReferenceEntry {
|
|
|
601
575
|
|
|
602
576
|
```graphql
|
|
603
577
|
"""
|
|
604
|
-
The paths one tool
|
|
578
|
+
The paths the output of one tool adds beneath `nodes.<id>` for each node that runs it.
|
|
605
579
|
"""
|
|
606
580
|
type WorkflowToolReferences {
|
|
607
|
-
"""The
|
|
581
|
+
"""The name of the tool."""
|
|
608
582
|
tool: String!
|
|
609
|
-
"""The
|
|
583
|
+
"""The paths, relative to the node."""
|
|
610
584
|
entries: [WorkflowReferenceEntry!]!
|
|
611
585
|
}
|
|
612
586
|
```
|
|
@@ -615,24 +589,21 @@ type WorkflowToolReferences {
|
|
|
615
589
|
|
|
616
590
|
```graphql
|
|
617
591
|
"""
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
fields, and the run's variables. The editor filters the tool outputs to the nodes upstream of
|
|
621
|
-
the one being edited.
|
|
592
|
+
Every path the templates and rules of one workflow can address: the trigger, the output of each
|
|
593
|
+
tool with its shapes resolved against the fields of the workspace, and the run variables.
|
|
622
594
|
"""
|
|
623
595
|
type WorkflowReferences {
|
|
624
596
|
"""
|
|
625
|
-
|
|
597
|
+
The paths beneath `trigger`: `action` and its responses for an `ACTION` trigger, `event` for an `EVENT` trigger.
|
|
626
598
|
"""
|
|
627
599
|
trigger: [WorkflowReferenceEntry!]!
|
|
628
|
-
"""
|
|
600
|
+
"""The paths beneath `nodes.<id>`, by the tool the node runs."""
|
|
629
601
|
tools: [WorkflowToolReferences!]!
|
|
630
602
|
"""
|
|
631
|
-
The run
|
|
632
|
-
`run.
|
|
633
|
-
`
|
|
634
|
-
|
|
635
|
-
beneath these three roots.
|
|
603
|
+
The run variables, the same on every workflow, each written from its root: `run.id`,
|
|
604
|
+
`run.startedAt`, `run.preview`, `workflow.id`, `workflow.name`, `current.id`,
|
|
605
|
+
`current.startedAt` and `current.visit`. Times are in UTC. A save refuses any other path beneath
|
|
606
|
+
these three roots.
|
|
636
607
|
"""
|
|
637
608
|
variables: [WorkflowReferenceEntry!]!
|
|
638
609
|
}
|
|
@@ -641,11 +612,11 @@ type WorkflowReferences {
|
|
|
641
612
|
### `WorkflowChangesInput`
|
|
642
613
|
|
|
643
614
|
```graphql
|
|
644
|
-
"""
|
|
615
|
+
"""The changes to a workflow graph."""
|
|
645
616
|
input WorkflowChangesInput {
|
|
646
|
-
"""
|
|
617
|
+
"""The changes to nodes."""
|
|
647
618
|
nodes: WorkflowNodeChangesInput
|
|
648
|
-
"""
|
|
619
|
+
"""The changes to edges."""
|
|
649
620
|
edges: WorkflowEdgeChangesInput
|
|
650
621
|
}
|
|
651
622
|
```
|
|
@@ -653,17 +624,17 @@ input WorkflowChangesInput {
|
|
|
653
624
|
### `WorkflowNodeChangesInput`
|
|
654
625
|
|
|
655
626
|
```graphql
|
|
656
|
-
"""
|
|
627
|
+
"""The changes to the nodes of a workflow graph."""
|
|
657
628
|
input WorkflowNodeChangesInput {
|
|
658
|
-
"""
|
|
659
|
-
Nodes to create, each named by its `clientId` until the server mints its id.
|
|
660
|
-
"""
|
|
629
|
+
"""The nodes to create, each named by its `clientId`."""
|
|
661
630
|
create: [WorkflowNodeCreateData!]
|
|
662
631
|
"""
|
|
663
|
-
|
|
632
|
+
The changes to existing nodes. An ID the graph does not have is ignored.
|
|
664
633
|
"""
|
|
665
634
|
update: [WorkflowNodeUpdateData!]
|
|
666
|
-
"""
|
|
635
|
+
"""
|
|
636
|
+
The IDs of the nodes to delete. The edges of a deleted node are deleted with it.
|
|
637
|
+
"""
|
|
667
638
|
delete: [ID!]
|
|
668
639
|
}
|
|
669
640
|
```
|
|
@@ -671,24 +642,22 @@ input WorkflowNodeChangesInput {
|
|
|
671
642
|
### `WorkflowNodeCreateData`
|
|
672
643
|
|
|
673
644
|
```graphql
|
|
674
|
-
"""
|
|
675
|
-
A node to add to the graph. The block matching `type` carries its data.
|
|
676
|
-
"""
|
|
645
|
+
"""A node to create. The block that matches `type` carries its data."""
|
|
677
646
|
input WorkflowNodeCreateData {
|
|
678
647
|
"""
|
|
679
|
-
|
|
680
|
-
|
|
648
|
+
An ID of your choice, which edges in the same change set can name. The result maps it to the
|
|
649
|
+
node ID in `idMappings`.
|
|
681
650
|
"""
|
|
682
651
|
clientId: ID!
|
|
683
|
-
"""
|
|
652
|
+
"""The kind of node."""
|
|
684
653
|
type: WorkflowNodeType!
|
|
685
|
-
"""
|
|
654
|
+
"""The position of the node on the canvas."""
|
|
686
655
|
position: PositionInput!
|
|
687
|
-
"""
|
|
656
|
+
"""The tool and its arguments, for a `TOOL` node."""
|
|
688
657
|
tool: WorkflowToolNodeInput
|
|
689
|
-
"""
|
|
658
|
+
"""The rule, for a `CONDITION` node."""
|
|
690
659
|
condition: WorkflowConditionNodeInput
|
|
691
|
-
"""
|
|
660
|
+
"""The length of the pause, for a `SLEEP` node."""
|
|
692
661
|
sleep: WorkflowSleepNodeInput
|
|
693
662
|
}
|
|
694
663
|
```
|
|
@@ -697,19 +666,19 @@ input WorkflowNodeCreateData {
|
|
|
697
666
|
|
|
698
667
|
```graphql
|
|
699
668
|
"""
|
|
700
|
-
|
|
701
|
-
|
|
669
|
+
A change to an existing node. Omit a field to keep its value; a kind block replaces all the data
|
|
670
|
+
of that kind.
|
|
702
671
|
"""
|
|
703
672
|
input WorkflowNodeUpdateData {
|
|
704
|
-
"""
|
|
673
|
+
"""The ID of the node."""
|
|
705
674
|
id: ID!
|
|
706
|
-
"""
|
|
675
|
+
"""The position of the node on the canvas."""
|
|
707
676
|
position: PositionInput
|
|
708
|
-
"""
|
|
677
|
+
"""The tool and its arguments, for a `TOOL` node."""
|
|
709
678
|
tool: WorkflowToolNodeInput
|
|
710
|
-
"""
|
|
679
|
+
"""The rule, for a `CONDITION` node."""
|
|
711
680
|
condition: WorkflowConditionNodeInput
|
|
712
|
-
"""
|
|
681
|
+
"""The length of the pause, for a `SLEEP` node."""
|
|
713
682
|
sleep: WorkflowSleepNodeInput
|
|
714
683
|
}
|
|
715
684
|
```
|
|
@@ -717,17 +686,15 @@ input WorkflowNodeUpdateData {
|
|
|
717
686
|
### `WorkflowEdgeChangesInput`
|
|
718
687
|
|
|
719
688
|
```graphql
|
|
720
|
-
"""
|
|
689
|
+
"""The changes to the edges of a workflow graph."""
|
|
721
690
|
input WorkflowEdgeChangesInput {
|
|
722
|
-
"""
|
|
723
|
-
Edges to create, each named by its `clientId` until the server mints its id.
|
|
724
|
-
"""
|
|
691
|
+
"""The edges to create, each named by its `clientId`."""
|
|
725
692
|
create: [WorkflowEdgeCreateInput!]
|
|
726
693
|
"""
|
|
727
|
-
|
|
694
|
+
The changes to existing edges. An ID the graph does not have is ignored.
|
|
728
695
|
"""
|
|
729
696
|
update: [WorkflowEdgeUpdateInput!]
|
|
730
|
-
"""
|
|
697
|
+
"""The IDs of the edges to delete."""
|
|
731
698
|
delete: [ID!]
|
|
732
699
|
}
|
|
733
700
|
```
|
|
@@ -736,31 +703,32 @@ input WorkflowEdgeChangesInput {
|
|
|
736
703
|
|
|
737
704
|
```graphql
|
|
738
705
|
"""
|
|
739
|
-
An edge to
|
|
706
|
+
An edge to create. Name each end once: by node ID, or by the `clientId` of a node created in the
|
|
707
|
+
same change set.
|
|
740
708
|
"""
|
|
741
709
|
input WorkflowEdgeCreateInput {
|
|
742
710
|
"""
|
|
743
|
-
|
|
711
|
+
An ID of your choice. The result maps it to the edge ID in `idMappings`.
|
|
744
712
|
"""
|
|
745
713
|
clientId: ID!
|
|
746
714
|
"""
|
|
747
|
-
|
|
715
|
+
The ID of the node the edge leaves. Not allowed with `sourceNodeClientId`.
|
|
748
716
|
"""
|
|
749
717
|
sourceNodeId: ID
|
|
750
718
|
"""
|
|
751
|
-
|
|
719
|
+
The `clientId` of a new node the edge leaves. Not allowed with `sourceNodeId`.
|
|
752
720
|
"""
|
|
753
721
|
sourceNodeClientId: ID
|
|
754
722
|
"""
|
|
755
|
-
|
|
723
|
+
The ID of the node the edge arrives at. Not allowed with `destinationNodeClientId`.
|
|
756
724
|
"""
|
|
757
725
|
destinationNodeId: ID
|
|
758
726
|
"""
|
|
759
|
-
|
|
727
|
+
The `clientId` of a new node the edge arrives at. Not allowed with `destinationNodeId`.
|
|
760
728
|
"""
|
|
761
729
|
destinationNodeClientId: ID
|
|
762
730
|
"""
|
|
763
|
-
The exit the edge leaves by:
|
|
731
|
+
The exit the edge leaves by: `TRUE` or `FALSE` from a condition, `ERROR` from a tool.
|
|
764
732
|
"""
|
|
765
733
|
sourceHandle: WorkflowEdgeHandle
|
|
766
734
|
}
|
|
@@ -769,17 +737,17 @@ input WorkflowEdgeCreateInput {
|
|
|
769
737
|
### `WorkflowEdgeUpdateInput`
|
|
770
738
|
|
|
771
739
|
```graphql
|
|
772
|
-
"""
|
|
773
|
-
Fields to merge into an existing edge. Omit a field to leave it unchanged.
|
|
774
|
-
"""
|
|
740
|
+
"""A change to an existing edge. Omit a field to keep its value."""
|
|
775
741
|
input WorkflowEdgeUpdateInput {
|
|
776
|
-
"""
|
|
742
|
+
"""The ID of the edge."""
|
|
777
743
|
id: ID!
|
|
778
|
-
"""
|
|
744
|
+
"""The ID of the node the edge leaves."""
|
|
779
745
|
sourceNodeId: ID
|
|
780
|
-
"""
|
|
746
|
+
"""The ID of the node the edge arrives at."""
|
|
781
747
|
destinationNodeId: ID
|
|
782
|
-
"""
|
|
748
|
+
"""
|
|
749
|
+
The exit the edge leaves by: `TRUE` or `FALSE` from a condition, `ERROR` from a tool.
|
|
750
|
+
"""
|
|
783
751
|
sourceHandle: WorkflowEdgeHandle
|
|
784
752
|
}
|
|
785
753
|
```
|
|
@@ -787,19 +755,15 @@ input WorkflowEdgeUpdateInput {
|
|
|
787
755
|
### `WorkflowConnection`
|
|
788
756
|
|
|
789
757
|
```graphql
|
|
790
|
-
"""
|
|
791
|
-
Relay-style connection of workflows, with both an `edges` list and a flat `nodes` accessor.
|
|
792
|
-
"""
|
|
758
|
+
"""A page of workflows."""
|
|
793
759
|
type WorkflowConnection {
|
|
794
|
-
"""
|
|
760
|
+
"""The edges in this page."""
|
|
795
761
|
edges: [WorkflowConnectionEdge!]!
|
|
796
|
-
"""
|
|
797
|
-
Flat list of workflows, equivalent to `edges[].node`. Convenience accessor.
|
|
798
|
-
"""
|
|
762
|
+
"""The workflows in this page."""
|
|
799
763
|
nodes: [Workflow!]!
|
|
800
|
-
"""
|
|
764
|
+
"""Where this page sits in the list."""
|
|
801
765
|
pageInfo: PageInfo!
|
|
802
|
-
"""
|
|
766
|
+
"""The total number of workflows."""
|
|
803
767
|
totalCount: Int!
|
|
804
768
|
}
|
|
805
769
|
```
|
|
@@ -807,9 +771,9 @@ type WorkflowConnection {
|
|
|
807
771
|
### `WorkflowConnectionEdge`
|
|
808
772
|
|
|
809
773
|
```graphql
|
|
810
|
-
"""
|
|
774
|
+
"""A workflow in a page of results."""
|
|
811
775
|
type WorkflowConnectionEdge {
|
|
812
|
-
"""
|
|
776
|
+
"""The cursor of this edge."""
|
|
813
777
|
cursor: String!
|
|
814
778
|
"""The workflow."""
|
|
815
779
|
node: Workflow!
|
|
@@ -819,19 +783,19 @@ type WorkflowConnectionEdge {
|
|
|
819
783
|
### `WorkflowCreateInput`
|
|
820
784
|
|
|
821
785
|
```graphql
|
|
822
|
-
"""
|
|
786
|
+
"""The input of `workflowCreate`."""
|
|
823
787
|
input WorkflowCreateInput {
|
|
824
|
-
"""
|
|
788
|
+
"""The ID of the workspace."""
|
|
825
789
|
workspaceId: ID!
|
|
826
790
|
"""
|
|
827
|
-
|
|
791
|
+
The name. When omitted, a name taken from the trigger, with a number added until it is unique.
|
|
828
792
|
"""
|
|
829
793
|
name: String
|
|
830
|
-
"""What
|
|
794
|
+
"""What starts a run. Fixed after creation."""
|
|
831
795
|
trigger: WorkflowTriggerInput!
|
|
832
|
-
"""
|
|
796
|
+
"""The nodes of the graph. The `ORIGIN` node is added when absent."""
|
|
833
797
|
nodes: [WorkflowNodeInput!]
|
|
834
|
-
"""
|
|
798
|
+
"""The edges of the graph. Ignored without `nodes`."""
|
|
835
799
|
edges: [WorkflowEdgeInput!]
|
|
836
800
|
}
|
|
837
801
|
```
|
|
@@ -839,9 +803,9 @@ input WorkflowCreateInput {
|
|
|
839
803
|
### `WorkflowCreatePayload`
|
|
840
804
|
|
|
841
805
|
```graphql
|
|
842
|
-
"""
|
|
806
|
+
"""The result of `workflowCreate`."""
|
|
843
807
|
type WorkflowCreatePayload {
|
|
844
|
-
"""The
|
|
808
|
+
"""The workflow."""
|
|
845
809
|
workflow: Workflow
|
|
846
810
|
}
|
|
847
811
|
```
|
|
@@ -849,17 +813,13 @@ type WorkflowCreatePayload {
|
|
|
849
813
|
### `WorkflowUpdateInput`
|
|
850
814
|
|
|
851
815
|
```graphql
|
|
852
|
-
"""
|
|
853
|
-
Input for `workflowUpdate`. Omit a field to leave it unchanged. The trigger is fixed at create.
|
|
854
|
-
"""
|
|
816
|
+
"""The input of `workflowUpdate`. Omit a field to keep its value."""
|
|
855
817
|
input WorkflowUpdateInput {
|
|
856
|
-
"""
|
|
818
|
+
"""The ID of the workflow."""
|
|
857
819
|
id: ID!
|
|
858
|
-
"""
|
|
820
|
+
"""The name."""
|
|
859
821
|
name: String
|
|
860
|
-
"""
|
|
861
|
-
How many times a run may visit any one node, from 1 to 100. A value outside that range is refused.
|
|
862
|
-
"""
|
|
822
|
+
"""The most times a run can visit one node, from 1 to 100."""
|
|
863
823
|
maxNodeVisits: Int
|
|
864
824
|
}
|
|
865
825
|
```
|
|
@@ -868,23 +828,16 @@ input WorkflowUpdateInput {
|
|
|
868
828
|
|
|
869
829
|
```graphql
|
|
870
830
|
"""
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
The whole change set is applied or none of it is: the graph is validated once,
|
|
874
|
-
after every change lands, so a set that would leave it unrunnable is refused
|
|
875
|
-
entire and nothing is written.
|
|
831
|
+
The input of `workflowGraphUpdate`. Omit a field to keep its value. `changes` is required.
|
|
876
832
|
"""
|
|
877
833
|
input WorkflowGraphUpdateInput {
|
|
878
|
-
"""The
|
|
834
|
+
"""The ID of the workflow."""
|
|
879
835
|
workflowId: ID!
|
|
880
|
-
"""
|
|
836
|
+
"""The name."""
|
|
881
837
|
name: String
|
|
882
|
-
"""
|
|
883
|
-
How many times a run may visit any one node, from 1 to 100, set with the change set.
|
|
884
|
-
A value outside that range comes back in `errors` and nothing is written.
|
|
885
|
-
"""
|
|
838
|
+
"""The most times a run can visit one node, from 1 to 100."""
|
|
886
839
|
maxNodeVisits: Int
|
|
887
|
-
"""
|
|
840
|
+
"""The changes to the graph."""
|
|
888
841
|
changes: WorkflowChangesInput!
|
|
889
842
|
}
|
|
890
843
|
```
|
|
@@ -892,24 +845,24 @@ input WorkflowGraphUpdateInput {
|
|
|
892
845
|
### `WorkflowGraphUpdatePayload`
|
|
893
846
|
|
|
894
847
|
```graphql
|
|
895
|
-
"""
|
|
848
|
+
"""The result of `workflowGraphUpdate`."""
|
|
896
849
|
type WorkflowGraphUpdatePayload {
|
|
897
850
|
"""
|
|
898
|
-
The
|
|
851
|
+
The workflow with every change applied. Null when `errors` is not empty.
|
|
899
852
|
"""
|
|
900
853
|
workflow: Workflow
|
|
901
|
-
"""
|
|
854
|
+
"""
|
|
855
|
+
The reasons the change set was refused, one per problem. Empty on success.
|
|
856
|
+
"""
|
|
902
857
|
errors: [UserError!]!
|
|
903
858
|
"""
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
one calling an origin the project has not registered as an external API.
|
|
908
|
-
Empty when `errors` is non-empty.
|
|
859
|
+
The nodes of a saved graph that will not run as meant: a node no path from the origin reaches, a
|
|
860
|
+
sleep of no length, or an `http` call to an origin the project has not registered as an
|
|
861
|
+
external API. Empty when `errors` is not empty.
|
|
909
862
|
"""
|
|
910
863
|
warnings: [UserError!]!
|
|
911
864
|
"""
|
|
912
|
-
The
|
|
865
|
+
The ID given to each created node and edge. Empty when `errors` is not empty.
|
|
913
866
|
"""
|
|
914
867
|
idMappings: WorkflowIdMappings!
|
|
915
868
|
}
|
|
@@ -919,12 +872,12 @@ type WorkflowGraphUpdatePayload {
|
|
|
919
872
|
|
|
920
873
|
```graphql
|
|
921
874
|
"""
|
|
922
|
-
The
|
|
875
|
+
The IDs given to the nodes and edges a change set created, by `clientId`.
|
|
923
876
|
"""
|
|
924
877
|
type WorkflowIdMappings {
|
|
925
|
-
"""
|
|
878
|
+
"""The node IDs, in the order the nodes were created."""
|
|
926
879
|
nodes: [IdMapping!]!
|
|
927
|
-
"""
|
|
880
|
+
"""The edge IDs, in the order the edges were created."""
|
|
928
881
|
edges: [IdMapping!]!
|
|
929
882
|
}
|
|
930
883
|
```
|
|
@@ -932,9 +885,9 @@ type WorkflowIdMappings {
|
|
|
932
885
|
### `WorkflowUpdatePayload`
|
|
933
886
|
|
|
934
887
|
```graphql
|
|
935
|
-
"""
|
|
888
|
+
"""The result of `workflowUpdate`."""
|
|
936
889
|
type WorkflowUpdatePayload {
|
|
937
|
-
"""The
|
|
890
|
+
"""The workflow."""
|
|
938
891
|
workflow: Workflow
|
|
939
892
|
}
|
|
940
893
|
```
|
|
@@ -942,9 +895,9 @@ type WorkflowUpdatePayload {
|
|
|
942
895
|
### `WorkflowDeleteInput`
|
|
943
896
|
|
|
944
897
|
```graphql
|
|
945
|
-
"""
|
|
898
|
+
"""The input of `workflowDelete`."""
|
|
946
899
|
input WorkflowDeleteInput {
|
|
947
|
-
"""
|
|
900
|
+
"""The ID of the workflow."""
|
|
948
901
|
id: ID!
|
|
949
902
|
}
|
|
950
903
|
```
|
|
@@ -952,9 +905,9 @@ input WorkflowDeleteInput {
|
|
|
952
905
|
### `WorkflowDeletePayload`
|
|
953
906
|
|
|
954
907
|
```graphql
|
|
955
|
-
"""
|
|
908
|
+
"""The result of `workflowDelete`."""
|
|
956
909
|
type WorkflowDeletePayload {
|
|
957
|
-
"""ID of the deleted workflow."""
|
|
910
|
+
"""The ID of the deleted workflow."""
|
|
958
911
|
deletedWorkflowId: ID
|
|
959
912
|
}
|
|
960
913
|
```
|
|
@@ -963,23 +916,28 @@ type WorkflowDeletePayload {
|
|
|
963
916
|
|
|
964
917
|
```graphql
|
|
965
918
|
"""
|
|
966
|
-
|
|
967
|
-
|
|
919
|
+
The input of `workflowTestRun`. Give the field the trigger of the workflow takes, and omit the
|
|
920
|
+
other.
|
|
968
921
|
"""
|
|
969
922
|
input WorkflowTestRunInput {
|
|
970
|
-
"""The
|
|
923
|
+
"""The ID of the workflow."""
|
|
971
924
|
workflowId: ID!
|
|
972
925
|
"""
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
no answers. Refused on an `EVENT` trigger.
|
|
926
|
+
The answers the action carries, keyed by field key, for an `ACTION` trigger. Templates and rules
|
|
927
|
+
read them as `trigger.action.responses.<key>`. Defaults to none. Refused for an `EVENT` trigger.
|
|
976
928
|
"""
|
|
977
929
|
responses: JSON
|
|
978
930
|
"""
|
|
979
|
-
|
|
980
|
-
|
|
931
|
+
The ID of the entity the event is about, for an `EVENT` trigger, read as `trigger.entityId`.
|
|
932
|
+
Defaults to the ID of the workspace.
|
|
981
933
|
"""
|
|
982
934
|
entityId: ID
|
|
935
|
+
"""
|
|
936
|
+
Whether tools that write run for real, as the workflow, as in a live run. Labels set on the run
|
|
937
|
+
are held under its `test_` ID and removed when it ends, and the test run stops after 60 seconds.
|
|
938
|
+
Defaults to false.
|
|
939
|
+
"""
|
|
940
|
+
executeWrites: Boolean = false
|
|
983
941
|
}
|
|
984
942
|
```
|
|
985
943
|
|
|
@@ -988,9 +946,11 @@ input WorkflowTestRunInput {
|
|
|
988
946
|
```graphql
|
|
989
947
|
"""How a test run ended."""
|
|
990
948
|
enum WorkflowTestRunStatus {
|
|
991
|
-
"""Every node
|
|
949
|
+
"""Every node reached did its work or was skipped."""
|
|
992
950
|
COMPLETED
|
|
993
|
-
"""
|
|
951
|
+
"""
|
|
952
|
+
A node failed, or a test run that executes writes passed its 60-second limit.
|
|
953
|
+
"""
|
|
994
954
|
FAILED
|
|
995
955
|
}
|
|
996
956
|
```
|
|
@@ -1000,13 +960,16 @@ enum WorkflowTestRunStatus {
|
|
|
1000
960
|
```graphql
|
|
1001
961
|
"""How one task of a test run ended."""
|
|
1002
962
|
enum WorkflowTestRunTaskStatus {
|
|
1003
|
-
"""The node did its work. A tool that reads ran for real."""
|
|
963
|
+
"""The node did its work. A tool that only reads ran for real."""
|
|
1004
964
|
SUCCEEDED
|
|
1005
|
-
"""
|
|
965
|
+
"""
|
|
966
|
+
The node failed, which stopped the test run. A tool still running at the 60-second limit is
|
|
967
|
+
`FAILED`, and its writes can still land.
|
|
968
|
+
"""
|
|
1006
969
|
FAILED
|
|
1007
970
|
"""
|
|
1008
|
-
The tool writes
|
|
1009
|
-
|
|
971
|
+
The tool writes and the test run does not execute writes, or the tool never runs in a test run.
|
|
972
|
+
`input` holds what it would have sent, and a later node that reads its output finds nothing.
|
|
1010
973
|
"""
|
|
1011
974
|
SKIPPED
|
|
1012
975
|
}
|
|
@@ -1015,41 +978,37 @@ enum WorkflowTestRunTaskStatus {
|
|
|
1015
978
|
### `WorkflowTestRunTask`
|
|
1016
979
|
|
|
1017
980
|
```graphql
|
|
1018
|
-
"""
|
|
1019
|
-
One visit a test run made to a node. Never stored: it exists only in the payload that
|
|
1020
|
-
returned it.
|
|
1021
|
-
"""
|
|
981
|
+
"""One visit of a test run to a node. It is not stored."""
|
|
1022
982
|
type WorkflowTestRunTask {
|
|
1023
|
-
"""The node
|
|
983
|
+
"""The ID of the node."""
|
|
1024
984
|
nodeId: ID!
|
|
1025
985
|
"""
|
|
1026
|
-
The
|
|
986
|
+
The position of the task in the test run, from 1. The `ORIGIN` node is 0 and is not listed.
|
|
1027
987
|
"""
|
|
1028
988
|
index: Int!
|
|
1029
|
-
"""
|
|
1030
|
-
Which visit of its node the task is, from 1. A walk that re-enters a node lists each visit.
|
|
1031
|
-
"""
|
|
989
|
+
"""The number of the visit to the node, from 1."""
|
|
1032
990
|
visit: Int!
|
|
1033
|
-
"""The node
|
|
991
|
+
"""The kind of node. Never `ORIGIN`."""
|
|
1034
992
|
type: WorkflowTaskType!
|
|
1035
|
-
"""The tool a `TOOL` node
|
|
993
|
+
"""The tool of a `TOOL` node. Null for other kinds."""
|
|
1036
994
|
tool: String
|
|
1037
995
|
"""How the task ended."""
|
|
1038
996
|
status: WorkflowTestRunTaskStatus!
|
|
1039
997
|
"""
|
|
1040
|
-
|
|
1041
|
-
|
|
998
|
+
The arguments of a `TOOL` node with every template resolved, as the tool received them or would
|
|
999
|
+
have. For a `SLEEP` node, `{ duration }`.
|
|
1042
1000
|
"""
|
|
1043
1001
|
input: JSON
|
|
1044
1002
|
"""
|
|
1045
|
-
|
|
1046
|
-
|
|
1003
|
+
The output of a `TOOL` node, as later nodes read it; a reference is a `$ref` envelope that names
|
|
1004
|
+
the tool and what it resolves. An `action_response` node also carries its `payload`. Null when
|
|
1005
|
+
skipped.
|
|
1047
1006
|
"""
|
|
1048
1007
|
output: JSON
|
|
1049
|
-
"""The branch a `CONDITION` node took."""
|
|
1008
|
+
"""The branch a `CONDITION` node took. Null for other kinds."""
|
|
1050
1009
|
branch: WorkflowEdgeHandle
|
|
1051
1010
|
"""
|
|
1052
|
-
Why the task failed, naming the node, its tool and at most
|
|
1011
|
+
Why the task failed, naming the node, its tool and at most one argument. Null unless it failed.
|
|
1053
1012
|
"""
|
|
1054
1013
|
failureMessage: String
|
|
1055
1014
|
}
|
|
@@ -1059,20 +1018,21 @@ type WorkflowTestRunTask {
|
|
|
1059
1018
|
|
|
1060
1019
|
```graphql
|
|
1061
1020
|
"""
|
|
1062
|
-
|
|
1063
|
-
write
|
|
1064
|
-
|
|
1065
|
-
Tools that read (`search_leads`, `http` with `GET` or `HEAD`) run for real;
|
|
1066
|
-
tools that write are `SKIPPED`. `SLEEP` nodes do not wait. Nothing is stored:
|
|
1067
|
-
no run appears in `Workflow.runs`, no operation is recorded and no event is
|
|
1068
|
-
published.
|
|
1021
|
+
One walk of the draft graph of a workflow against a given trigger. Tools that only read run for
|
|
1022
|
+
real, tools that write are `SKIPPED` unless the input sets `executeWrites`, and `SLEEP` nodes do
|
|
1023
|
+
not wait. With `executeWrites`, what the writes store and record remains.
|
|
1069
1024
|
"""
|
|
1070
1025
|
type WorkflowTestRun {
|
|
1071
|
-
"""How the run ended."""
|
|
1026
|
+
"""How the test run ended."""
|
|
1072
1027
|
status: WorkflowTestRunStatus!
|
|
1073
|
-
"""
|
|
1028
|
+
"""
|
|
1029
|
+
Why the test run stopped: a run failure code such as `node_failed`, or `test_run_timed_out` when
|
|
1030
|
+
a test run that executes writes passed its 60-second limit. Null unless `status` is `FAILED`.
|
|
1031
|
+
"""
|
|
1032
|
+
failureCode: String
|
|
1033
|
+
"""Why the test run stopped. Null unless `status` is `FAILED`."""
|
|
1074
1034
|
failureMessage: String
|
|
1075
|
-
"""Every node the
|
|
1035
|
+
"""Every node the test run reached after the `ORIGIN`, in order."""
|
|
1076
1036
|
tasks: [WorkflowTestRunTask!]!
|
|
1077
1037
|
}
|
|
1078
1038
|
```
|
|
@@ -1080,13 +1040,13 @@ type WorkflowTestRun {
|
|
|
1080
1040
|
### `WorkflowTestRunPayload`
|
|
1081
1041
|
|
|
1082
1042
|
```graphql
|
|
1083
|
-
"""
|
|
1043
|
+
"""The result of `workflowTestRun`."""
|
|
1084
1044
|
type WorkflowTestRunPayload {
|
|
1085
|
-
"""The test run
|
|
1045
|
+
"""The test run. Null when `userErrors` is not empty."""
|
|
1086
1046
|
testRun: WorkflowTestRun
|
|
1087
1047
|
"""
|
|
1088
|
-
|
|
1089
|
-
`INVALID_RESPONSES`, `ACTION_DELETED
|
|
1048
|
+
The reasons the input cannot start the workflow, with codes `RESPONSES_NOT_ACCEPTED`,
|
|
1049
|
+
`INVALID_RESPONSES`, `ACTION_DELETED` or `TRIGGER_UNUSABLE`.
|
|
1090
1050
|
"""
|
|
1091
1051
|
userErrors: [UserError!]!
|
|
1092
1052
|
}
|
|
@@ -1095,16 +1055,13 @@ type WorkflowTestRunPayload {
|
|
|
1095
1055
|
### `WorkflowSortKeys`
|
|
1096
1056
|
|
|
1097
1057
|
```graphql
|
|
1098
|
-
"""
|
|
1099
|
-
Sort keys for `workflows(...)`. Pair with `reverse: true` to flip the order
|
|
1100
|
-
(`NAME` + `reverse: false` sorts A→Z; `CREATED_AT` + `reverse: true` is newest-first).
|
|
1101
|
-
"""
|
|
1058
|
+
"""The orders `workflows` can sort by. `reverse: true` flips the order."""
|
|
1102
1059
|
enum WorkflowSortKeys {
|
|
1103
|
-
"""
|
|
1060
|
+
"""By `name`, A to Z."""
|
|
1104
1061
|
NAME
|
|
1105
|
-
"""
|
|
1062
|
+
"""By `createdAt`, oldest first."""
|
|
1106
1063
|
CREATED_AT
|
|
1107
|
-
"""
|
|
1064
|
+
"""By `updatedAt`, oldest first."""
|
|
1108
1065
|
UPDATED_AT
|
|
1109
1066
|
}
|
|
1110
1067
|
```
|