Amba

Onboarding

Onboarding flow definitions and completion-rate stats.

Onboarding flows are ordered JSONB arrays of steps. User progress lives in user_onboarding. Client-side state transitions are performed via /client/onboarding/:flowId/* (start, advance, skip, complete).

Endpoints

MethodPathDescription
POST/admin/projects/:projectId/onboarding/flowsCreate a flow.
GET/admin/projects/:projectId/onboarding/flowsList flows.
GET/admin/projects/:projectId/onboarding/flows/:flowIdFetch a flow.
PATCH/admin/projects/:projectId/onboarding/flows/:flowIdPartial update.
DELETE/admin/projects/:projectId/onboarding/flows/:flowIdDelete.
GET/admin/projects/:projectId/onboarding/statsPer-flow completion rates.

POST /admin/projects/:projectId/onboarding/flows

Request (CreateOnboardingFlowInput)

FieldTypeRequiredDefault
namestringyes—
stepsarrayyes—
is_activebooleannotrue

steps is a JSONB array of step objects — see CreateOnboardingFlowInput in @layers/amba-shared/platform-types for the full shape.

Response 201

{ "data": { "id": "…", "name": "…", "steps": [], "is_active": true } }

Try it:

POST/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows
developer auth
curl -X POST 'https://api.amba.dev/v1/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "First run",
  "steps": [
    {
      "id": "welcome",
      "type": "info",
      "title": "Welcome",
      "description": "A quick tour",
      "config": {}
    }
  ]
}'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X POST "${BASE_URL}/admin/projects/${PROJECT_ID}/onboarding/flows" \
  -H "Authorization: Bearer ${DEV_TOKEN}" \
  -H 'Content-Type: application/json' \
  -d '{"name":"First run","steps":[{"id":"welcome","type":"info","title":"Welcome","description":"A quick tour","config":{}}]}'

GET /admin/projects/:projectId/onboarding/flows

{ "data": [{ "id": "…", "name": "…", "is_active": true }] }

Try it:

GET/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows
developer auth
curl -X GET 'https://api.amba.dev/v1/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET "${BASE_URL}/admin/projects/${PROJECT_ID}/onboarding/flows" \
  -H "Authorization: Bearer ${DEV_TOKEN}"

GET /admin/projects/:projectId/onboarding/flows/:flowId

Errors

  • 404 NOT_FOUND.

Try it:

GET/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows/%7B%7BflowId%7D%7D
developer auth
curl -X GET 'https://api.amba.dev/v1/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows/%7B%7BflowId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET "${BASE_URL}/admin/projects/${PROJECT_ID}/onboarding/flows/{flowId}" \
  -H "Authorization: Bearer ${DEV_TOKEN}"

PATCH /admin/projects/:projectId/onboarding/flows/:flowId

Allowed fields: name, steps, is_active.

Try it:

PATCH/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows/%7B%7BflowId%7D%7D
developer auth
curl -X PATCH 'https://api.amba.dev/v1/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows/%7B%7BflowId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X PATCH "${BASE_URL}/admin/projects/${PROJECT_ID}/onboarding/flows/{flowId}" \
  -H "Authorization: Bearer ${DEV_TOKEN}" \
  -H 'Content-Type: application/json' \
  -d '{}'

DELETE /admin/projects/:projectId/onboarding/flows/:flowId

{ "data": { "deleted": true } }

Try it:

DELETE/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows/%7B%7BflowId%7D%7D
developer auth
curl -X DELETE 'https://api.amba.dev/v1/admin/projects/%7B%7BprojectId%7D%7D/onboarding/flows/%7B%7BflowId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X DELETE "${BASE_URL}/admin/projects/${PROJECT_ID}/onboarding/flows/{flowId}" \
  -H "Authorization: Bearer ${DEV_TOKEN}"

GET /admin/projects/:projectId/onboarding/stats

Per-flow total_started, total_completed, total_skipped, plus derived completion_rate.

Response 200

{
  "data": [
    {
      "flow_id": "…",
      "flow_name": "Welcome",
      "total_started": 1000,
      "total_completed": 700,
      "total_skipped": 50,
      "completion_rate": 0.7
    }
  ]
}

Try it:

GET/admin/projects/%7B%7BprojectId%7D%7D/onboarding/stats
developer auth
curl -X GET 'https://api.amba.dev/v1/admin/projects/%7B%7BprojectId%7D%7D/onboarding/stats'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET "${BASE_URL}/admin/projects/${PROJECT_ID}/onboarding/stats" \
  -H "Authorization: Bearer ${DEV_TOKEN}"