FruxonDocs
Agent NetworkTriggers

Fetches a single audit revision.

Returns the immutable snapshot stored at the given `revision`. Used by the trigger history pane to drive the diff view and the "Restore from this revision" affordance. Revision rows are append-only, so the response shape is stable for the lifetime of the trigger.

GET
/v1/tenants/{tenant}/triggers/{trigger}/revisions/{revision}
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

trigger*string

The trigger identifier.

Formatuuid
revision*string

The revision identifier.

Formatuuid
tenant*string

The tenant identifier

Response Body

curl -X GET "https://api.fruxon.com/v1/tenants/string/triggers/497f6eca-6276-4993-bfeb-53cbbbba6f08/revisions/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "id": "00000000-0000-0000-0000-000000000000",
  "triggerId": "00000000-0000-0000-0000-000000000000",
  "version": 0,
  "changeReason": "CREATED",
  "note": "string",
  "kind": "SCHEDULE",
  "integrationId": "string",
  "integrationConfigId": "00000000-0000-0000-0000-000000000000",
  "eventType": "string",
  "displayName": "string",
  "active": false,
  "timeout": 0,
  "scheduleFrequency": "DAILY",
  "scheduleDay": "MONDAY",
  "scheduleDays": [
    "MONDAY"
  ],
  "scheduleDayOfMonth": 0,
  "scheduleHour": "string",
  "scheduleMinute": "string",
  "scheduleTimes": [
    {
      "hour": 0,
      "minute": 0
    }
  ],
  "intervalValue": 0,
  "intervalUnit": "MINUTES",
  "timezone": "string",
  "filter": {
    "match": "ALL",
    "conditions": [
      {
        "path": "string",
        "operator": "UNSPECIFIED",
        "value": "string",
        "values": null,
        "caseSensitive": false
      }
    ]
  },
  "workShape": {
    "door": {
      "doorId": "string",
      "integrationConfigId": "string",
      "query": "string",
      "parameters": {},
      "startFrom": 0,
      "skipWhen": {
        "match": "UNSPECIFIED",
        "conditions": []
      },
      "projection": [
        "string"
      ]
    },
    "source": {
      "kind": "TOOL",
      "ragAssetId": "string",
      "ragReadMode": "DOCUMENTS",
      "ragSearch": "string",
      "pageSize": 0,
      "integrationConfigId": "string",
      "integrationId": "string",
      "listToolId": "string",
      "getToolId": "string",
      "recordsPath": "string",
      "cursorParamName": "string",
      "totalPath": "string",
      "pageOrder": "SOURCE_ORDER",
      "parameters": {},
      "itemIdPath": "string",
      "itemVersionPath": "string",
      "previousVersionField": "string",
      "sinkTargetPath": "string",
      "sinkTargetKind": "ROW",
      "skipWhen": {
        "match": "UNSPECIFIED",
        "conditions": []
      },
      "sourceUrlPath": "string",
      "cursorPath": "string",
      "watermarkParamName": "string",
      "watermarkFormat": "RAW",
      "overlapWindowMs": 0,
      "startFrom": 0,
      "flattenSheetRows": false
    },
    "onDemand": {
      "keyPaths": [
        "string"
      ],
      "labelPaths": [
        "string"
      ],
      "inputs": [],
      "tool": {
        "enabled": false,
        "description": "string"
      },
      "agentsMayStart": false
    },
    "stages": [
      {
        "id": "string",
        "displayName": "string",
        "kind": "UNSPECIFIED",
        "agentId": "string",
        "instruction": "string",
        "ask": null,
        "wait": null,
        "batch": null,
        "sink": null,
        "actionTypeCeiling": null,
        "claimLimit": null,
        "maxRunning": null,
        "parameters": [],
        "produces": [],
        "requires": [],
        "dedupeKey": [],
        "routes": [],
        "ignoreReasons": []
      }
    ],
    "parameters": [
      {
        "name": "string",
        "value": "string",
        "description": "string"
      }
    ],
    "policy": {
      "claimLimit": 0,
      "maxAttempts": 0,
      "leaseSeconds": 0,
      "actionTypeCeiling": "READ_ONLY",
      "itemCostCapUsd": 0,
      "effectiveClaimLimit": 1,
      "effectiveMaxAttempts": 1,
      "effectiveLeaseSeconds": 1
    },
    "outcomeUnit": {
      "singular": "string",
      "plural": "string"
    },
    "cohorts": {
      "window": "DAY",
      "settleWithinHours": 0,
      "confirmAboveCredits": 0,
      "followUp": []
    }
  },
  "bindings": [
    {
      "agentId": "string",
      "parameterMappings": [],
      "environmentSlug": "string",
      "outputBindingId": "00000000-0000-0000-0000-000000000000"
    }
  ],
  "createdBy": "string",
  "createdAt": 0
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

Returns every stuck or excluded work item in a selection to the queue.

The dead-letter queue's select-all. The selection is explicit ids or a filter (stage, status, ignore reason, admission window); it is resolved to a concrete set and that set's size must equal `confirmCount`, otherwise the call is refused with 409 and the real count — so a filter is only ever acted on as the items the operator saw. DEAD and FAILED items always qualify; an item a pass claimed in between is left alone and reported in the affected count. IGNORED items qualify only when the selection asks for them — `ignoreReason`, `status: IGNORED`, or explicit ids — so a re-drive filtered by stage alone still means the stuck items there. `status: IGNORED` on its own is refused with 400 and the count it would have moved: re-driving exclusions costs an agent run each, so the call has to name the reason that was revised or the ids. A named `ignoreReason` is matched whole against the reason as recorded, and is refused with 400 when the stage declares a set of reasons, this is not one of them, and no item on the ledger carries it either. When the selection is explicit ids, `skipped` names every id that was not acted on and why: it is not a work item at all, it belongs to another automation, or it was in a status this verb may not touch — carrying that status.

Gets one stage test.

While the run is going, the status says so; once it ends, the verdict says what the ledger would have done with the answer, beside the writes the simulator absorbed and what the run cost.