A valid request URL is required to generate request examples{
"success": true,
"data": {
"id": "obt_9f4c02a71e6d3b85",
"provider": "",
"triggerKey": "appointment_scheduled",
"providerEvent": "APPOINTMENT_CREATE",
"delivery": "static_webhook",
"agentId": "agt_4f9c2b7e10a24d51",
"callerNumberId": "pn_6a2f9c31e07b4d58",
"intentType": "appointment_confirmation",
"messageCategory": "informational",
"audienceType": "consumer",
"consentBasis": "ebr",
"scheduleOffset": 60,
"enabled": false,
"mapping": [
{
"var": "recipient_phone",
"eventPath": [
"customer",
"phone"
],
"transform": "phone_normalize"
},
{
"var": "recipient_name",
"eventPath": [
"customer",
"first_name"
]
}
],
"createdAt": "2026-07-13T15:04:00.000Z",
"updatedAt": "2026-07-13T15:04:00.000Z"
}
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Compile an outbound trigger (when {event} → call) onto an agent
The “open to author, frozen to call” route for OUTBOUND automations: bind a connected provider’s declarative trigger event (see GET /integrations//triggers) to the canonical outbound-call fields, and compile it to a frozen, DISABLED outbound_triggers row. The binding is validated — every event path must resolve to a declared LEAF (no object/array), a sensitive PII leaf may not be read aloud, recipient_phone must be bound — and the server-authored fields (agent, caller number, message_category informational, intent type, consent basis) are PINNED so the inbound payload can never choose them. The connection is resolved server-side from the org’s connection of this kind. Omit bindings to use the trigger’s curated default. 409 if not connected; 400 for any validation failure. Enable it (and stand up its delivery) via PATCH /outbound/triggers/. Use this when you want to specify the event→field mapping yourself. To describe the goal in plain language and let an LLM propose the mapping, use autoMapOutboundTrigger (POST …/triggers/auto) instead. Both are event-PUSH automations; for a scheduled POLL of a data source, use createOutboundListSource instead.
A valid request URL is required to generate request examples{
"success": true,
"data": {
"id": "obt_9f4c02a71e6d3b85",
"provider": "",
"triggerKey": "appointment_scheduled",
"providerEvent": "APPOINTMENT_CREATE",
"delivery": "static_webhook",
"agentId": "agt_4f9c2b7e10a24d51",
"callerNumberId": "pn_6a2f9c31e07b4d58",
"intentType": "appointment_confirmation",
"messageCategory": "informational",
"audienceType": "consumer",
"consentBasis": "ebr",
"scheduleOffset": 60,
"enabled": false,
"mapping": [
{
"var": "recipient_phone",
"eventPath": [
"customer",
"phone"
],
"transform": "phone_normalize"
},
{
"var": "recipient_name",
"eventPath": [
"customer",
"first_name"
]
}
],
"createdAt": "2026-07-13T15:04:00.000Z",
"updatedAt": "2026-07-13T15:04:00.000Z"
}
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Authorizations
Flowyte secret API key (Authorization: Bearer flowyte_sk_live_…). Scope-gated; is scoped to your organization — a key can never reach another tenant. The listed scopes in each operation's apiKey requirement are the scopes that key must hold. The tokenUrl is nominal: keys are minted in the dashboard.
- Token URL
- /api/v1/api-keys
Path Parameters
The agent this resource is scoped to (the UUID returned by createAgent / listAgents).
The integration provider (connector). One of the supported connector slugs: native providers (google_calendar, google_sheets, calendly, hubspot, ``, square, opentable, shopify), SQL databases (postgres, mysql), the universal Zapier MCP fallback (zapier), or Composio (composio).
google_calendar, google_sheets, calendly, hubspot, square, opentable, shopify, postgres, mysql, zapier, composio Body
The trigger event key from the provider's trigger pack.
An org-owned
A consumer trigger REQUIRES a resolved basis (pewc, express, or ebr).
pewc, express, ebr, none consumer, business Optional — enroll produced intents into a campaign's pacing instead of a standalone single-dial.
Optional — omit to use the trigger's curated default binding.
Show child attributes
Show child attributes
Response
The compiled (disabled) trigger.
A compiled outbound trigger ("when {event} in {provider} → call {agent}"). The server-authored fields (agentId, callerNumberId, messageCategory, intentType, consentBasis) are PINNED at compile; the inbound payload can never choose them. It lands disabled and the operator enables it (a standing consent attestation).
Show child attributes
Show child attributes
Show child attributes
Show child attributes