Flows
Get Flows
GET https://api.YOUR_TENANT.appmixer.cloud/flows
Return all flows of a user.
curl "https://api.appmixer.com/flows" -H "Authorization: Bearer [ACCESS_TOKEN]"
Query Parameters
filter
string
Filter flows by their property values. Example: "userId:123abc" returns only flows who's owner is the user with ID "123abc" (i.e. shared flows are excluded). Note that you can also search on nested fields. This is especially useful with the customFields metadata object. For example: "filter=customFields.category:healthcare".
sharedWithPermissions
string
Filter flows by their sharing setting. Example: "read,start". All possible permission are currently "read", "start", "stop".
projection
string
Exclude flow object properties. Example: "-flow,-thumbnail".
sort
string
Sorting parameter. Can be any flow object property followed by semicolon and 1 (ascending), -1 (descending). Example: "mtime:-1".
pattern
string
A term to filter flows containing pattern in their name or flowId property.
offset
number
The index of the first item returned. Default is 0. Useful for paging.
limit
number
Maximum items returned. Default is 100. Useful for paging.
[
{
"userId": "58593f07c3ee4f239dc69ff7",
"flowId": "9089f275-f5a5-4796-ba23-365412c5666e",
"stage": "stopped",
"name": "Flow #4",
"btime": "2018-03-29T19:24:08.950Z",
"mtime": "2018-04-05T12:50:15.952Z",
"sharedWith": [{
"email": "david@client.io",
"permissions": ["read", "start", "stop"]
}],
"flow": {
"e15ef119-8fcb-459b-aaae-2a3f9ee41f15": {
"type": "appmixer.utils.http.Uptime",
"label": "Uptime",
"source": {},
"x": 110,
"y": 90,
"config": {}
},
"43f1f63a-ecd2-42dc-a618-8c96b4acc767": {
"type": "appmixer.utils.email.SendEmail",
"label": "SendEmail",
"source": {
"in": {
"e15ef119-8fcb-459b-aaae-2a3f9ee41f15": [
"up"
]
}
},
"x": 320,
"y": -10,
"config": {
"transform": {
"in": {
"e15ef119-8fcb-459b-aaae-2a3f9ee41f15": {
"up": {
"type": "json2new",
"lambda": {
"from_email": "info@appmixer.com",
"text": "Site {{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.up.target}}} is back UP.\nDowntime: {{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.up.downTimeText}}}\nHTTP Status Code: {{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.up.statusCode}}}",
"subject": "Appmixer: Site UP ({{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.up.target}}})"
}
}
}
}
}
}
},
"416150af-b0d4-4d06-8ad1-75b17e578532": {
"type": "appmixer.utils.email.SendEmail",
"label": "SendEmail",
"source": {
"in": {
"e15ef119-8fcb-459b-aaae-2a3f9ee41f15": [
"down"
]
}
},
"x": 320,
"y": 195,
"config": {
"transform": {
"in": {
"e15ef119-8fcb-459b-aaae-2a3f9ee41f15": {
"down": {
"type": "json2new",
"lambda": {
"from_email": "info@appmixer.com",
"subject": "Appmixer: Site DOWN ({{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.down.target}}})",
"text": "Site {{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.down.target}}} is DOWN.\nHTTP Status Code: {{{$.e15ef119-8fcb-459b-aaae-2a3f9ee41f15.down.statusCode}}}"
}
}
}
}
}
}
}
},
"mode": "module",
"thumbnail": "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D...",
"started": "2018-04-05T12:33:15.357Z"
},
{
"userId": "58593f07c3ee4f239dc69ff7",
"flowId": "93198d48-e680-49bb-855c-58c2c11d1857",
"stage": "stopped",
"name": "Flow #5",
"btime": "2018-04-03T15:48:52.730Z",
"mtime": "2018-04-11T07:41:22.767Z",
"flow": {
"ce0742f4-4f72-4ea2-bea6-62cfaa2def86": {
"type": "appmixer.utils.email.SendEmail",
"label": "SendEmail",
"source": {
"in": {
"3d71d67f-df0b-4723-bf85-20c97f6eaff6": [
"weather"
]
}
},
"x": 485,
"y": 95,
"config": {
"transform": {
"in": {
"3d71d67f-df0b-4723-bf85-20c97f6eaff6": {
"weather": {
"type": "json2new",
"lambda": {
"from_email": "info@appmixer.com",
"subject": "Appmixer: Current Weather",
"text": "Temperature: {{{$.3d71d67f-df0b-4723-bf85-20c97f6eaff6.weather.main.temp}}} dgC\nPressure: {{{$.3d71d67f-df0b-4723-bf85-20c97f6eaff6.weather.main.pressure}}} hPa\nHumidity: {{{$.3d71d67f-df0b-4723-bf85-20c97f6eaff6.weather.main.humidity}}}%\nCloudiness: {{{$.3d71d67f-df0b-4723-bf85-20c97f6eaff6.weather.clouds.all}}}%",
"to": ""
}
}
}
}
}
}
},
"3d71d67f-df0b-4723-bf85-20c97f6eaff6": {
"type": "appmixer.utils.weather.GetCurrentWeather",
"label": "GetCurrentWeather",
"source": {
"location": {
"b4d1ddbc-4bed-4de3-8fe1-9d9542d03cf0": [
"out"
]
}
},
"x": 290,
"y": 95,
"config": {
"transform": {
"location": {
"b4d1ddbc-4bed-4de3-8fe1-9d9542d03cf0": {
"out": {
"type": "json2new",
"lambda": {
"city": "Prague",
"units": "metric"
}
}
}
}
}
}
},
"b4d1ddbc-4bed-4de3-8fe1-9d9542d03cf0": {
"type": "appmixer.utils.controls.OnStart",
"label": "OnStart",
"source": {},
"x": 105,
"y": 95,
"config": {}
}
},
"mode": "module",
"thumbnail": "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D...",
"started": "2018-04-06T12:59:29.631Z"
}
]Get Flow
GET https://api.YOUR_TENANT.appmixer.cloud/flows/:id
Return one flow.
curl "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e" -H "Authorization: Bearer [ACCESS_TOKEN]"
Path Parameters
id
string
Get Flows Count
GET https://api.YOUR_TENANT.appmixer.cloud/flows/count
Return the number of all flows of a user.
curl "https://api.appmixer.com/flows/count" -H "Authorization: Bearer [ACCESS_TOKEN]"
Create Flow
POST https://api.YOUR_TENANT.appmixer.cloud/flows
Create a new flow.
curl -XPOST "https://api.appmixer.com/flows" -H "Content-Type: application/json" -d '{ "flow": FLOW_DESCRIPTOR, "name": "My Flow #1", "customFields": { "category": "healthcare" } }'
Request Body
name
string
Name of the flow.
customFields
object
An object with any custom properties. This is useful for storing any custom metadata and later using the metadata values to filter returned flows.
thumbnail
string
Flow thumbnail image.
flow
object
Flow descriptor.
Automatic account connection
Pass ?autoConnectAccounts=true to connect the user's available account to every component that needs one, after the flow has been saved. The same parameter works on Update Flow and Clone Flow.
true
Assign an account only where exactly one is available.
preferred
With several accounts available, reuse an account already connected to another component of the same flow; otherwise take the first one deterministically.
Account assignment runs after the flow is persisted and never fails the request — a flow whose components could not be given an account is still saved.
Update Flow
PUT https://api.YOUR_TENANT.appmixer.cloud/flows/:id
Update an existing flow.
curl -XPUT "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e" -H "Content-Type: application/json" -d '{ "flow": FLOW_DESCRIPTOR, "name": "My Flow #2" }'
Path Parameters
id
string
Flow ID.
Query Parameters
forceUpdate
boolean
A running flow cannot be updated unless forceUpdate=true.
Request Body
object
An object with flow, name, customFields, thumbnail, sharedWith, wizard, and notes parameters. flow is the Flow descriptor. See Flow Notes for the notes schema.
Delete Flow
DELETE https://api.YOUR_TENANT.appmixer.cloud/flows/:id
Delete an existing flow.
curl -XDELETE "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e" -H "Authorization: Bearer [ACCESS_TOKEN]"
Path Parameters
id
string
Flow ID.
Clone Flow
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:id/clone
Clone a flow
Path Parameters
id*
String
Flow ID
Request Body
prefix
String
Prefix for flow clone name. The original flow name will be used with this prefix as a name for the new flow.
projection
String
Properties to be filtered from the flow model.
Example: "-thumbnail,-sharedWith". With this projection string, the thumbnail and sharedWith property will not be cloned.
connectAccounts
Boolean
If user accounts (like Gmail account for SendEmail component) connected to the source flow components should also be connected to cloned flow components. Default is false. Accounts can be connected only if the owner of the cloned flow is the same as the owner of the original flow.
isTemplateInstance
Boolean
If source flow is an instance of template (related to Integrations). Default is false
setOriginFlowId
Boolean
Default false. If true, the originFlowId property of the clone will be set to the original flow.
setComponentIdMap
Boolean
Default true. Stores a map of the component IDs from the original flow to the component IDs in the clone. This is later used in Integrations when performing updates of the Integration Templates.
additional
Object
sharedWith, type and wizard properties can be set in this object.
Flow Drafts
Flow Drafts allow you to create editable versions of flows without affecting the original running flow. Drafts are primarily used for making changes to integration instances while the original continues to run.
Overview
Draft Types:
automation-draftandintegration-instance-draftWorkflow: Create draft → Make changes → Publish to update original flow
Safety: Only one draft per flow can exist at a time
Component ID Mapping: Drafts maintain a mapping to original component IDs for seamless publishing
Create a Draft
POST http://[API-URL]/flows/:id/clone
Create a draft by cloning an existing flow with special draft parameters.
Path Parameters
id*
String
Flow ID to create draft from
Request Body
setOriginFlowId*
Boolean
Must be true to link draft to original flow
setComponentIdMap*
Boolean
Must be true to map component IDs for publishing
connectAccounts*
Boolean
Recommended true to copy account connections
additional*
Object
Must include type field set to "automation-draft" or "integration-instance-draft"
Note: If a draft of the same type already exists for this flow, the existing draft ID is returned instead of creating a duplicate.
Publish a Draft
POST http://[API-URL]/drafts/:draftFlowId/publish
Publish a draft to update the original flow with the draft's changes.
Path Parameters
draftFlowId*
String
Draft flow ID to publish
Publishing Process
When you publish a draft, the following operations occur automatically:
Component ID Mapping: Draft component IDs are mapped back to the original flow's component IDs
Flow Update: The original flow is updated with the draft's configuration
Draft Deletion: The draft flow is automatically deleted after successful publishing
Account Connections: If accounts were connected during draft creation, they are preserved
Publishing Impact
Publishing a draft will immediately update the original flow. If the original flow is running, the changes will take effect.
Use Cases
Editing Integration Instances
Create a draft of a running integration instance
Make and test changes in the draft without affecting the live instance
Publish when ready to update the running instance
Flow Versions
Flow Versions keep a history of snapshots of a flow that you can list, restore, or clone into a new flow. Together with Flow Drafts, they power the version timeline in the Designer.
Overview
Version types:
manual(created explicitly by the user),autosave(created automatically while editing),publish(created automatically when a draft is published) andrestore-point(created automatically before a restore).A version snapshot stores the flow descriptor together with the flow's
name,customFields,wizardandnotes.Garbage collection: old
autosaveandrestore-pointversions are cleaned up automatically with configurable per-type retention and a total cap per flow.Draft-aware restore: restoring a version of a running flow never modifies the live flow directly — instead, a draft is created (or replaced) with the version's content. Restoring on a stopped flow with no draft restores the flow in place.
Versions are deleted automatically when their flow (or the owning user) is deleted.
Create Version
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions
Create a new version snapshot of the current state of the flow. Only the flow owner can create versions.
curl -XPOST "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-Type: application/json" -d '{ "type": "manual", "label": "Before big refactoring" }'
Request Body
type*
string
Version type. Only manual and autosave can be created via the API.
label
string
Optional human readable label (max 255 characters).
List Versions
GET https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions
Return the versions of a flow (metadata only, without the flow descriptors).
curl "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions?limit=10" -H "Authorization: Bearer [ACCESS_TOKEN]"
Query Parameters
type
string
Filter by version type: manual, autosave, publish or restore-point.
limit
number
Maximum items returned. Default is 50, maximum is 100.
offset
number
The index of the first item returned. Default is 0. Useful for paging.
Get Version
GET https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions/:versionId
Return a single version including its stored flow descriptor.
curl "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions/e1a7a2a4-9d5e-4c8f-a1c9-2f7f7f9b1a10" -H "Authorization: Bearer [ACCESS_TOKEN]"
Update Version
PUT https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions/:versionId
Update the label of a version. Only the flow owner can update versions.
curl -XPUT "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions/e1a7a2a4-9d5e-4c8f-a1c9-2f7f7f9b1a10" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-Type: application/json" -d '{ "label": "My milestone" }'
Request Body
label*
string
New version label (max 255 characters).
Delete Version
DELETE https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions/:versionId
Permanently delete a version. Only the flow owner can delete versions.
curl -XDELETE "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions/e1a7a2a4-9d5e-4c8f-a1c9-2f7f7f9b1a10" -H "Authorization: Bearer [ACCESS_TOKEN]"
Restore Version
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions/:versionId/restore
Restore the flow to the state stored in the version. Only the flow owner can restore versions. The behaviour depends on the flow's state:
Running flow: the version is restored into a draft (an existing draft is replaced), the live flow keeps running unchanged. Publish the draft to apply the restored state.
Stopped flow with a draft: the draft is replaced with the version's content; the original flow is untouched.
Stopped flow without a draft: the flow itself is restored in place.
Draft: when called on a draft flow, the draft is overwritten in place.
In every case the pre-restore state is snapshotted as a restore-point version first, so nothing is lost — whether the restore replaces a draft or the flow itself.
curl -XPOST "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions/e1a7a2a4-9d5e-4c8f-a1c9-2f7f7f9b1a10/restore" -H "Authorization: Bearer [ACCESS_TOKEN]"
Clone Version
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:id/versions/:versionId/clone
Clone a historical version into a new, independent flow. The request body accepts the same options as Clone Flow (prefix, connectAccounts, ...).
curl -XPOST "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/versions/e1a7a2a4-9d5e-4c8f-a1c9-2f7f7f9b1a10/clone" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-Type: application/json" -d '{}'
Validate Flow
GET https://api.YOUR_TENANT.appmixer.cloud/flows/:id/validate
Validate a flow and return validation errors grouped by component. The validator checks, among other things:
Required input fields (including fields defined inside expression-type inspector fields).
Components that require authentication but have no connected account.
The shape of the per-component
errorHandlingsettings.Components whose type cannot be resolved — an unknown or malformed component type is reported on the component itself rather than failing the request.
curl "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/validate" -H "Authorization: Bearer [ACCESS_TOKEN]"
Test Flow
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:id/test
Execute a single test run of a flow without the flow having to be running. The endpoint executes the selected component and traverses the flow graph downstream, streaming per-component results in real time as Server-Sent Events (SSE). The flow's stage is not changed and no production state is modified.
This is the API behind the Test flow button in the Designer.
curl -XPOST "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/test" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-Type: application/json" -d '{ "componentId": "76a77abf-d5ec-4b1c-b6e8-031359a6a640" }'
Request Body
componentId*
string
The component to start the test run from (typically the flow's trigger).
payload
object
Optional trigger output data keyed by output port (e.g. { "out": {...} }). When provided, the component's own logic is not executed.
inputData
object
Optional input data for testing a single component with explicit input.
options
object
Optional timeout (ms, capped by the TEST_MODE_TIMEOUT server setting) and maxDepth (capped by TEST_MODE_MAX_DEPTH).
Trigger data resolution
When no payload/inputData is provided, the engine resolves the trigger's test data using a fallback chain and labels the entry component's component:output events with a dataSource attribute:
real
The trigger's real logic executed — its test(context) method fetched live data, or a live webhook arrived.
logs
Data from past runs found in the flow logs (Elasticsearch fallback).
dummy
Sample data generated from the trigger's output port JSON schema.
manual
Data supplied in the test request itself (payload or inputData).
SSE events
The response is an text/event-stream. Events: test:start, component:start, component:output (per-port output, includes dataSource for the entry component), component:response (captured context.response()), component:error, component:done, component:stop and test:done (carries the overall test status).
Incoming webhook calls to a stopped flow are automatically forwarded to an active test run of that flow, so webhook-based flows can be tested end-to-end.
Test runs in logs
Records produced by a test run are logged through the regular logs pipeline and carry a testRunId field — component outputs, input-queue records, modifier errors, static component calls and the component's own context.log() output. Filter them with the testRunId query parameter of the Logs API, for example GET /logs?flowId=<id>&testRunId=<id>; the ID is delivered in the test:start SSE event. Test runs are also marked as such in the Designer logs panel.
Configuration
TEST_MODE_TIMEOUT
60000
Maximum allowed timeout (ms) per test run.
TEST_MODE_MAX_DEPTH
50
Maximum flow graph traversal depth.
TEST_MODE_MAX_TIMEOUT_DELAY
120000
Maximum delay (ms) for context.setTimeout() in test mode.
Abort Test Run
DELETE https://api.YOUR_TENANT.appmixer.cloud/flows/:id/test/:testRunId
Abort a running test. The testRunId is delivered in the test:start SSE event.
curl -XDELETE "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/test/1d1f0d02-6f52-4c34-a6b1-7b6f1a9f30aa" -H "Authorization: Bearer [ACCESS_TOKEN]"
Get Flow Components
GET https://api.YOUR_TENANT.appmixer.cloud/flows/:id/components
Return the component manifests of all components used in the flow. Useful for progressively loading only the manifests a client actually needs instead of the full GET /components catalogue.
curl "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e/components" -H "Authorization: Bearer [ACCESS_TOKEN]"
Component Error Handling
Each component in a flow descriptor can define how an unresolved error (an error that remains after automatic retries) is handled. The settings are stored on the component descriptor and configurable via Update Flow or in the Designer (cogwheel → Error handling):
autoRetry
boolean
Whether the engine retries the failed message automatically. Default true.
maxRetries
number
Optional override of the number of retries (bounded by the system retry backoff configuration).
onError
string
What happens once retries are exhausted or disabled: errorPort, stopFlow or storeUnprocessed (default — store the message in Unprocessed Messages).
With onError: "errorPort", the error is routed to a virtual error output port that can be wired to any downstream component like a regular output port. The connected component receives the error message (error.message, error.code, error.name, input) plus the flow data (scope) of preceding components, and the corresponding variables are offered in the Variables API and the Designer variable picker. Flows without errorHandling use the default behaviour.
See Handle Flow Errors for the complete error-handling guide.
Start/Stop Flow
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:id/coordinator
Start or stop an existing flow.
curl -XPOST "https://api.appmixer.com/flows/9089f275-f5a5-4796-ba23-365412c5666e" -H "Content-Type: application/json" -d '{ "command": "start" }'
Path Parameters
id
string
Flow ID.
Query Parameters (only for the stop command)
background
boolean
Will trigger the stop command, but won't wait for it to finish. Then you can use GET /flows/{flowId}/coordinator/status to check the status of that operation.
Request Body
command
string
The command to send to the flow coordinator. It can be either "start" or "stop".
Get the status of the stop flow command
GET https://api.YOUR_TENANT.appmixer.cloud/flows/{flowId}/coordinator/status
Send GET request to a component
GET https://api.YOUR_TENANT.appmixer.cloud/flows/:flowId/components/:componentId
Query Parameters
enqueueOnly
Boolean
If "true" then the response to this request will be returned as soon as the requests is enqueued in the engine. It will not wait for the component to process the request and create the response. The response code is 202 in this case. The default value is "false".
Send POST request to a component
POST https://api.YOUR_TENANT.appmixer.cloud/flows/:flowId/components/:componentId
Query Parameters
enqueueOnly
Boolean
If "true" then the response to this request will be returned as soon as the requests is enqueued in the engine. It will not wait for the component to process the request and create the response. The response code is 202 in this case. The default value is "false".
Send PUT request to a component
PUT https://api.YOUR_TENANT.appmixer.cloud/flows/:flowId/components/:componentId
Query Parameters
enqueueOnly
Boolean
If "true" then the response to this request will be returned as soon as the requests is enqueued in the engine. It will not wait for the component to process the request and create the response. The response code is 202 in this case. The default value is "false".
Flow Notes
The notes property holds the definitions of note blocks displayed on the Designer canvas. Notes are purely visual — they let flow authors annotate a canvas with Markdown-formatted text to explain intent, guide end-users, or document template behaviour.
The Designer writes this object automatically when notes are created or edited. You can also construct or patch it programmatically via the Create Flow and Update Flow endpoints.
The notes object
notes is a map of note ID → note object. Each key is a UUID that uniquely identifies the note block.
Note object properties
x
number
Horizontal position of the note block on the canvas (pixels, can be negative).
y
number
Vertical position of the note block on the canvas (pixels, can be negative).
width
number
Width of the note block in pixels.
height
number
Height of the note block in pixels.
content
string
Full CommonMark Markdown displayed inside the note block. Supports headings, bold, italic, inline code, fenced code blocks, links, images, tables, and lists.
Flow Wizard
A flow becomes an Integration Template when it has a non-empty wizard property. The wizard object defines the configuration form that end-users fill in when they activate an integration — rendered by the appmixer.ui.Wizard widget.
The Wizard Builder in the Designer writes this object automatically. For programmatic template creation — importing templates, scripting bulk updates, or building custom tooling — you can construct or patch the wizard field directly via the Create Flow and Update Flow endpoints.
The wizard object
fields is an ordered array of field objects. The Wizard widget renders them top to bottom. Authentication (account) fields are always sorted to the top of the form regardless of their position in the array.
Field reference
Every field object shares a common set of properties:
type
string
Field type. See the field types below.
label
string
Label shown to the end-user.
tooltip
string
Optional tooltip text.
placeholder
string
Optional input placeholder text.
source
string
Path to the bound component input: <componentId>.<descriptorPath>. Not used by all field types.
attrs
object
Type-specific attributes. Shape varies by type — see below.
options
object
Additional display or behaviour options.
inspectorField
Exposes a single component input field to the end-user. This is the most common field type.
source format: <componentId>.<descriptorPath>, where descriptorPath mirrors the config transform path in the flow descriptor — for example a0828f32.config.transform.in.76a77abf.out.lambda.channelId.
account
Renders an account/authentication selector for one or more components that share the same auth service. Account fields are always displayed at the top of the Wizard form.
attrs property
Type
Description
service
string
The auth service identifier, e.g. "appmixer:slack".
components
string[]
IDs of flow components that should use the selected account.
sharedAccountId
string
Optional. When set, the Wizard pre-selects a specific shared account instead of prompting.
customField
A field not bound to a specific component inspector input. Useful for injecting arbitrary data into a flow (e.g. via customFields).
attrs property
Type
Description
type
string
Input type, e.g. "text".
path
string
Data path the value is written to.
placeholder
string
Input placeholder.
searchPlaceholder
string
Placeholder for searchable select inputs.
service
string
Optional linked auth service.
components
string[]
Optional linked component IDs.
options
object
Custom options passed to the field renderer.
params
object
Custom parameters passed to the field renderer.
text
A non-interactive content block — a heading or informational paragraph displayed inside the Wizard form.
attrs property
Type
Description
format
string
Content format, e.g. "header".
text
string
The text content to display.
image
A static image displayed inside the Wizard form.
attrs property
Type
Description
image
string
Image URL or path.
Complete example
The following example creates an Integration Template programmatically. The flow has a Scheduler component (76a77abf) and a Slack SendChannelMessage component (a0828f32). The wizard exposes the Slack account selector and two input fields — the scheduled hour and the Slack channel.
Filtering Integration Templates
An Integration Template is a flow that has a non-empty wizard property and no templateId property. To list all published templates:
To list a user's integration instances (flows created from a template):
Send DELETE request to a component
DELETE https://api.appmixer.com/flows/:flowId/components/:componentId
Query Parameters
enqueueOnly
Boolean
If "true" then the response to this request will be returned as soon as the requests is enqueued in the engine. It will not wait for the component to process the request and create the response. The response code is 202 in this case. The default value is
"false".
Last updated
Was this helpful?
