[PREFERRED] Create a production-ready form in a single API call.
Combines form design, access permissions and workflow binding into one atomic operation. The backend creates the form, sets authorizations and links the workflow simultaneously — no partial state, and no default fallbacks for permissions are applied.
IMPORTANT: title, fields/components, form_roles, designer_roles and application_roles are ALL REQUIRED and none may be empty. If the caller has not supplied a value for any of these, ASK THE USER for it before invoking this tool — do not guess and do not substitute an empty list.
STEP 1 — FORM DESIGN
Provide title, optional description, display mode (form/wizard) and a non-empty list of components. Supports all standard Form.io input types plus layout components (panel, columns, tabs, table, fieldset, well, container, datagrid, editgrid). A Submit button and formsflow hidden fields are added automatically.
STEP 2 — PERMISSIONS
Set who can interact with the form via three role layers, each of which MUST contain at least one role:
• form_roles — who can submit / fill the form
• designer_roles — who can edit / design the form
• application_roles — who can view submissions
Accepted values: short alias (reviewer, client, designer, admin) or full Keycloak path (/formsflow/formsflow-reviewer). Use list_roles to browse available values. Empty arrays are NOT accepted — if the user hasn't specified roles for a layer, ask them which roles to assign before calling this tool.
STEP 3 — WORKFLOW
Optional. To link an existing BPMN or LOWCODE workflow, pass its processKey (use list_workflows to find one). DMN decision tables are not workflows and are rejected. If the user hasn't asked for a specific workflow, omit process_key: the form then gets its own default workflow (Form Submitted → Set status → End), the same as creating a form in the formsflow UI, and it can be edited in the Flow tab.
Returns: form_id, mapper_id, confirmed permissions, workflow key, and previewFormId. After a successful response, always call preview_form with previewFormId to show the user their new form immediately.
The description explains the capability, when to use it, and what to expect.