API Reference / Flows
Flows
A flow connects one trigger to one or more actions: when a visitor does something on your site, deliver a conversion to the destinations you choose. Flows start as a draft and stay there until you publish them.
The flow object
id
string
Prefixed identifier, e.g. flow_0Dzj….
site_id
string
The site this flow belongs to.
name
string
Up to 255 characters.
status
string
draft (not delivering), published (live), or archived.
trigger_config
object | null
What fires the flow, e.g. { integrationId, pageFilter }.
trigger_name
string | null
Resolved display name of the trigger, e.g. Gravity Forms.
actions_config
array | null
The destinations that receive the conversion, each with the conversion to record and the value to send.
published_at
timestamp | null
When it was last published. null while in draft.
The value on an action
Each action's config.conversion can carry a value. Send a fixed amount, or point the action at a value the trigger supplies, like the total price of each Acuity Scheduling booking. These fields work the same way for every destination.
Value fields
config.conversion.value
number
A fixed amount for every conversion. With a value source set, this becomes the fallback. Zero is valid, and leaving it out means 0.
config.conversion.currency
string
ISO currency code, e.g. USD. A dynamic value needs one.
config.conversion.valueSource
object | null
A dynamic value from the trigger, as { triggerId, sourceId }. Get both from List value sources. Send null to remove it.
Converly checks a new or changed value source when you save the flow, and again when you publish it. If the value can't be used with the flow's trigger and destination, the save returns 400 and publishing returns the problem code invalid_value_source.
Endpoints
GET/v1/flowsList flows, optionally for one site.POST/v1/flowsCreate a flow. Starts as a draft.GET/v1/flows/{id}Retrieve a single flow.PATCH/v1/flows/{id}Edit a flow's name, trigger, or actions.POST/v1/flows/{id}/publishPublish a flow so it starts delivering.POST/v1/flows/{id}/unpublishUnpublish a flow and return it to draft.POST/v1/flows/{id}/validateCheck publish-readiness without publishing.DELETE/v1/flows/{id}Delete a flow and stop its deliveries.
GET/v1/flows
curl "https://app.converly.io/api/v1/flows?site_id=site_29Et…" \ -H "Authorization: Bearer sk_live_…"
200 OK
{
"data": [
{
"id": "flow_0Dzj…",
"site_id": "site_29Et…",
"name": "Demo bookings",
"status": "published"
}
],
"has_more": false,
"next_cursor": null
}