Dry-runs the supplied trigger bindings + sample payload through the same resolver the dispatcher uses at fire time
Returns one entry per submitted binding. On success the entry carries the resolved `parameters` dict the agent executor would receive; on failure the entry carries an `error` message (unknown parameter name, type-coercion mismatch, agent with no deployed revision).
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The tenant identifier
Bindings to preview. One Fruxon.Model.Triggers.PreviewBindingResult comes back per binding in the same order.
Envelope passed through every trigger-fire path (schedule, manual, integration event). Carries the structured body the mapping resolver queries against so the rest of the system can treat all three sources uniformly.
Fruxon.Model.Triggers.TriggerFirePayload.Body is intentionally System.Object-typed at the leaves
— keys map to whatever shape the source provides (string for most fields,
nested dictionaries for sub-objects, arrays for repeated structures). The
resolver's dotted-path lookup handles all three transparently.
Fruxon.Model.Triggers.TriggerFirePayload.Body has two top-level keys — trigger (the
per-trigger context the platform synthesises on every fire) and
payload (the inbound event envelope, present only for
Fruxon.Model.Triggers.TriggerFireSource.IntegrationEvent). Mappings reference
them as {{trigger.now}} / {{payload.text}} /
{{payload.message_attributes.repository}}.
Per-source canonical keys (callers should keep these stable so mapping
configurations don't break across releases):Schedule — trigger: now, timezoneManual — trigger: now, timezoneIntegrationEvent — trigger: now, timezone;
payload: text, from, from_name,
conversation_name, conversation_address, session_id,
event_type, message_attributes (nested dict)
Operator-defined content predicate on an Fruxon.Model.Triggers.TriggerKind.IntegrationEvent
trigger. The structural match (integration / config / event type) decides
whether an inbound event reaches a trigger at all; the filter decides
whether a matched event actually fires the bound agents. A null filter —
or one with no conditions — fires always, so every pre-existing trigger is
unaffected. Evaluated by Fruxon.Model.Triggers.TriggerEventFilterEvaluator against
the inbound payload.* envelope, once per trigger, before the binding
fan-out (see Fruxon.Model.Triggers.IntegrationEventDispatcher). Stored as JSONB on
the trigger and snapshotted into Fruxon.Model.Triggers.TriggerRevision.
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/triggers/preview" \ -H "Content-Type: application/json" \ -d '{ "payload": { "source": "UNSPECIFIED" } }'{
"bindings": [
{
"agentId": "string",
"parameters": {},
"error": "string"
}
],
"filterMatched": false
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}