APIXX.flow logo
Core concept

Flows

A flow is a managed integration pipeline — for example, syncing Shopify orders into NetSuite, or pushing newly-canonicalized customers into Klaviyo. Each flow has a source, a destination, a schedule, a mapping, and a state. APIXX runs it on your behalf; you watch it.

What's a flow

Think of a flow as a contract: "Every 15 minutes, pull new orders from this Shopify store, normalize them, and upsert them into NetSuite as Sales Orders." The flow owns the schedule, the field mapping, and the error-handling policy. Each invocation is a run.

Anatomy

ComponentRequiredDescription
Source connectoryesWhere records are read from.
Destination connectoryesWhere records are written to. Use APIXX Data for canonical-only flows.
EntityyesWhat's being moved — order, customer, product, custom.
ScheduleyesContinuous, cadence-based, on-demand, or webhook-driven.
FilternoServer-side predicate applied at read time (e.g. status=paid).
MappingyesField-level transform from source schema to canonical or destination schema.
Error policynoRetry, dead-letter, or fail-fast. Defaults to retry-with-backoff.
SLOnoTarget freshness and success rate. Drives alerting.

Schedules

ScheduleCadenceWhen to use
ContinuousSub-minute via push/poll hybridHigh-volume commerce orders, fraud signals.
Every 5 / 15 / 60 minCron-styleMost operational flows. 15 min is the default.
Hourly / dailyCron-styleReporting, slow-moving reference data.
On-demandManual trigger onlyBackfills, ad-hoc imports.
Webhook-drivenEvent from source systemStripe payments, Shopify order_create.
Source-system limits matter
A 5-minute cadence against a Shopify store with 4 API calls/second will quickly hit throttling. Flow estimates API consumption for the schedule you pick and warns before save.

Filters

Filters are server-side predicates that scope what the flow reads — e.g. status = paid AND created_at > cursor. They run on the source system whenever possible (so Shopify only sends matching orders), with a client-side fallback for systems without a query API.

Mappings

Mappings translate source fields to canonical or destination fields. The Mapping Console suggests an initial map using field-name and sample-data heuristics; you approve, edit, or override. Common transforms ship built-in:

  • Casting — string ↔ number ↔ date ISO 8601.
  • Currency normalization — minor units, ISO 4217 codes.
  • Enum mapping — Shopify financial_status → canonical order.payment_status.
  • Concatenation / templating{first_name} {last_name}.
  • Lookup — join against a reference table (e.g. country code → region).
  • Custom JS expression — sandboxed, 200ms budget per record.

Dependencies

Flows can declare a dependency on another flow — useful when downstream data requires upstream canonical records to exist. Example: a NetSuite Customer push flow depends on Shopify Customer ingest succeeding within the last hour.

State & lifecycle

StateBehaviorHow to change
activeRuns on schedule.Pause from the flow header.
pausedSchedule suspended; no new runs.Resume to re-enable. In-flight runs complete first.
errorFlow is failing systemically — usually a dependency or mapping issue.Auto-clears after 3 consecutive successes.
draftSaved but never activated.Edit and click Activate.

Health & SLOs

Open any flow to see throughput, success rate, and latency charts over the last 24h, 7d, and 30d. If you set an SLO (e.g. "95% of runs succeed and complete within 90s"), Flow alerts your contact channel when the burn rate exceeds the budget.

Best practices

  • Start narrow. Filter to a small slice of records during development; widen after validation.
  • Pause before backfills. Pause the live flow, run a one-off backfill flow with overlap, then resume.
  • Pin mappings. Once stable, lock the mapping version so AI suggestions don't silently change behavior.
  • Watch the partial-run rate. Frequent partials usually point to a single bad mapping rule.
  • Document intent. Use the flow description field — your future self will thank you.