FruxonDocs
ApiFruxon channel

Fires one of the session agent's triggers into the sandbox.

The agent reacts to the trigger with its real output-destination send (and any mid-run send) captured / hard-blocked — the captured reply and blocked notices arrive on the stream / messages endpoints, same as a participant turn. Only bindings selecting the session's agent fire. Sandbox sessions only; a real fire belongs on `POST /triggers/{trigger}:fire`.

POST
/v1/tenants/{tenant}/fruxon/sessions/{session}:fireTrigger
AuthorizationBearer <token>

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

In: header

Path Parameters

session*string

The session id returned by open.

tenant*string

The tenant identifier

The trigger to fire and an optional sample payload.

triggerId?string

The trigger to fire. Must be bound to the session's agent.

Formatuuid
samplePayload?|null

Optional synthesized event body for IntegrationEvent triggers — nests under TriggerFirePayload.Body["payload"], same as POST /triggers/{trigger}:fire. Rejected (400) for other kinds.

parameterOverrides?|null

Optional per-fire overrides of the resolved agent input, keyed by parameter name (e.g. user_query). Applied after the binding's mappings resolve, so each entry wins over the resolved value — even a LITERAL mapping. Lets an operator test a trigger-driven run with specific input from the debug console without editing the persisted binding. Sandbox-only; never persisted. Unset (or omitting a parameter) reproduces the binding's resolved input exactly.

asyncExecutionMode?string

Optional per-fire async-execution-mode override (sandbox debug console). Forces this run's async tools (consult / approval / delegate) to await or background, winning over each step's deployed AsyncExecution.Mode for this fire only — so an operator can exercise the suspend-and-answer loop without redeploying the agent. Omitted (or UNSPECIFIED) = no override: the deployed step config applies (current behavior). Honoured only for sandbox sessions; nothing is persisted to the agent.

Value in"UNSPECIFIED" | "AGENT_DECIDES" | "FORCE_AWAIT" | "FORCE_BACKGROUND"
revisionPolicy?string

Which body of the agent's code this fire runs — deployed release (default), the caller's own draft, or a recommendation card's change. Same contract as SendFruxonTurnRequest.RevisionPolicy: a trigger-seeded sandbox run is a test like any other, and testing an edit to the automation path should not need a publish either.

Value in"UNSPECIFIED" | "PUBLISHED" | "DRAFT" | "PROPOSAL"
confirmToolCalls?boolean|null

Hold every tool call that changes something until the operator confirms it, for this turn. Sandbox sessions only.

The sandbox hard-blocks channel sends and memory writes, and simulates every connection with no sandbox saved unless FireFruxonTriggerRequest.SandboxRouting chooses Live for it. What can still change something real is a connection chosen Live, and a built-in that acts on the workspace itself. This is the guard for those. Only a call that reaches production is held: not a read — a confirmation queue nobody reads is worse than none — and not a write the run sends to the simulator or a vendor sandbox. Each held call suspends the run on the ordinary human-approval gate and surfaces on the console's existing approval card, naming the arguments and why the call reaches production.

sandboxRouting?|null

How to route a connection the agent uses on this run, by connection id: SIMULATED, READ_THROUGH, or NONE — shown as Live, which reaches the connection with its production credentials. Sandbox sessions only (a Live session is refused). A connection left out is simulated unless it has a sandbox saved: a sandbox session never reaches production through an integration unless you choose Live for it. Nothing is saved on the connection.

baseRevision?integer|null

With revisionPolicy: DRAFT, run the caller's draft of this published revision rather than whichever draft the session would pick. The studio sends the revision it is open on; 0 is the draft of an agent that has never been deployed. 400 when the caller has no draft of it, and when sent without DRAFT.

Formatint64
draftVersion?integer|null

With revisionPolicy: DRAFT, the draft version the caller last saw. 409 when the draft has moved on since, so a test never runs a head its author has not seen. Omit to run the draft as it stands (the console, which has no editor state to assert). 400 when sent without DRAFT.

Formatint64
recommendationId?string|null

With revisionPolicy: PROPOSAL, the recommendation card whose change this run makes to the deployed release, in memory — what approving the card would deploy. Required with PROPOSAL, 400 without it. Agent admins only (403); 409 when the card has no change waiting, or the live agent already has it; 400 when the change cannot be made yet, with the reason.

Formatuuid
[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/fruxon/sessions/string:fireTrigger" \  -H "Content-Type: application/json" \  -d '{}'
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}