Bloss Docs

Create an onboarding flow

Developers
POST
/brands/{brandId}/onboarding/flows

Create a draft flow, not live yet. Blank, it has one form task with an empty form. With template: true it's the "3-task onboarding" template: two starter forms and an empty agreement (named "3-task onboarding"; name is ignored). Returns the flow as brand.onboarding.flow.get does. To build a flow: create it (brand.onboarding.flows.create), add a form for each form task (brand.onboarding.flow.forms.create) and write its questions (brand.onboarding.form.update), write agreements (brand.onboarding.agreements.create), set the tasks and settings (brand.onboarding.flow.draft.update), then publish with goLive (brand.onboarding.flow.publish).

Authorization

bearerAuth onboarding:write
headerAuthorizationBearer <token>

Personal access token. Scopes: account:read, creator:read, creator:earnings, managed:read, coach:read, brand:read, creators:read, videos:read, analytics:read, onboarding:read, onboarding:signatures, engagement:read, support:read, integrations:read, payouts:read, funds:read, billing:read, groups:write, videos:write, onboarding:write, sync:write, payouts:write.

Scope: onboarding:write

Path Parameters

brandId*string

A brand id from GET /me or GET /creator/brands.

Length1 <= length

Request Body

application/json
  1. body
name?string

Up to 120 characters. Default "New flow".

Lengthlength <= 120
template?boolean

Start from the 3-task onboarding template.

Response Body

Success.

application/json
  1. response
id*string
name*string
note*|

An internal note for admins. Creators never see it.

status*string

"draft", "active", "paused" or "archived". Only active flows take new creators.

updatedAt*string
live*

What creators get now: the last published version. Empty tasks if never published.

draft*

The working copy. Publishing makes it live.

unpublishedChanges*boolean

Publishing would change what creators see: the draft's tasks or settings, a form's draft, or an agreement's draft.

problems*array<>

What blocks publishing now. Empty when the draft can be published.

forms*array<>

The forms this flow owns (one per form task, plus any not yet used by a task).

links*array<>
curl -X POST 'https://example.com/api/v1/brands/string/onboarding/flows' \  -H 'Content-Type: application/json' \  -d '{}'
{  "id": "string",  "name": "string",  "note": "string",  "status": "string",  "updatedAt": "string",  "live": {    "completionMode": "auto_join",    "joinGroupId": "string",    "welcomeMessage": "string",    "finishMessage": "string",    "preJoinVideosIrrelevant": true,    "tasks": [      {        "id": "string",        "kind": "form",        "title": "string",        "description": "string",        "deadlineHours": 0,        "formId": "string",        "agreementId": "string",        "infoMarkdown": "string"      }    ]  },  "draft": {    "revision": 0,    "completionMode": "auto_join",    "joinGroupId": "string",    "welcomeMessage": "string",    "finishMessage": "string",    "preJoinVideosIrrelevant": true,    "tasks": [      {        "id": "string",        "kind": "form",        "title": "string",        "description": "string",        "deadlineHours": 0,        "formId": "string",        "agreementId": "string",        "infoMarkdown": "string"      }    ]  },  "unpublishedChanges": true,  "problems": [    {      "taskId": "string",      "message": "string"    }  ],  "forms": [    {      "id": "string",      "name": "string",      "revision": 0,      "archived": true,      "publishedVersion": 0,      "unpublishedChanges": true    }  ],  "links": [    {      "id": "string",      "flowId": "string",      "url": "string",      "label": "string",      "active": true,      "uses": 0,      "maxUses": 0,      "expiresAt": "string",      "defaultGroupId": "string",      "createdAt": "string"    }  ]}

Was this page helpful?