@celigo/api-specs 0.2.202 → 0.2.204

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/dist/flow.yml CHANGED
@@ -3018,6 +3018,10 @@ paths:
3018
3018
  preference is off, a flow set to `basic` captures nothing and its jobs carry no `logMode`. Jobs older
3019
3019
  than the flow's log retention window will return an empty `logs` array.
3020
3020
 
3021
+ A ToolImport step's tool chain is returned as one entry per record and chain, carrying
3022
+ `_toolImportId`: the steps inside the tool and any nested tools do not get entries of their own,
3023
+ and the entry's `status` is `error` when any step in the chain errored.
3024
+
3021
3025
  For per-stage data (an HTTP request and response, or a mapping's or script hook's input and
3022
3026
  output), pick an entry and call `POST .../logs/data/query` with the corresponding `stage`. To stitch an
3023
3027
  export entry to its downstream imports, use the `traceKey` with
@@ -3042,7 +3046,7 @@ paths:
3042
3046
  - name: status
3043
3047
  in: query
3044
3048
  required: false
3045
- description: Filter log entries by record outcome.
3049
+ description: Filter log entries by record outcome. A ToolImport chain entry matches on its rolled-up `status`.
3046
3050
  schema:
3047
3051
  type: string
3048
3052
  enum:
@@ -3056,7 +3060,10 @@ paths:
3056
3060
  - name: _expOrImpId
3057
3061
  in: query
3058
3062
  required: false
3059
- description: Comma-separated list of export or import step ids. Only entries produced by these steps are returned.
3063
+ description: |-
3064
+ Comma-separated list of export or import step ids. Only entries produced by these steps are returned.
3065
+ A ToolImport step id returns that step's chain entries, one per record; the id of a step inside
3066
+ its tool, a nested ToolImport included, returns no entries.
3060
3067
  schema:
3061
3068
  type: string
3062
3069
  - name: traceKeyPrefix
@@ -3114,6 +3121,27 @@ paths:
3114
3121
  timeTaken: 1744
3115
3122
  nextPageUrl: null
3116
3123
  prevPageUrl: null
3124
+ tool_import_run:
3125
+ summary: An export feeding a ToolImport step whose tool chain failed inside the tool
3126
+ value:
3127
+ logs:
3128
+ - startedAt: '2026-10-28T01:04:03.639000Z'
3129
+ recordId: FhaPg7Nv
3130
+ groupId: 7gprZE6q
3131
+ traceKey: '1'
3132
+ _expOrImpId: 6ae149afa8b7937d2e5a3765
3133
+ status: error
3134
+ timeTaken: 69
3135
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3136
+ - startedAt: '2026-10-28T01:03:38.565000Z'
3137
+ recordId: iOp3KKIq
3138
+ groupId: PZZZpe8u
3139
+ traceKey: '1'
3140
+ _expOrImpId: 6ae14994a8b7937d2e5a3741
3141
+ status: success
3142
+ timeTaken: 41
3143
+ nextPageUrl: null
3144
+ prevPageUrl: null
3117
3145
  empty_no_debug:
3118
3146
  summary: No log entries available for the run
3119
3147
  value:
@@ -3144,6 +3172,15 @@ paths:
3144
3172
  `duplicateTraceKey` is `true`, the traceKey was seen on more than one record in the job, so
3145
3173
  results may mix records from retries or fan-out. Without `traceKey` in the request,
3146
3174
  `traceView` is `false` and only the single queried step is returned.
3175
+
3176
+ For a ToolImport step, send the entry's `_toolImportId` to trace its tool chain; `groupId` is then
3177
+ not needed and is ignored, and `steps` lists every step of the chain, nested tools included, with
3178
+ `traceView` `false`. When `traceKey` also resolves a full flow trace, the steps come from that
3179
+ trace and the tool chain appears within them.
3180
+
3181
+ A missing `recordId` or `_expOrImpId`, or a missing `groupId` without `_toolImportId`, returns
3182
+ `400` `missing_required_field`. A non-string `groupId` or `recordId`, or a `_toolImportId` that is
3183
+ not a valid id, returns `400` `invalid_field`.
3147
3184
  parameters:
3148
3185
  - name: _id
3149
3186
  in: path
@@ -3181,6 +3218,12 @@ paths:
3181
3218
  groupId: 1WsTiyxQ
3182
3219
  recordId: CMeN0hDc
3183
3220
  traceKey: '0'
3221
+ tool_chain:
3222
+ summary: Every step of a ToolImport step's tool chain for one record
3223
+ value:
3224
+ _expOrImpId: 6ae149afa8b7937d2e5a3765
3225
+ recordId: cAl5nHBP
3226
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3184
3227
  responses:
3185
3228
  '200':
3186
3229
  description: Step metadata (or a trace across paired steps when `traceKey` was supplied).
@@ -3223,8 +3266,68 @@ paths:
3223
3266
  timeTaken: 1744
3224
3267
  startedAt: '2026-04-23 02:51:45.066'
3225
3268
  completedAt: '2026-04-23 02:51:46.810'
3269
+ tool_chain:
3270
+ summary: A ToolImport chain with a nested tool; both levels completed, so each is one step
3271
+ value:
3272
+ duplicateTraceKey: false
3273
+ traceView: false
3274
+ steps:
3275
+ - _expOrImpId: 6ae149afa8b7937d2e5a3765
3276
+ recordId: cAl5nHBP
3277
+ groupId: tiGa65Ii
3278
+ status: success
3279
+ timeTaken: 1087
3280
+ startedAt: '2026-10-28 01:06:32.434'
3281
+ completedAt: '2026-10-28 01:07:23.501'
3282
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3283
+ outputGroupId: l6c2lG3p
3284
+ - _expOrImpId: 6ae14996cde0d88a5bbfad2c
3285
+ recordId: cAl5nHBP
3286
+ groupId: 3hQzg1Ih
3287
+ status: success
3288
+ timeTaken: 96
3289
+ startedAt: '2026-10-28 01:06:41.108'
3290
+ completedAt: '2026-10-28 01:06:41.204'
3291
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3292
+ - _expOrImpId: 6ae149a3be555e5e52cb1994
3293
+ recordId: cAl5nHBP
3294
+ groupId: HaFyH4Nf
3295
+ status: success
3296
+ timeTaken: 67
3297
+ startedAt: '2026-10-28 01:06:52.861'
3298
+ completedAt: '2026-10-28 01:07:13.604'
3299
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3300
+ outputGroupId: JcfPMY4T
3301
+ - _expOrImpId: 6ae14995a8b7937d2e5a374f
3302
+ recordId: cAl5nHBP
3303
+ groupId: DLnI66c3
3304
+ status: success
3305
+ timeTaken: 136
3306
+ startedAt: '2026-10-28 01:07:01.160'
3307
+ completedAt: '2026-10-28 01:07:01.296'
3308
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3226
3309
  '400':
3227
- $ref: '#/components/responses/400-bad-request'
3310
+ description: A required selector is missing, or a selector has the wrong type.
3311
+ content:
3312
+ application/json:
3313
+ schema:
3314
+ $ref: '#/components/schemas/Error'
3315
+ examples:
3316
+ missing_selector:
3317
+ value:
3318
+ errors:
3319
+ - code: missing_required_field
3320
+ message: groupId, recordId, _expOrImpId is required.
3321
+ invalid_type:
3322
+ value:
3323
+ errors:
3324
+ - code: invalid_field
3325
+ message: groupId must be a string.
3326
+ invalid_tool_import_id:
3327
+ value:
3328
+ errors:
3329
+ - code: invalid_field
3330
+ message: _toolImportId must be a valid id.
3228
3331
  '401':
3229
3332
  $ref: '#/components/responses/401-unauthorized'
3230
3333
  '404':
@@ -3245,6 +3348,11 @@ paths:
3245
3348
  that its name is valid: the server answers an unknown stage name the same way as a stage that
3246
3349
  captured nothing, so check the stage name and the job's `logMode` (`GET /v1/jobs/{_id}`)
3247
3350
  before concluding the step recorded nothing.
3351
+
3352
+ For a ToolImport step, set `stage` to `tool` to get the record's input to and output from the
3353
+ whole tool, without `groupId`. With `stage` `tool`, a missing `recordId` or `_expOrImpId` returns
3354
+ `400` `missing_required_field`, and a `_toolImportId` that differs from `_expOrImpId` returns
3355
+ `400` `invalid_exp_or_imp_id`.
3248
3356
  parameters:
3249
3357
  - name: _id
3250
3358
  in: path
@@ -3283,6 +3391,13 @@ paths:
3283
3391
  groupId: 4tQqtS
3284
3392
  recordId: f0xVak
3285
3393
  stage: preMapHook
3394
+ tool_stage:
3395
+ summary: Fetch a ToolImport step's composed input and output
3396
+ value:
3397
+ _expOrImpId: 6ae149afa8b7937d2e5a3765
3398
+ _toolImportId: 6ae149afa8b7937d2e5a3765
3399
+ recordId: cAl5nHBP
3400
+ stage: tool
3286
3401
  responses:
3287
3402
  '200':
3288
3403
  description: Log entries for the requested `(step, stage)`.
@@ -3329,13 +3444,71 @@ paths:
3329
3444
  phoneExtension: '12'
3330
3445
  errors: []
3331
3446
  errors: []
3447
+ tool_stage:
3448
+ summary: stage tool on a ToolImport step whose chain completed
3449
+ value:
3450
+ logs:
3451
+ - log:
3452
+ stage: tool
3453
+ recordId: cAl5nHBP
3454
+ groupId: tiGa65Ii
3455
+ outputGroupId: l6c2lG3p
3456
+ input:
3457
+ record:
3458
+ id: 1
3459
+ name: Leanne Graham
3460
+ output:
3461
+ record:
3462
+ id: 1
3463
+ postTitle: sunt aut facere repellat provident
3464
+ errors: []
3465
+ tool_stage_chain_error:
3466
+ summary: stage tool on a ToolImport step whose chain failed inside the tool
3467
+ value:
3468
+ logs:
3469
+ - log:
3470
+ stage: tool
3471
+ recordId: FhaPg7Nv
3472
+ groupId: 7gprZE6q
3473
+ input:
3474
+ record:
3475
+ id: 1
3476
+ name: Leanne Graham
3477
+ errors:
3478
+ - errorId: '6461095244'
3479
+ errorMessage: 'id: String contains alpha characters'
3480
+ errorCode: non_parsable_string
3481
+ errorSource: resource
3332
3482
  empty_result:
3333
3483
  summary: Nothing captured for the stage, or an unknown stage name
3334
3484
  value:
3335
3485
  logs: []
3336
3486
  errors: []
3337
3487
  '400':
3338
- $ref: '#/components/responses/400-bad-request'
3488
+ description: A required selector is missing, or a ToolImport selector is invalid.
3489
+ content:
3490
+ application/json:
3491
+ schema:
3492
+ $ref: '#/components/schemas/Error'
3493
+ examples:
3494
+ missing_selector:
3495
+ summary: stage tool without recordId
3496
+ value:
3497
+ errors:
3498
+ - code: missing_required_field
3499
+ message: recordId is required.
3500
+ missing_group_id:
3501
+ summary: A stage other than tool without groupId
3502
+ value:
3503
+ errors:
3504
+ - code: missing_required_field
3505
+ message: groupId is required.
3506
+ tool_import_mismatch:
3507
+ summary: _toolImportId differs from _expOrImpId
3508
+ value:
3509
+ errors:
3510
+ - code: invalid_exp_or_imp_id
3511
+ message: Please provide a valid _expOrImpId.
3339
3512
  '401':
3340
3513
  $ref: '#/components/responses/401-unauthorized'
3341
3514
  '404':
@@ -7242,9 +7415,9 @@ components:
7242
7415
  A job represents one execution of a flow/export/import (or a retry) in integrator.io.
7243
7416
  Jobs are read-only records created by the platform when executions occur.
7244
7417
 
7245
- Parent jobs (`type: flow`) carry aggregate counters; child jobs (`type: export` or `import`)
7246
- carry per-step counters -- do not sum both to avoid double-counting. `_exportId` on a parent
7247
- flow job references the page-generator export, not all exports in the flow.
7418
+ Parent jobs (`type: flow`) carry aggregate counters; child jobs (`type: export`, `import`, or
7419
+ `tool`) carry per-step counters -- do not sum both to avoid double-counting. `_exportId` on a
7420
+ parent flow job references the page-generator export, not all exports in the flow.
7248
7421
  allOf:
7249
7422
  - $ref: '#/components/schemas/ResourceResponse'
7250
7423
  - type: object
@@ -7259,6 +7432,7 @@ components:
7259
7432
  - flow
7260
7433
  - retry
7261
7434
  - bulk_retry
7435
+ - tool
7262
7436
  x-enumDescriptions:
7263
7437
  export: |-
7264
7438
  A child job for an export step within a flow run: the flow's source export, or a
@@ -7268,10 +7442,14 @@ components:
7268
7442
  flow: A parent flow-run job that orchestrates the full pipeline.
7269
7443
  retry: A retry of a single failed record from a previous job.
7270
7444
  bulk_retry: A bulk retry of multiple failed records from a previous job.
7445
+ tool: |-
7446
+ A child job for a Tool step (a `ToolImport`) within a flow run. A lookup step inside
7447
+ the Tool gets its own `export` child job under the same flow job.
7271
7448
  x-celigo-ai-guidance:
7272
7449
  - |-
7273
7450
  - `flow`: a flow run (parent job)
7274
7451
  - `export` / `import`: child jobs for an export/import step
7452
+ - `tool`: child job for a Tool step (`ToolImport`); a lookup step inside the Tool is listed as its own `export` child job of the same flow job
7275
7453
  - `retry` / `bulk_retry`: error management retries
7276
7454
  status:
7277
7455
  type: string
@@ -7333,8 +7511,9 @@ components:
7333
7511
  readOnly: true
7334
7512
  description: |-
7335
7513
  The export or import resource ID for this child job. Present on child
7336
- jobs (`type: export` or `type: import`) — check `type` to determine
7337
- whether this references an export or import resource.
7514
+ jobs (`type: export`, `import`, or `tool`) — check `type`: an `export` job
7515
+ references an export, an `import` job an import, and a `tool` job the
7516
+ `ToolImport` that ran the Tool.
7338
7517
  examples:
7339
7518
  - 69f54d6c1e7f3a22cc7848b2
7340
7519
  _retryOfJobId:
@@ -7426,8 +7605,8 @@ components:
7426
7605
  chained into this one; absent on event-driven runs (webhook, real-time listener, and
7427
7606
  stream page generators), which the inbound event starts. On a `retry` job: `auto`
7428
7607
  for the platform's automatic intermittent-error retry, otherwise the `_id` of the
7429
- user who submitted the retry. Absent on `export` and `import` child jobs — the
7430
- parent flow job carries it.
7608
+ user who submitted the retry. Absent on `export`, `import`, and `tool` child jobs —
7609
+ the parent flow job carries it.
7431
7610
  examples:
7432
7611
  - system
7433
7612
  canceledBy:
@@ -7484,7 +7663,8 @@ components:
7484
7663
  description: |-
7485
7664
  Number of records processed successfully. On a parent flow job (`type: flow`) this is the
7486
7665
  sum across every step in the run, so one record that passes through an export and an import
7487
- counts twice. On a child job (`type: export` or `import`) it is that step's count alone.
7666
+ counts twice. On a child job (`type: export`, `import`, or `tool`) it is that step's count
7667
+ alone.
7488
7668
  For per-step counts, read the run with `GET /v1/jobs/{_id}/family` or list its children with
7489
7669
  `GET /v1/jobs?_flowJobId={_id}&type=import`.
7490
7670
  examples:
@@ -8059,9 +8239,21 @@ components:
8059
8239
  description: Id of the export or import step that produced this entry.
8060
8240
  examples:
8061
8241
  - 60a2c4e6f321d800129a1a3c
8242
+ _toolImportId:
8243
+ type: string
8244
+ format: objectId
8245
+ x-celigo-refModel: imports
8246
+ description: |-
8247
+ ToolImport step that owns the tool chain this entry rolls up, the same id as `_expOrImpId`.
8248
+ Present only on ToolImport chain entries; pass it as `_toolImportId` to `metadata/query` to
8249
+ trace the chain, and to `data/query` with `stage` `tool` to read the chain's errors.
8250
+ examples:
8251
+ - 60a2c4e6f321d800129a1a3c
8062
8252
  status:
8063
8253
  type: string
8064
- description: Outcome of this step for this record.
8254
+ description: |-
8255
+ Outcome of this step for this record. A ToolImport chain entry is `error` when any step in
8256
+ the chain errored, even if the ToolImport's own pass succeeded.
8065
8257
  enum:
8066
8258
  - success
8067
8259
  - error
@@ -8103,6 +8295,7 @@ components:
8103
8295
  Request body for `POST /v1/flows/{_id}/jobs/{_jobId}/logs/metadata/query`.
8104
8296
  Identifies a single record-at-step within the job's execution log. Include `traceKey` to widen
8105
8297
  the result to every step that shared that trace (export paired with its downstream imports).
8298
+ Send `groupId` unless the request traces a ToolImport chain with `_toolImportId`.
8106
8299
  properties:
8107
8300
  _expOrImpId:
8108
8301
  type: string
@@ -8112,7 +8305,7 @@ components:
8112
8305
  - 60a2c4e6f321d800129a1a3c
8113
8306
  groupId:
8114
8307
  type: string
8115
- description: The `groupId` from the matching `execution-log` entry.
8308
+ description: The `groupId` from the matching `execution-log` entry. Ignored when `_toolImportId` is sent.
8116
8309
  examples:
8117
8310
  - g_5f8d43a1b9e5a80011a35f2d
8118
8311
  recordId:
@@ -8120,6 +8313,16 @@ components:
8120
8313
  description: The `recordId` from the matching `execution-log` entry.
8121
8314
  examples:
8122
8315
  - r_0001
8316
+ _toolImportId:
8317
+ type: string
8318
+ format: objectId
8319
+ x-celigo-refModel: imports
8320
+ description: |-
8321
+ ToolImport step whose tool chain to trace, from the `_toolImportId` of an `execution-log`
8322
+ entry. Scopes the returned steps to that chain and makes `groupId` unnecessary. A value that
8323
+ is not a valid id returns `400` `invalid_field`.
8324
+ examples:
8325
+ - 60a2c4e6f321d800129a1a3c
8123
8326
  traceKey:
8124
8327
  type: string
8125
8328
  description: |-
@@ -8129,8 +8332,14 @@ components:
8129
8332
  - ORD-100245
8130
8333
  required:
8131
8334
  - _expOrImpId
8132
- - groupId
8133
8335
  - recordId
8336
+ if:
8337
+ not:
8338
+ required:
8339
+ - _toolImportId
8340
+ then:
8341
+ required:
8342
+ - groupId
8134
8343
  ExecutionLogStep:
8135
8344
  type: object
8136
8345
  description: Per-step timing and outcome for a single record as it passed through one export or import.
@@ -8148,12 +8357,33 @@ components:
8148
8357
  - r_0001
8149
8358
  groupId:
8150
8359
  type: string
8151
- description: Opaque batch id.
8360
+ description: Opaque batch id. For a ToolImport level that recorded both its input and its output, the input-side group.
8152
8361
  examples:
8153
8362
  - g_5f8d43a1b9e5a80011a35f2d
8363
+ outputGroupId:
8364
+ type: string
8365
+ description: |-
8366
+ Output-side batch id of a ToolImport level, nested levels included. Present when the request
8367
+ traced the chain (`_toolImportId` or `traceKey`) and that level recorded both its input and its
8368
+ output, which are then returned as this one step; a level whose output pass never ran stays a
8369
+ step without this field.
8370
+ examples:
8371
+ - g_7ab12c
8372
+ _toolImportId:
8373
+ type: string
8374
+ format: objectId
8375
+ x-celigo-refModel: imports
8376
+ description: |-
8377
+ Outermost ToolImport step that owns the tool chain. Present on every step of a ToolImport
8378
+ chain, including steps of nested tools; omitted for other steps.
8379
+ examples:
8380
+ - 60a2c4e6f321d800129a1a3c
8154
8381
  status:
8155
8382
  type: string
8156
- description: Outcome at this step.
8383
+ description: |-
8384
+ Outcome at this step. The outermost ToolImport step is `error` when any step in its chain
8385
+ errored, even if its own pass succeeded; its `stage` then stays empty, and the step that
8386
+ failed names the stage.
8157
8387
  enum:
8158
8388
  - success
8159
8389
  - error
@@ -8207,14 +8437,18 @@ components:
8207
8437
  description: |-
8208
8438
  `true` when the same traceKey was seen on more than one record in this job — useful for spotting
8209
8439
  records that got retried or fanned out and may need disambiguation when rendering the trace view.
8440
+ Counts distinct `recordId` values, so the several steps of one record's ToolImport chain do not set it.
8210
8441
  traceView:
8211
8442
  type: boolean
8212
8443
  description: |-
8213
8444
  `true` when the response contains a multi-step trace (i.e. the request supplied `traceKey` and paired
8214
- steps were found). `false` when the response is scoped to the single queried step.
8445
+ steps were found). `false` when the response is scoped to the single queried step, or to the tool
8446
+ chain named by `_toolImportId`.
8215
8447
  steps:
8216
8448
  type: array
8217
- description: Per-step metadata. A single entry when `traceView` is false; one per paired step otherwise.
8449
+ description: |-
8450
+ Per-step metadata. When `traceView` is false, the single queried step, or every step of the tool
8451
+ chain (in no fixed order) when the request sent `_toolImportId`; one per paired step otherwise.
8218
8452
  items:
8219
8453
  $ref: '#/components/schemas/ExecutionLogStep'
8220
8454
  ExecutionLogDataRequest:
@@ -8241,7 +8475,8 @@ components:
8241
8475
  return value under its hook type plus `Hook` (`preSavePageHook`, `preMapHook`,
8242
8476
  `postMapHook`, `postSubmitHook`, `postResponseMapHook`), whatever the function is called;
8243
8477
  neither the bare hook name (`preMap`) nor `<functionName>Hook` returns them (live-verified
8244
- 2026-10-20; `inputFilter` 2026-10-22).
8478
+ 2026-10-20; `inputFilter` 2026-10-22). `tool` returns a ToolImport step's composed input and
8479
+ output for the record; it needs no `groupId`.
8245
8480
  examples:
8246
8481
  - apiCall
8247
8482
  - transformation
@@ -8254,9 +8489,10 @@ components:
8254
8489
  - postMapHook
8255
8490
  - postSubmitHook
8256
8491
  - postResponseMapHook
8492
+ - tool
8257
8493
  groupId:
8258
8494
  type: string
8259
- description: Batch id from the `execution-log` entry.
8495
+ description: Batch id from the `execution-log` entry. Ignored when `stage` is `tool`.
8260
8496
  examples:
8261
8497
  - g_5f8d43a1b9e5a80011a35f2d
8262
8498
  recordId:
@@ -8264,11 +8500,29 @@ components:
8264
8500
  description: Record id from the `execution-log` entry.
8265
8501
  examples:
8266
8502
  - r_0001
8503
+ _toolImportId:
8504
+ type: string
8505
+ format: objectId
8506
+ x-celigo-refModel: imports
8507
+ description: |-
8508
+ Outermost ToolImport of the chain. Set it to the same value as `_expOrImpId` when `stage` is
8509
+ `tool` and `_expOrImpId` is the outermost ToolImport, so the response carries the chain's
8510
+ errors; without it `errors` comes back empty. Omit it for a tool nested inside another. A
8511
+ different value or a malformed id returns `400` `invalid_exp_or_imp_id`.
8512
+ examples:
8513
+ - 60a2c4e6f321d800129a1a3c
8267
8514
  required:
8268
8515
  - _expOrImpId
8269
8516
  - stage
8270
- - groupId
8271
8517
  - recordId
8518
+ if:
8519
+ properties:
8520
+ stage:
8521
+ not:
8522
+ const: tool
8523
+ then:
8524
+ required:
8525
+ - groupId
8272
8526
  ExecutionLogDataResponse:
8273
8527
  type: object
8274
8528
  description: |-
@@ -8288,6 +8542,12 @@ components:
8288
8542
  group, with no `recordId`. `input` is a one-element array holding the `options` the hook received,
8289
8543
  and `output` holds what the hook returned.
8290
8544
  - `postResponseMapHook`: `recordId` is null, and `input` is the `options` object itself.
8545
+ - `tool`: one entry with `stage`, `recordId`, `groupId` (the input-side batch), `outputGroupId`,
8546
+ and the record entering the ToolImport (`input`) and the record it returned (`output`), each as
8547
+ `{record}`. `outputGroupId` appears once the tool's output pass has run and `output` once that
8548
+ pass stored a record, so a chain that failed inside the tool has `input` only. Payloads are
8549
+ written after the job's step records, so right after a run a side can be missing because it has
8550
+ not landed yet; re-query before treating it as absent.
8291
8551
  properties:
8292
8552
  logs:
8293
8553
  type: array
@@ -8303,7 +8563,10 @@ components:
8303
8563
  type: array
8304
8564
  description: |-
8305
8565
  Query-scoped errors. Some adaptors (e.g. NetSuiteDistributedImport) attach the actual failure here rather
8306
- than inside `logs[].log.errors`. Empty on success.
8566
+ than inside `logs[].log.errors`. Empty on success. For `stage` `tool` with `_toolImportId`, holds
8567
+ the errors the whole tool chain recorded for the record, each with `errorId`, `errorMessage`,
8568
+ `errorCode` and `errorSource`; a nested tool, or a request without `_toolImportId`, gets an empty
8569
+ array.
8307
8570
  items:
8308
8571
  type: object
8309
8572
  additionalProperties: true
@@ -8507,6 +8770,28 @@ components:
8507
8770
  _connectionId: 5f7c579b6411271af4e7cefb
8508
8771
  options:
8509
8772
  preview: true
8773
+ _toolId:
8774
+ type: string
8775
+ format: objectId
8776
+ x-celigo-refModel: tools
8777
+ description: |-
8778
+ Makes this a Tool preview: the steps see a fixed sample caller context, read as
8779
+ `{{context.*}}` in HTTP request templates, `options.context` in hooks and script
8780
+ transforms, and `["context", "<path>"]` in filter rules (`context.byUser.email` is
8781
+ `sample.user@example.com`). Send the Tool's flow shape with its `routers` and its steps in
8782
+ the maps; the tool itself isn't read, and in a shape without `routers` the page generator's
8783
+ own filter, transform and hooks don't see the sample. Without `_toolId` steps have no
8784
+ `context`: `{{context.*}}` fails an HTTP relative URI or header with 422
8785
+ `handlebars_template_parse_error` and renders empty in a body.
8786
+ x-celigo-ai-guidance:
8787
+ - |-
8788
+ The caller context in a Tool preview is a fixed sample, never the real caller: token
8789
+ type oauth; byUser Sample User (sample.user@example.com) with one group, Sample Group,
8790
+ and one role, Sample Role; client sample-client 0.0.0; source Sample MCP Server (type
8791
+ mcpServer). Filters and branches written against real caller values don't match it
8792
+ during preview.
8793
+ examples:
8794
+ - 64a1234567890abcdef54321
8510
8795
  includeStages:
8511
8796
  type: boolean
8512
8797
  description: |-