Public REST/JSON reference
Onboarding Tracker API
Define multi-step onboarding flows (each step is a milestone with an expected_hours target), measure each user's progress through the flow, surface the stalled users, and trigger nudges to reactivate them. The funnel view exposes drop-off percentages per milestone — exactly the data your activation team needs to fix the highest-impact step. Part of the Logic Igniter SaaS Growth & Retention bundle.
Access boundary
These examples describe public API calls only. Use the service output to review, score, summarize, analyze, or recommend; do not treat the API reference as permission for an assistant to write, send, publish, charge, schedule, notify, delete, or modify records.
Base URL
https://api.logicigniter.comAuth
Authorization: Bearer YOUR_API_KEYVersion
OpenAPI 3.0.3 · 1.0.0Operations rendered
14
Response models rendered
23
/api/v1/onboardtracker/customersList customers
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
page_size | query | integer | |
page_token | query | string |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/customers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of customers
401ErrorMissing or invalid API key.
/api/v1/onboardtracker/customersProvision a customer
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request body (required)
Schema: CreateCustomerRequest
Sample JSON payload for evaluation.
{
"email": "[email protected]",
"name": "Example Inc."
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/onboardtracker/customers" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","name":"Example Inc."}'/api/v1/onboardtracker/customers/{id}Get a customer by id
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | string (uuid) |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/customers/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/onboardtracker/customers/{id}Update a customer
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body (required)
Schema: UpdateCustomerRequest
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X PUT "https://api.logicigniter.com/api/v1/onboardtracker/customers/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/onboardtracker/flowsList flows
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/flows" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Flows
401ErrorMissing or invalid API key.
/api/v1/onboardtracker/flowsCreate a flow
Define an onboarding flow as an ordered list of milestones. Each milestone is named, mapped to an event_name your product fires, and has an expected_hours target — users who don't reach the milestone within that window are flagged STALLED.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request body (required)
Schema: CreateFlowRequest
Sample JSON payload for evaluation.
{
"name": "self-serve-saas-trial",
"description": "Standard trial onboarding flow.",
"milestones": [
{
"name": "signup",
"event_name": "user.signed_up",
"expected_hours": 0,
"order": 1
},
{
"name": "first-project",
"event_name": "project.created",
"expected_hours": 24,
"order": 2
},
{
"name": "first-invite",
"event_name": "user.invited",
"expected_hours": 72,
"order": 3
}
]
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/onboardtracker/flows" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"self-serve-saas-trial","description":"Standard trial onboarding flow.","milestones":[{"name":"signup","event_name":"user.signed_up","expected_hours":0,"order":1},{"name":"first-project","event_name":"project.created","expected_hours":24,"order":2},{"name":"first-invite","event_name":"user.invited","expected_hours":72,"order":3}]}'/api/v1/onboardtracker/flows/{id}Update a flow
Replace a flow's milestone sequence. Existing user progress is re-evaluated against the new milestones.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body (required)
Schema: UpdateFlowRequest
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X PUT "https://api.logicigniter.com/api/v1/onboardtracker/flows/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/onboardtracker/flows/{id}/funnelFunnel data for a flow
Per-milestone users_reached counts and drop_off_pct between consecutive milestones. The standard view your activation team uses to find the highest-impact step to fix.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | string (uuid) |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/flows/:id/funnel" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/onboardtracker/users/{user_id}/progressGet a user's progress through a flow
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user_idrequired | path | string (uuid) | |
flow_id | query | string (uuid) | If omitted, uses the workspace's default flow. |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/users/:user_id/progress" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/onboardtracker/users/{user_id}/completeManually mark a milestone complete
Override the event-based progress engine and force-complete a milestone for a user. Useful for service-led onboarding when the user did the action out-of-band (e.g. on a sales call).
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user_idrequired | path | string (uuid) |
Request body (required)
Schema: CompleteRequest
Sample JSON payload for evaluation.
{
"milestone_id": "11111111-1111-1111-1111-111111111111"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/onboardtracker/users/:user_id/complete" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"milestone_id":"11111111-1111-1111-1111-111111111111"}'Responses
Milestone marked complete
400ErrorMissing milestone_id
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 flow with daily progress evaluation; paid plans unlock unlimited flows, real-time progress, manual completion, and nudge dispatch.
404ErrorUser or milestone not found
/api/v1/onboardtracker/users/stalledList stalled users
Workspace-wide list of users who haven't reached their next milestone within the expected_hours window. Sorted descending by hours_stalled. Use this list to drive a nudge campaign.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
flow_id | query | string (uuid) | |
page_size | query | integer | |
page_token | query | string |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/users/stalled" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Stalled users
401ErrorMissing or invalid API key.
/api/v1/onboardtracker/milestones/{milestone_id}/usersList users currently at a milestone
Snapshot of which users have current_milestone_id == milestone_id — useful for cohort-segmented experiments.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
milestone_idrequired | path | string (uuid) | |
page_size | query | integer | |
page_token | query | string |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/milestones/:milestone_id/users" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/onboardtracker/users/{user_id}/nudgeTrigger a nudge for a stalled user
Send a reactivation nudge to a user. Idempotent within a 24-hour window per (user_id, milestone_id) pair.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user_idrequired | path | string (uuid) |
Request body (required)
Schema: TriggerNudgeRequest
Sample JSON payload for evaluation.
{
"milestone_id": "11111111-1111-1111-1111-111111111111"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/onboardtracker/users/:user_id/nudge" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"milestone_id":"11111111-1111-1111-1111-111111111111"}'Responses
200NudgeResultNudge sent
400ErrorMissing milestone_id
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 flow with daily progress evaluation; paid plans unlock unlimited flows, real-time progress, manual completion, and nudge dispatch.
404ErrorUser or milestone not found
/api/v1/onboardtracker/nudges/performanceAggregate nudge performance
Top-line funnel: total_sent → opened → clicked → reactivated, plus the resulting reactivation_rate. Reactivation = user reached the next milestone within 7 days of the nudge.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/onboardtracker/nudges/performance" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Performance metrics
401ErrorMissing or invalid API key.
Data models
Error
| Field | Type | Notes |
|---|---|---|
errorrequired | string |
ProgressStatus
MilestoneDef
| Field | Type | Notes |
|---|---|---|
namerequired | string | |
event_namerequired | string | |
expected_hours | integer | |
orderrequired | integer |
Milestone
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
name | string | |
event_name | string | |
expected_hours | integer | |
order | integer |
CreateFlowRequest
| Field | Type | Notes |
|---|---|---|
namerequired | string | |
description | string | |
milestonesrequired | array<MilestoneDef> |
UpdateFlowRequest
| Field | Type | Notes |
|---|---|---|
name | string | |
milestones | array<MilestoneDef> |
OnboardingFlow
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
name | string | |
description | string | |
active | boolean | |
milestones | array<Milestone> |
FlowsResponse
| Field | Type | Notes |
|---|---|---|
items | array<OnboardingFlow> |
FunnelStep
| Field | Type | Notes |
|---|---|---|
milestone_id | string (uuid) | |
name | string | |
users_reached | integer | |
drop_off_pct | number (double) |
FunnelData
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
steps | array<FunnelStep> |
UserProgress
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
user_id | string (uuid) | |
flow_id | string (uuid) | |
current_milestone_id | string (uuid) | |
status | ProgressStatus | |
completion_pct | number (double) | |
started_at | string (date-time) | |
completed_at | string (date-time) |
StalledUser
| Field | Type | Notes |
|---|---|---|
user_id | string (uuid) | |
email | string (email) | |
milestone_id | string (uuid) | |
hours_stalled | integer |
StalledUsersResponse
| Field | Type | Notes |
|---|---|---|
items | array<StalledUser> | |
next_page_token | string | |
total_count | integer |
CompleteRequest
| Field | Type | Notes |
|---|---|---|
milestone_idrequired | string (uuid) |
CompleteResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
success | boolean |
UsersResponse
| Field | Type | Notes |
|---|---|---|
items | array<UserProgress> | |
next_page_token | string | |
total_count | integer |
TriggerNudgeRequest
| Field | Type | Notes |
|---|---|---|
milestone_idrequired | string (uuid) |
NudgeResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
success | boolean | |
sent_at | string (date-time) |
NudgePerformance
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
total_sent | integer | |
opened | integer | |
clicked | integer | |
reactivated | integer | |
reactivation_rate | number (double) |
CreateCustomerRequest
| Field | Type | Notes |
|---|---|---|
emailrequired | string (email) | |
namerequired | string |
UpdateCustomerRequest
| Field | Type | Notes |
|---|---|---|
email | string (email) | |
name | string |
Customer
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
email | string (email) | |
name | string | |
created_at | string (date-time) |
CustomersResponse
| Field | Type | Notes |
|---|---|---|
items | array<Customer> | |
next_page_token | string | |
total_count | integer |

