Flows API

Bramble Flows: building and running automations. Flows and their versions, runs and their step outputs, connections (stored credentials), tables, variables, templates, approvals and forms waiting for an answer — and the public webhook endpoints that start flows from outside.

Address
https://<your-org>.brambleit.cloud/flows
Sign-in
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Address
https://<your-org>.brambleit.cloud/api
Sign-in
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Endpoints
67
OpenAPI
flows.json
Guides
How Flows works

Personal or organisation. A flow, connection, table or variable is either personal (yours) or belongs to the organisation (scope: tenant, managed by Flows admins).

A flow is a graph of steps (graph, the JSON the canvas edits). Saving takes the version you started from, so two people can't overwrite each other.

Secrets stay in connections. Connection secrets are encrypted and never returned; exports leave secrets and webhook tokens blank.

Calling flows from outside is done with a webhook trigger, not with these endpoints.

Resources

Flows

Create, save, version, switch on and off, copy, import and export flows; run one now; the catalogue of steps.

MethodPathSummary
GET/api/meWho you are: the signed-in person and what they can do here
GET/api/catalogueSteps and triggers available
GET/api/flowsList flows
POST/api/flowsCreate a flow
GET/api/flows/:idGet a flow
PUT/api/flows/:idSave a flow
GET/api/subflowsSub-flows a flow may run: same scope (personal: the owner's own; organisation: organisation flows), starting "When another flow runs it"
POST/api/flows/:id/settingsFlow settings: what happens if it's triggered while still running
GET/api/flows/:id/versionsVersion history (lib/versions.js)
GET/api/flows/:id/versions/:vidGet an older version of a flow
POST/api/flows/:id/activateSwitch a flow on
POST/api/flows/:id/deactivateSwitch a flow off
POST/api/flows/:id/duplicateCopy a flow
DELETE/api/flows/:idDelete a flow
POST/api/flows/:id/runRun now. Body: { data?, nodeId?, graph?
GET/api/flows/:id/runsA flow's runs
GET/api/flows/:id/checksChecks made by polling triggers (New email), newest first: the last 3 days, including the ones that found nothing
GET/api/flows/:id/exportA flow as a file: secrets and webhook tokens blanked; the connections and tables it uses listed by name so an import can match them up
POST/api/flows/importBody: { data: <a Flows export or an n8n workflow export>, scope?, name?
POST/api/flows/:id/previewWhat an expression gives, using a run's data for a step (the editor's live preview)

Runs

A run's steps and outputs, cancelling, and running again with the same input.

MethodPathSummary
GET/api/runs/:idGet a run with its steps
GET/api/runs/:id/outputs/:nodeIdA step's whole output from a run (the steps list only has the first 25 items) — for pinning
POST/api/runs/:id/cancelCancel a run
POST/api/runs/:id/retryRun the flow again (as it is now) with the same trigger data

Connections

Stored credentials steps use (mailboxes, HTTP auth, chat webhooks, FTP…), tested before saving.

MethodPathSummary
GET/api/connection-typesKinds of connection
GET/api/connections?type=a,b ?flow=<id> → only ones that flow could use
GET/api/connections/:idEditing form: the non-secret fields, and which secrets are set
POST/api/connectionsCreate a connection
PUT/api/connections/:idUpdate a connection
DELETE/api/connections/:idDelete a connection
GET/api/connections/:id/foldersA mailbox connection's folders (for the IMAP trigger's folder pickers), if the flow (?flow=) may use the connection
POST/api/connections/testTest a connection: a saved one (:id, optionally with changed fields) or an unsaved one (body.type + body.data)

Tables

Simple data tables flows can read and write.

MethodPathSummary
GET/api/tablesList tables
POST/api/tablesCreate a table
GET/api/tables/:idGet a table and its rows
PUT/api/tables/:idUpdate a table's columns
DELETE/api/tables/:idDelete a table
POST/api/tables/:id/rowsAdd a row
PUT/api/tables/:id/rows/:rowIdUpdate a row
DELETE/api/tables/:id/rows/:rowIdDelete a row
DELETE/api/tables/:id/rowsDelete every row

Variables

Values flows read as $vars.

MethodPathSummary
GET/api/variablesList variables
POST/api/variablesCreate or update a variable
DELETE/api/variables/:idDelete a variable

Templates

Built-in, organisation and MSP-shared templates, and making a flow from one.

MethodPathSummary
GET/api/templatesList templates
POST/api/templatesSave a flow as a template
DELETE/api/templates/:idDelete a template
POST/api/templates/useCreate a flow from a template

Approvals & forms

Approvals and forms waiting for you, and answering them.

MethodPathSummary
GET/api/actions/:tokenOpen an action link
POST/api/actions/:tokenAnswer an action link
GET/api/waitsApprovals and forms waiting for me
GET/api/waits/:idGet an approval or form
POST/api/waits/:id/answerAnswer an approval or form

Editor helpers

Lists the editor uses for pickers, sample event data, schedule previews and test events.

MethodPathSummary
GET/api/devicesRMM devices (for the device step)
GET/api/bramble/formA form's questions, for the "Form response submitted" trigger (as the flow's owner: their own access decides)
GET/api/bramble/optionsPickers in Bramble steps (engine/nodes/bramble.js OPTION_SOURCES), as the flow's owner: ?flow=&source=psa.queues[&project=12]
POST/api/events/testSends a "flows.test" event for the current user, to try event triggers
POST/api/schedule/previewWhen a schedule would next run, for the settings panel
GET/api/events/:type/sampleExample data for an app event

Webhooks & public links

No sign-in: the token in the address is the secret. /hook/<token> starts a flow; /hook/a/<token> and /hook/w/<token> are the approval and form links Flows emails.

MethodPathSummary
GET/hook/w/:tokenOpen a form link
POST/hook/w/:tokenAnswer a form link
GET/hook/a/:tokenOpen an approval link
POST/hook/a/:tokenAnswer an approval link
ALL/hook/:tokenStart a flow (webhook)

Bramble bridge (BRM-API)

How Flows reaches RMM devices: list devices and run a script on one as the flow's owner. Used by Flows itself with X-Flows-Key; not for outside callers.

MethodPathSummary
GET/v1/flows/devicesDevices a flow's owner can use
POST/v1/flows/devices/:id/runRun a script on a device for a flow
GET/v1/flows/commands/:idResult of a device script

Web pages

These return pages for the browser rather than data.

  • GET /