Skip to main content
Flowker is built around a set of interconnected concepts. Understanding how they relate to each other helps you design, configure, and run workflows effectively. The last section on this page shows how everything connects.

Workflows


A workflow is the definition of a business process — the sequence of steps Flowker follows to complete an operation. Workflows go through a lifecycle: To move a workflow between states, use the activate, deactivate, and move to draft endpoints.

Nodes and edges


Nodes are the individual steps of a workflow — what you might call tasks in business terms. Each node is a unit of work: receive an event, call a service, evaluate a condition, or perform an action. Flowker supports four node types: Edges connect nodes and define the order of execution. Branching lives in the conditional node, not in the edge: the conditional node evaluates its condition and produces an outcome handle, and Flowker follows the single outgoing edge whose sourceHandle matches that handle. Every other node type follows all of its outgoing edges.

Catalog


The catalog is the read-only registry of all built-in providers, executors, and triggers available in Flowker. You cannot create or modify catalog entries — you discover them. Before configuring any integration, browse the catalog to see what’s already available:
  • Catalog executors are the built-in components a workflow node invokes — the generic HTTP connector, and the operations of native providers such as the Midaz ledger and Tracer. You discover them; you never create them.
  • Triggers define the event types that can start a workflow (e.g., webhooks).
Use these endpoints to explore what’s available:

Provider configurations


A provider configuration is your connection to one live instance of an external service. It is the object a workflow node points at, and the object Flowker reads when that node runs. Flowker separates the type of service from your connection to it: Each provider configuration holds:
  • config — the connection details for that instance, such as the base URL and authentication credentials. For the default catalog kind, Flowker validates this map against the catalog provider’s JSON Schema. For external_openapi, it uses an external-OpenAPI configuration validator. Recognized sensitive leaves are written to the secrets backend and replaced by secretRef; legacy configurations without secretRef can contain inline values.
  • allowedHosts — the public hosts this configuration is allowed to call.
  • allowedPrivateHosts — named private hosts your operations team allows this configuration to reach. It lifts only Flowker’s private or loopback restriction: if allowedHosts is non-empty, it must also include the host. Cloud metadata and link-local addresses stay blocked.
  • schemaBindings — the XSD or OpenAPI schemas bound to this configuration, each with an optional restriction to specific OpenAPI operations.
A configuration also carries a kind. Supported values are catalog (the default), which connects to a catalog provider, and external_openapi, which connects to an OpenAPI document you uploaded yourself so a workflow node calls your own API’s operations — see Connecting your own API. Provider configurations have two statuses: active (in use) and disabled (temporarily offline). Use Disable provider configuration to take a connection out of service and Enable provider configuration to bring it back.

How a workflow reaches it

Every executor node can carry a providerConfigId — the identifier of the provider configuration it calls through. At run time, Flowker builds each outgoing request from the base URL of that provider configuration plus the path on the node, and the node fails if the provider configuration is not active. Use the Provider configurations endpoints to create, read, update, disable, enable, and delete your connections.

Executor configuration registry


Flowker keeps a registry of executor configuration records. The registry exposes four operations: Every record carries a status, which the API reports in each response: The update body does not include status, but the list operation accepts it as a query filter. Update applies to records in unconfigured or configured status; delete applies to records in unconfigured, configured, or disabled status. No operation in this version moves a record into tested, active, or disabled; the table lists those values because responses report them and the list filter accepts them.

Templates


Workflow templates are pre-built workflow patterns published in the catalog. Each template describes a known integration pattern and the parameters that pattern expects. The catalog ships the tracer-midaz-validation template (“Tracer Validation + Midaz Transaction”): it receives a webhook request, validates the transaction through Tracer, and creates the transaction in Midaz when Tracer approves it. Each template has a parameter schema that defines what inputs it expects (e.g., which provider configuration to use, threshold values). When Flowker can retrieve active provider configurations, it enriches referenced parameter fields with selectable options. If lookup is unavailable or fails, it returns the original schema instead. To inspect a template:
  1. List the catalog templates.
  2. Get the template detail to see its parameter schema.
  3. Validate a set of parameters against that schema.

Executions


An execution is a runtime instance of a workflow. A trigger normally starts a new execution; a retry that reuses an existing idempotency key returns the pre-existing execution instead of creating another. Each execution tracks:
  • executionId — Unique identifier for this run.
  • status — Current state: pending, running, completed, or failed.
  • stepResults — The output of each executed executor, conditional, or action node, in order. Trigger nodes start graph traversal and do not create execution-step records.
  • finalOutput — The final value persisted for the execution. When a set_output action produces an object, Flowker uses that object; otherwise it returns the accumulated workflow context.
Use Get execution status to monitor progress and Get execution results to retrieve the full output.
The status endpoint returns the execution record, including its current status. The dedicated results endpoint (GET /v1/executions/{id}/results) returns status, stepResults, and finalOutput when present. A failed step can include errorMessage; this response has no top-level error-details field.

Idempotency


Direct execution requests require a non-empty Idempotency-Key string; Flowker does not enforce UUID format. The webhook header is optional. If Flowker receives a second request with the same Idempotency-Key, it returns the pre-existing execution instead of creating another. A direct replay returns HTTP 200 and includes idempotencyReplayed in the response.
Use a new key when you intentionally want a new execution. Reuse the same key only when retrying the exact same request.

Dashboard


The Dashboard API provides aggregated summaries of your workflows and executions — useful for building operational dashboards and monitoring tools. Use it whenever you need a high-level view of system health without querying individual executions.
  • Workflow summary returns totals and breakdowns by status (draft, active, inactive).
  • Execution summary returns totals and breakdowns by status, with optional time range and status filters.
Example response from GET /v1/dashboards/executions:
Common use cases:
  • Monitoring execution health — track completion and failure rates over time to spot degradation early.
  • Building status pages — surface workflow throughput and success metrics in internal or client-facing dashboards.
  • Alerting on failure rate spikes — compare failed / total against a threshold to trigger alerts before issues cascade.

How it all fits together


Flowker’s concepts build on each other in a clear sequence:
  1. Explore the catalog to discover available providers, catalog executors, triggers, and templates.
  2. Create provider configurations to connect Flowker to live instances of external services.
  3. Define workflows — each executor node names a catalog executor and the provider configuration it calls through.
  4. Execute workflows to run your business process and retrieve results.
  5. Monitor — use the dashboard for operational summaries and the executions API for step-level detail.
Ready to see this in practice? Follow the Getting started guide to run your first workflow end to end.