Flow Manager
Purpose
Manage flows (customer journeys/campaigns) -- create, update, delete flows and manage their steps including delays, exports, conditionals, A/B tests, and affinity routing.
Environment
LYTICS_API_TOKEN-- API authentication tokenLYTICS_API_URL-- Base URL (default:https://api.lytics.io)
API Endpoints
List Flows
curl -s "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui" \
-H "Authorization: ${LYTICS_API_TOKEN}"Get Flow
curl -s "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui/${FLOW_ID}" \
-H "Authorization: ${LYTICS_API_TOKEN}"Get Flow Version
curl -s "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui/${FLOW_ID}/${VERSION}" \
-H "Authorization: ${LYTICS_API_TOKEN}"Create Flow
curl -s -X POST "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui" \
-H "Authorization: ${LYTICS_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{ ... flow payload ... }'Update Flow
curl -s -X POST "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui/${FLOW_ID}" \
-H "Authorization: ${LYTICS_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{ ... updated flow payload ... }'Delete Flow
curl -s -X DELETE "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui/${FLOW_ID}" \
-H "Authorization: ${LYTICS_API_TOKEN}"Create Work for Flow Step
curl -s -X POST "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/ui/${FLOW_ID}/step/${STEP_ID}/work" \
-H "Authorization: ${LYTICS_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{ ... work config ... }'List Flow States
curl -s "${LYTICS_API_URL:-https://api.lytics.io}/v2/flow/state" \
-H "Authorization: ${LYTICS_API_TOKEN}"Flow Payload
{
"id": "flow_name",
"label": "Display Name",
"description": "What this flow does",
"entry_segment_id": "segment_id",
"entry_condition": "on_segment_entry",
"reentry_allowed": false,
"reentry_delay": "24h",
"state": "draft",
"steps": [
{
"id": 1,
"label": "Step 1",
"type_hint": "work_export",
"slug": "step_1",
"next": 2,
"work_id": "work_id",
"work_config": {}
},
{
"id": 2,
"label": "Wait 24 hours",
"type_hint": "delay",
"slug": "delay_step",
"next": 3,
"delay": "24h"
}
]
}Flow States
| State | Description |
|---|---|
draft | Editable, not processing |
running | Actively processing users |
draining | Stopping gracefully, processing remaining users |
deleted | Soft deleted |
Entry Conditions
| Condition | Description |
|---|---|
in_segment | Triggers for users currently in the segment |
on_segment_entry | Triggers only when a user enters the segment |
Step Types
| Type | Description | Key Fields |
|---|---|---|
work_export | Export to external system | work_id, work_config |
delay | Wait before next step | delay (duration string) |
conditional | Split by FilterQL condition | split_conditions |
affinity | Route by content affinity | split_affinities, affinity_config_id |
ab_testing | Random split by probability | split_probabilities |
work_export_exit | Export on flow exit | work_id, work_config |
Behavior
For Read Operations
Execute immediately, display flow structure as a visual step chain.
For Write Operations
Use the confirmation-gate pattern. For state changes (draft -> running, running -> draining), explicitly warn about the implications.
Error Handling
- Invalid entry segment: Verify segment exists first
- Invalid step references: Ensure
nextIDs point to existing steps - State transition errors: Only valid transitions are draft->running, running->draining
Dependencies
- Uses:
../references/api-client.md,../references/confirmation-gate.md - Related:
segment-manager skill(for entry segments),job-manager skill(for work steps)