Skip to content

What is Stations?

Stations is a workflow orchestration platform that helps you design, manage, and execute complex multi-step processes. Think of it like a railway system for your workflows - you define stations (stops along the way), create routes (the path through those stations), and track progress as work moves through the system.

The Railway Metaphor

Stations uses a railway metaphor to make workflow concepts intuitive:

ConceptRailway EquivalentDescription
StationTrain StationA discrete step or checkpoint in your workflow
RouteTrain RouteAn active journey through multiple stations
StopStop on a RouteA specific station visit within a route
TrackRailway TrackThe path connecting stops in a route
Route TemplateScheduled ServiceA reusable pattern for creating routes

Key Concepts

Stations

Stations are the building blocks of your workflows. Each station represents a discrete task, checkpoint, or decision point. Stations are reusable - you can include the same station in multiple routes.

type Station {
id: ID
name: String
description: String
remotePortalId: ID # Connect to external systems
}

Example stations:

  • “Review Application”
  • “Manager Approval”
  • “Send Notification”
  • “Process Payment”

Routes

Routes are active workflows - they represent work moving through your system. A route has a status and tracks which stops have been completed.

type Route {
id: ID!
name: String
status: RouteStatus # active, paused, completed, cancelled
stops: [Stop]
track: AWSJSON # The route structure
actionLog: [StopActionRecord] # History of actions
}

Route Statuses:

  • active - Route is in progress
  • paused - Route is temporarily stopped
  • completed - All stops finished
  • cancelled - Route was terminated

Route Templates

Templates let you save workflow patterns for reuse. When you have a common process that runs repeatedly, create a template and spawn routes from it.

type RouteTemplate {
id: ID
name: String
description: String
stops: [Stop]
track: AWSJSON
}

Stops

Stops are the actual visits to stations within a route. While a station is a reusable definition, a stop is a specific instance of visiting that station in a particular route.

type Stop {
id: ID!
type: StopType # station, portal, or route
stationId: ID
name: String
status: String
station: Station
asynchronousChildren: Boolean
}

Architecture Overview

┌─────────────────────────────────────────────────────────┐
│ Your Application │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ GraphQL API Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ Queries │ │Mutations │ │ Subscriptions │ │
│ └──────────┘ └──────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Stations Platform │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ Stations │ │ Routes │ │ Route Templates │ │
│ └──────────┘ └──────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────┘

Multi-Tenant Architecture

Stations is built as a multi-tenant platform with role-based access control:

RoleDescriptionPermissions
OwnerAccount ownerFull access, billing management
AdminAdministratorManage stations, routes, users
UserStandard userView and mark stops completed
FreeFree tierLimited feature access

Use Cases

Stations is versatile and can power many different workflow types:

Approval Workflows

Track documents, requests, or decisions through multiple approval stages.

Onboarding Processes

Guide new employees or customers through setup steps.

Project Management

Define project phases and track completion across teams.

Data Pipelines

Orchestrate data processing steps with status tracking.

Quality Assurance

Create testing checklists that must be completed in order.

Next Steps

Now that you understand the concepts, let’s get hands-on: