Add a form to a flow
Make a new, empty form owned by this flow (not an archived one; 50 at most). It isn't asked of anyone until a form task uses it: add a task with this formId through brand.onboarding.flow.draft.update, write its questions with brand.onboarding.form.update, then publish the flow.
bearerAuth onboarding:writeAuthorizationBearer <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
brandId*stringA brand id from GET /me or GET /creator/brands.
1 <= lengthflowId*stringA flow id from GET /brands/{brandId}/onboarding/flows.
1 <= lengthapplication/json- body
name*stringUsually the task's title. Publishing renames the form after its task.
length <= 200Success.
application/json- response
id*stringflowId*|The flow that owns it.
name*stringrevision*numberSend as revision to PATCH .../onboarding/forms/{formId}.
archived*booleandefinition*The draft.
published*|The live version creators fill in. Null: never published.
versions*array<>Published versions, newest first. Restore one with POST .../versions/{versionId}/restore.
problems*array<string>What in the draft blocks publishing. Empty when it's ready.
curl -X POST 'https://example.com/api/v1/brands/string/onboarding/flows/string/forms' \ -H 'Content-Type: application/json' \ -d '{ "name": "string"}'{ "id": "string", "flowId": "string", "name": "string", "revision": 0, "archived": true, "definition": { "sections": [ { "id": "string", "title": "string", "description": "string", "pageBreak": true, "condition": { "fieldId": "string", "op": "equals", "value": "string" }, "fields": [ { "id": "string", "type": "short_text", "label": "string", "help": "string", "placeholder": "string", "required": false, "width": "full", "options": [ "string" ], "validation": { "minLength": 0, "maxLength": 1, "min": 0, "max": 0, "pattern": "string", "patternMessage": "string", "allowedDomains": [ "string" ] }, "platform": "instagram", "profileKey": "name", "rating": { "max": 5 }, "file": { "accept": [ "image" ], "maxMb": 1 }, "media": { "kind": "image", "url": "string", "fileId": "string" }, "condition": { "fieldId": "string", "op": "equals", "value": "string" } } ] } ] }, "published": { "versionId": "string", "version": 0, "definition": { "sections": [ { "id": "string", "title": "string", "description": "string", "pageBreak": true, "condition": { "fieldId": "string", "op": "equals", "value": "string" }, "fields": [ { "id": "string", "type": "short_text", "label": "string", "help": "string", "placeholder": "string", "required": false, "width": "full", "options": [ "string" ], "validation": { "minLength": 0, "maxLength": 1, "min": 0, "max": 0, "pattern": "string", "patternMessage": "string", "allowedDomains": [ "string" ] }, "platform": "instagram", "profileKey": "name", "rating": { "max": 5 }, "file": { "accept": [ "image" ], "maxMb": 1 }, "media": { "kind": "image", "url": "string", "fileId": "string" }, "condition": { "fieldId": "string", "op": "equals", "value": "string" } } ] } ] } }, "versions": [ { "id": "string", "version": 0, "publishedAt": "string" } ], "problems": [ "string" ]}Duplicate an onboarding flow POST
Copy a flow into a new draft named "<name> (copy)": the same tasks (with new task ids) and settings, with copies of its forms' drafts. Links and submissions aren't copied. Returns the copy.
Get an onboarding flow with its draft GET
One flow as its editor sees it: the live version creators get, the draft (tasks and settings) with its revision, whether publishing would change anything and what blocks it, the forms the flow owns with their revisions, and its sign-up links. Read this before changing the draft. 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).