Instantiate an onboarding flow template
/onboarding/flow-templates/{key}/instantiateClones the onboarding flow template into a new editable onboarding flow
within the token's organisation, optionally renaming it. Returns the
created flow, which you can then edit via
PUT /onboarding/flows/{complianceId}/definition and publish via
PATCH /onboarding/flows/{complianceId}/status. A name collision with an
existing flow is a 409 conflict; an unknown template key is a leak-safe
404.
Deprecated: withdrawn on 2027-06-30. POST /flow-templates/{id}/flows replaces it; the Link header names it.
Path parameters
The compliance flow template's catalogue key.
Request body
application/json, optional
Optional name for the cloned flow; defaults to the template title.
- One of:
Which user types the flow can onboard. Defaults to [investor].
investor,advisor
{
"name": "Investor Suitability (UK)"
}Responses
{
"data": {
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"name": "Investor Suitability",
"status": "draft",
"expiry_type": "TWELVE_MONTH",
"mode_type": "Continuous",
"definition": null,
"forms_count": 1,
"created_at": "2026-06-15T10:30:00+00:00",
"updated_at": "2026-06-15T10:30:00+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request conflicts with existing state (error.code = conflict),
e.g. a compliance flow with the requested name already exists.
Request validation failed (HTTP 422). The body is either the Laravel
validation envelope (message + field-keyed errors) or the API error
envelope for domain rejections (e.g. form_type_not_supported,
folder_locked, parent_not_found, folder_not_empty).
Examples
curl -X POST https://your-org-domain/kong/core/api/v2/onboarding/flow-templates/{key}/instantiate\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"name": "Investor Suitability (UK)"
}'