Forms
This category lists the 72 Runtime system commands under system.form..
1. List schemas
Full name: system.form.schema.list
List form schema records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form schema list \
[--keyword value] [--cursor value] [--limit n] [--json]
Parameters: none beyond common options such as --json.
2. Retrieve schema
Full name: system.form.schema.get
Retrieve form schema resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form schema get --form-api-name <apiName> [--json]
Parameters: none beyond common options such as --json.
3. Create schema
Full name: system.form.schema.create
Create a new business form definition. · Risk: Write
sl system form schema create \
--name <name> --api-name <apiName> --type <type> [--description value] \
[--icon value] [--version value] [--json]
Parameters: none beyond common options such as --json.
4. Copy schema
Full name: system.form.schema.copy
Copy form schema resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form schema copy \
--source-form-id <uuid> --name <name> --api-name <apiName> \
[--description value] [--icon value] \
[--field-api-name-mode preserve|regenerate] [--json]
Parameters: none beyond common options such as --json.
5. Update schema
Full name: system.form.schema.update
Update form schema resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form schema update \
--form-id <uuid> [--name value] [--description value] [--icon value] \
[--version value] [--custom-config-json json] [--json]
Parameters: none beyond common options such as --json.
6. Enable schema
Full name: system.form.schema.enable
Enable form schema resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form schema enable --form-id <uuid> [--json]
Parameters: none beyond common options such as --json.
7. Disable schema
Full name: system.form.schema.disable
Disable form schema resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form schema disable --form-id <uuid> [--json]
Parameters: none beyond common options such as --json.
8. Delete schema
Full name: system.form.schema.delete
Delete form schema resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form schema delete --form-id <uuid> [--operation-id <uuid>] [--json]
formId (required) is the form UUID. Disable the form before deletion. Protected built-in forms and forms referenced by message templates cannot be deleted; form-model adjustment permission is required.
This command returns background-operation state. Call system.operation.get with the returned operationId until completed, failed, or cancelled; the deletion result is in result.deleted. Supply --operation-id to choose an ID. If the submission response is lost, retry with the same ID and the same input rather than generating another ID.
9. List fields
Full name: system.form.field.list
List form field records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form field list \
--form-id <uuid> [--keyword value] [--cursor value] [--limit n] \
[--json]
Parameters: none beyond common options such as --json.
10. Search field
Full name: system.form.field.search
Search form field records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form field search \
[--keyword value] [--form-limit n] [--field-limit n] [--json]
Parameters: none beyond common options such as --json.
11. Retrieve field
Full name: system.form.field.get
Retrieve form field resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form field get --field-id <uuid> [--json]
Parameters: none beyond common options such as --json.
12. Create field
Full name: system.form.field.create
Create form field resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form field create \
--form-id <uuid> --definition-json json [--json]
Parameters: none beyond common options such as --json.
Formula configuration requires a non-empty expression: use config.dynamicFormula.formulaExpression for a dynamic formula, or defaultValue.formulaExpression with defaultValue.mode set to formula for a formula default. Missing expressions return FORMS_FIELD_FORMULA_EXPRESSION_REQUIRED.
13. Update field
Full name: system.form.field.update
Update form field resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form field update \
--field-id <uuid> --definition-json json [--json]
Parameters: none beyond common options such as --json.
Formula configuration requires a non-empty expression: use config.dynamicFormula.formulaExpression for a dynamic formula, or defaultValue.formulaExpression with defaultValue.mode set to formula for a formula default. Missing expressions return FORMS_FIELD_FORMULA_EXPRESSION_REQUIRED.
14. Delete field
Full name: system.form.field.delete
Delete form field resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form field delete --field-id <uuid> [--json]
Parameters: none beyond common options such as --json.
15. Retrieve field script binding
Full name: system.form.field.script-binding.get
Retrieve form field script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form field script-binding get \
--asset-id <uuid> (--form-id <uuid>|--form-api-name value) \
(--field-id <uuid>|--field-api-name value) [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDformApiName(required)— Form API name containing the target fieldfieldApiName(required)— Field API name in the form; must match the so_* format
16. Bind field script binding
Full name: system.form.field.script-binding.bind
Bind form field script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form field script-binding bind \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) \
(--field-id <uuid>|--field-api-name value) [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformApiName(required)— Form API name containing the target fieldfieldApiName(required)— Field API name in the form; must match the so_* format
17. Unbind field script binding
Full name: system.form.field.script-binding.unbind
Unbind form field script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form field script-binding unbind \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) \
(--field-id <uuid>|--field-api-name value) [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformApiName(required)— Form API name containing the target fieldfieldApiName(required)— Field API name in the form; must match the so_* format
18. Verify field script binding
Full name: system.form.field.script-binding.verify
Verify form field script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form field script-binding verify \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) \
(--field-id <uuid>|--field-api-name value) [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformApiName(required)— Form API name containing the target fieldfieldApiName(required)— Field API name in the form; must match the so_* format
19. Catalog formula
Full name: system.form.formula.catalog
Catalog form formula resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form formula catalog [--json]
Parameters: none beyond common options such as --json.
20. Validate formula
Full name: system.form.formula.validate
Validate form formula resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form formula validate \
--form-id <uuid> --expression <formula> \
--result-data-type string|number|boolean|date|datetime|array|object \
[--json]
Parameters: none beyond common options such as --json.
21. Preview formula
Full name: system.form.formula.preview
Preview form formula resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form formula preview \
--form-id <uuid> --expression <formula> \
--result-data-type string|number|boolean|date|datetime|array|object \
--values-json '{"so_field":value}' [--json]
Parameters: none beyond common options such as --json.
22. List layouts
Full name: system.form.layout.list
List form layout records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form layout list \
--form-id <uuid> [--keyword value] [--cursor value] [--limit n] \
[--json]
Parameters:
formId(required)— Existing form UUID discovered with system.form.schema commandskeyword(optional)— Case-insensitive layout-name filtercursor(optional)— Opaque cursor returned by the previous list calllimit(optional)— Maximum items to return from 1 to 100; defaults to 20
23. Retrieve layout
Full name: system.form.layout.get
Retrieve form layout resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form layout get --layout-id <uuid> [--json]
Parameters:
layoutId(required)— Existing layout UUID returned by layout list
24. Create layout
Full name: system.form.layout.create
Create form layout resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form layout create \
--form-id <uuid> (--definition-json json|--definition-file path) \
[--json]
Parameters:
formId(required)— Existing form UUID discovered with system.form.schema commandsdefinition(required)— Custom-layout definition described by layoutConfiguration
25. Update layout
Full name: system.form.layout.update
Update form layout resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form layout update \
--layout-id <uuid> (--definition-json json|--definition-file path) \
[--json]
Parameters:
layoutId(required)— Existing layout UUID returned by layout listdefinition(required)— Exactly one metadata or full canvas section described by layoutConfiguration
26. Delete layout
Full name: system.form.layout.delete
Delete form layout resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form layout delete --layout-id <uuid> [--json]
Parameters:
layoutId(required)— Existing custom layout UUID; DEFAULT cannot be deleted
27. Retrieve layout page event
Full name: system.form.layout.page-event.get
Retrieve form layout page event resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form layout page-event get \
--asset-id <uuid> (--form-id <uuid>|--form-api-name value) \
--layout-id <uuid> [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDformId|formApiName(required)— Form UUID or API namelayoutId(required)— Custom NEW or EDIT layout UUID
28. Bind layout page event
Full name: system.form.layout.page-event.bind
Bind form layout page event resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form layout page-event bind \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) --layout-id <uuid> \
--event-type main-init|main-field-change|child-row-add|child-field-change|child-row-remove \
[--child-table-api-name value] [--field-mode all|specified] \
[--fields-json json] [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformId|formApiName(required)— Form UUID or API namelayoutId(required)— Custom layout UUIDeventType(required)— main-init, main-field-change, child-row-add, child-field-change, or child-row-remove
29. Unbind layout page event
Full name: system.form.layout.page-event.unbind
Unbind form layout page event resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form layout page-event unbind \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) --layout-id <uuid> \
--event-type main-init|main-field-change|child-row-add|child-field-change|child-row-remove \
[--child-table-api-name value] [--field-mode all|specified] \
[--fields-json json] [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformId|formApiName(required)— Form UUID or API namelayoutId(required)— Custom layout UUIDeventType(required)— The event target to remove
30. Verify layout page event
Full name: system.form.layout.page-event.verify
Verify form layout page event resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form layout page-event verify \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) --layout-id <uuid> \
--event-type main-init|main-field-change|child-row-add|child-field-change|child-row-remove \
[--child-table-api-name value] [--field-mode all|specified] \
[--fields-json json] [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformId|formApiName(required)— Form UUID or API namelayoutId(required)— Custom layout UUIDeventType(required)— The event target to verify
31. List print templates
Full name: system.form.print-template.list
List form print template records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form print-template list \
--form-id <uuid> [--keyword value] [--status enabled|disabled] \
[--visible-to-actor] [--cursor value] [--limit n] [--json]
Parameters:
formId(required)— Existing form UUID from system.form.schema.listcursor|limit(optional)— Opaque nextCursor and a 1-100 result limitkeyword|enabled(optional)— Optional name/description search and enabled filtervisibleToActor(optional)— When true, retain only templates whose enabled scope matches the current actor
32. Retrieve print template
Full name: system.form.print-template.get
Retrieve form print template resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form print-template get --template-id <uuid> [--json]
Parameters:
templateId(required)— Template UUID returned by print-template.list
33. Create print template
Full name: system.form.print-template.create
Create form print template resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form print-template create \
--form-id <uuid> (--definition-json json|--definition-file path) \
[--json]
Parameters:
formId(required)— Target form UUIDname(required)— Template name, 1-200 charactersdescription|enabled|priority(optional)— Metadata and selection priority. Higher priority winsfollowTemplateId(optional)— Template in the same form to inherit structure from; nested inheritance is forbiddenlayout|scopes(optional)— Typed page-region layout and complete visibility scopes
34. Update print template
Full name: system.form.print-template.update
Update form print template resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form print-template update \
--template-id <uuid> --expected-revision <n> \
(--definition-json json|--definition-file path) [--json]
Parameters:
templateId(required)— Template UUIDexpectedRevision(required)— Revision returned by get; stale revisions are rejectedchanges(required)— At least one metadata, inheritance, layout, background, or scope change
35. Delete print template
Full name: system.form.print-template.delete
Delete form print template resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: High risk
sl system form print-template delete \
--template-id <uuid> --expected-revision <n> [--json]
Parameters:
templateId(required)— Non-system template UUIDexpectedRevision(required)— Revision returned by get; stale revisions are rejected
36. Resolve print template
Full name: system.form.print-template.resolve
Resolve form print template resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form print-template resolve --form-id <uuid> [--json]
Parameters:
formId(required)— Form UUIDprintType(optional)— DEFAULT when omitted. Resolves scope, priority, and effective inheritance
37. Retrieve print design context
Full name: system.form.print-design.context.get
Retrieve form print design context resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form print-design context get \
(--session-id <uuid>|--form-id <uuid> [--template-id <uuid>] [--active-page-id <uuid>]) \
[--json]
Parameters:
sessionId(optional)— Resume an unexpired authoritative design sessionformId(optional)— Required when creating a session; mutually exclusive with sessionIdtemplateId(optional)— Existing template to edit. Omit to create a new templateactivePageId(optional)— Existing page UUID to focus. The Runtime verifies it against the template
38. Validate print design patch
Full name: system.form.print-design.patch.validate
Validate form print design patch resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form print-design patch validate \
--session-id <uuid> (--definition-json json|--definition-file path) \
[--json]
Parameters:
sessionId(required)— Session returned by context.getpatch(required)— Complete strict semantic patch. Read-only validation materializes the final canvas and returns exact diagnostics before approval
39. Execute print design patch
Full name: system.form.print-design.patch.execute
Execute form print design patch resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form print-design patch execute \
--session-id <uuid> --base-revision <n> --idempotency-key <key> \
(--definition-json json|--definition-file path) [--json]
Parameters:
sessionId(required)— Same session used for validationbaseRevision(required)— Unchanged session revision used for validationidempotencyKey(required)— Stable caller key; retry the same patch with the same keypatch(required)— The normalized patch returned by patch.validate, unchanged
40. Retrieve runtime list metadata
Full name: system.form.runtime.list-metadata.get
Retrieve form runtime list metadata resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form runtime list-metadata get \
--form-api-name <apiName> [--layout-page-type LIST|RELATION] [--json]
Parameters: none beyond common options such as --json.
41. Retrieve runtime list bootstrap
Full name: system.form.runtime.list-bootstrap.get
Retrieve form runtime list bootstrap resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form runtime list-bootstrap get \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
42. Retrieve runtime view bootstrap
Full name: system.form.runtime.view-bootstrap.get
Retrieve form runtime view bootstrap resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form runtime view-bootstrap get \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
43. Retrieve runtime editor bootstrap
Full name: system.form.runtime.editor-bootstrap.get
Retrieve form runtime editor bootstrap resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form runtime editor-bootstrap get \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
44. List runtime saved filters
Full name: system.form.runtime.saved-filter.list
List form runtime saved filter records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form runtime saved-filter list --form-id <uuid> [--json]
Parameters: none beyond common options such as --json.
45. Save runtime saved filter
Full name: system.form.runtime.saved-filter.save
Save form runtime saved filter resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form runtime saved-filter save \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
46. Delete runtime saved filter
Full name: system.form.runtime.saved-filter.delete
Delete form runtime saved filter resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form runtime saved-filter delete --filter-id <uuid> [--json]
Parameters: none beyond common options such as --json.
47. List runtime table views
Full name: system.form.runtime.table-view.list
List form runtime table view records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form runtime table-view list --form-id <uuid> [--json]
Parameters: none beyond common options such as --json.
48. Save runtime table view
Full name: system.form.runtime.table-view.save
Save form runtime table view resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form runtime table-view save \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
49. Delete runtime table view
Full name: system.form.runtime.table-view.delete
Delete form runtime table view resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form runtime table-view delete --view-id <uuid> [--json]
Parameters: none beyond common options such as --json.
50. List records
Full name: system.form.record.list
List form record records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form record list \
--form-api-name <apiName> [--keyword value] [--keywords-json json] \
[--search-field-api-name value] \
[--data-status draft|active|archived|trashed] \
[--approval-status none|pending|approved|rejected|returned|canceled] \
[--visibility-states-json json] [--condition-json json] \
[--sort-field-api-name value] [--sort-direction asc|desc] \
[--cursor value] [--limit n] [--include-detail] [--json]
Parameters: none beyond common options such as --json.
51. Retrieve record
Full name: system.form.record.get
Retrieve form record resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form record get --record-id <uuid> [--json]
Parameters: none beyond common options such as --json.
52. Aggregate record
Full name: system.form.record.aggregate
Aggregate form record resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form record aggregate \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
53. List record permission subjects
Full name: system.form.record.permission-subject.list
List form record permission subject records. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form record permission-subject list \
--record-id <uuid> [--cursor value] [--limit n] [--json]
Parameters: none beyond common options such as --json.
54. Save a record with child tables
Full name: system.form.record.save-with-child-tables
Save with child tables for form record. This tenant-scoped Runtime command validates its input against the registered command schema. The Runtime checks the corresponding button permission and runs configured before/after scripts, including each child-table write. A failed before script prevents the transaction. Inspect afterScript and childScripts: an after-script failure does not roll back committed data and must not trigger a repeat write. Delete through preset:detail.delete or preset:listBatch.delete; never set dataStatus to trashed in an update. Submit approval is determined by server configuration. · Risk: Write
sl system form record save-with-child-tables \
(--definition-json json|--definition-file path) [--json]
Parameters: none beyond common options such as --json.
55. Copy record
Full name: system.form.record.copy
Copy form record resource. This tenant-scoped Runtime command validates its input against the registered command schema. The Runtime checks the corresponding button permission and runs configured before/after scripts, including each child-table write. A failed before script prevents the transaction. Inspect afterScript and childScripts: an after-script failure does not roll back committed data and must not trigger a repeat write. Delete through preset:detail.delete or preset:listBatch.delete; never set dataStatus to trashed in an update. Submit approval is determined by server configuration. · Risk: Write
sl system form record copy \
--record-id <uuid> [--title value] \
[--data-status draft|active|archived] [--exclude-child-tables] \
[--submit-approval] [--json]
Parameters: none beyond common options such as --json.
56. Create record batch
Full name: system.form.record.batch.create
Create form record batch resource. This tenant-scoped Runtime command validates its input against the registered command schema. The Runtime checks the corresponding button permission and runs configured before/after scripts, including each child-table write. A failed before script prevents the transaction. Inspect afterScript and childScripts: an after-script failure does not roll back committed data and must not trigger a repeat write. Delete through preset:detail.delete or preset:listBatch.delete; never set dataStatus to trashed in an update. Submit approval is determined by server configuration. · Risk: Write
sl system form record batch create \
--form-api-name <apiName> --button-key preset:form.submit \
--records-json '[{"title":"title","data":{}}]' [--json]
Parameters: none beyond common options such as --json.
57. Create a record batch with child tables
Full name: system.form.record.batch.create-with-child-tables
Create with child tables for form record batch. This tenant-scoped Runtime command validates its input against the registered command schema. The Runtime checks the corresponding button permission and runs configured before/after scripts, including each child-table write. A failed before script prevents the transaction. Inspect afterScript and childScripts: an after-script failure does not roll back committed data and must not trigger a repeat write. Delete through preset:detail.delete or preset:listBatch.delete; never set dataStatus to trashed in an update. Submit approval is determined by server configuration. · Risk: Write
sl system form record batch create-with-child-tables \
--form-api-name <apiName> --button-key preset:form.submit \
--records-json '[{"title":"title","data":{},"childTables":[{"childFormApiName":"order_items","records":[{"title":"item","data":{}}]}]}]' \
[--json]
Parameters: none beyond common options such as --json.
58. Update record batch
Full name: system.form.record.batch.update
Update form record batch resource. This tenant-scoped Runtime command validates its input against the registered command schema. The Runtime checks the corresponding button permission and runs configured before/after scripts, including each child-table write. A failed before script prevents the transaction. Inspect afterScript and childScripts: an after-script failure does not roll back committed data and must not trigger a repeat write. Delete through preset:detail.delete or preset:listBatch.delete; never set dataStatus to trashed in an update. Submit approval is determined by server configuration. · Risk: Write
sl system form record batch update \
--form-api-name <apiName> --button-key preset:form.save \
--records-json '[{"recordId":"uuid","data":{}}]' [--json]
Parameters: none beyond common options such as --json.
59. Clean up record
Full name: system.form.record.cleanup
Clean up form record resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form record cleanup \
--form-api-name <apiName> --mode restore|purge [--keyword value] \
[--keywords-json json] [--search-field-api-name value] \
[--visibility-states-json json] [--condition-json json] \
[--excluded-record-ids-json json] [--json]
Parameters: none beyond common options such as --json.
60. List buttons
Full name: system.form.button.list
List configured actions only after read-only Runtime discovery resolves the authoritative form apiName and record id. Built-in organization-directory profiles use formApiName organization, department, or member and the selected PROFILE extension formRecordId; never invent a prefixed form name or use the directory entity id. · Risk: Read
sl system form button list \
--form-api-name <apiName> [--scope LIST|VIEW|NEW|EDIT] \
[--record-id <uuid>] [--json]
Parameters: none beyond common options such as --json.
61. Execute button
Full name: system.form.button.execute
Execute one exact button returned by system.form.button.list for the same authoritative form apiName and record target. Organization-directory writes use formApiName organization, department, or member and the PROFILE extension formRecordId. Forward records to chat with preset:detail.forward (recordId) or preset:listBatch.forward (recordIds), and input {targetMemberIds, clientBatchId}. Resolve recipients using system.organization.structure.member.list; ambiguous names require clarification. The server generates record links and enforces button/read permissions. The Runtime checks the corresponding button permission and runs configured before/after scripts, including each child-table write. A failed before script prevents the transaction. Inspect afterScript and childScripts: an after-script failure does not roll back committed data and must not trigger a repeat write. Delete through preset:detail.delete or preset:listBatch.delete; never set dataStatus to trashed in an update. Submit approval is determined by server configuration. · Risk: Write
sl system form button execute \
--form-api-name <apiName> --button-key <preset:key|custom:id> \
[--payload-json '{"recordId":"uuid","draft":{"title":"title","data":{}},"input":{}}'] \
[--json]
Forward buttons: preset:detail.forward requires recordId; preset:listBatch.forward requires recordIds; input requires targetMemberIds (member UUIDs) and clientBatchId (retry UUID).
Parameters: none beyond common options such as --json.
62. Retrieve button design
Full name: system.form.button.design.get
Retrieve form button design resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form button design get \
(--form-id <uuid>|--form-api-name value) [--json]
Parameters:
formId|formApiName(required)— Exactly one form target
63. Update button design
Full name: system.form.button.design.update
Update form button design resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form button design update \
(--form-id <uuid>|--form-api-name value) --definition-json json \
[--json]
Parameters:
formId|formApiName(required)— Exactly one form targetformActionButtons(required)— Full replacement custom button array. Read it first with design.getpresetActionButtons(required)— Full replacement preset override array. Read it first with design.get
64. Create custom button design
Full name: system.form.button.design.custom.create
Create form button design custom resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form button design custom create \
(--form-id <uuid>|--form-api-name value) --definition-json json \
[--json]
Parameters:
formId|formApiName(required)— Exactly one form targetlabel(required)— Button labelplacement(required)— One supported button placementbuttonType(optional)— Defaults to taskaction(optional)— Defaults to an unbound script action. An interaction button must provide a studioPage action with studioPageAssetIdscopes(optional)— Defaults to the scopes allowed by placementorder(optional)— Defaults to the next order in the placementenabled(optional)— Defaults to truedisplayMode(optional)— exposed or collapsed; defaults to exposedvariant(optional)— Optional visual variantcolor(optional)— Optional button color
65. Update custom button design
Full name: system.form.button.design.custom.update
Update form button design custom resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form button design custom update \
--button-id <uuid> (--form-id <uuid>|--form-api-name value) \
--definition-json json [--json]
Parameters:
formId|formApiName(required)— Exactly one form targetbuttonId(required)— Existing custom button idaction(optional)— Complete replacement action when changing the action type
66. Delete custom button design
Full name: system.form.button.design.custom.delete
Delete form button design custom resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form button design custom delete \
--button-id <uuid> (--form-id <uuid>|--form-api-name value) [--json]
Parameters:
formId|formApiName(required)— Exactly one form targetbuttonId(required)— Existing custom button id
67. Retrieve button script binding
Full name: system.form.button.script-binding.get
Retrieve form button script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form button script-binding get \
--asset-id <uuid> (--form-id <uuid>|--form-api-name value) [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDformId|formApiName(required)— Form UUID or API name
68. Bind button script binding
Full name: system.form.button.script-binding.bind
Bind form button script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form button script-binding bind \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) \
--button-key preset:key|custom:id \
--phase beforeClick|action|afterClick [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformId|formApiName(required)— Form UUID or API namebuttonKey(required)— preset:key or custom:idphase(required)— beforeClick, action, or afterClick
69. Unbind button script binding
Full name: system.form.button.script-binding.unbind
Unbind form button script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Write
sl system form button script-binding unbind \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) \
--button-key preset:key|custom:id \
--phase beforeClick|action|afterClick [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformId|formApiName(required)— Form UUID or API namebuttonKey(required)— preset:key or custom:idphase(required)— beforeClick, action, or afterClick
70. Verify button script binding
Full name: system.form.button.script-binding.verify
Verify form button script binding resource. This tenant-scoped Runtime command validates its input against the registered command schema. · Risk: Read
sl system form button script-binding verify \
--asset-id <uuid> --file-path value \
(--form-id <uuid>|--form-api-name value) \
--button-key preset:key|custom:id \
--phase beforeClick|action|afterClick [--json]
Parameters:
studioAssetId(required)— Published Studio script asset UUIDstudioFilePath(required)— Published Studio script file pathformId|formApiName(required)— Form UUID or API namebuttonKey(required)— preset:key or custom:idphase(required)— beforeClick, action, or afterClick
71. Batch import fields
Full name: system.form.field.batch-import · Risk: Write
sl system form field batch-import --form-id <uuid> \
(--definition-json json|--definition-file path) [--json]
Definition JSON contains rows (1–200 rows). Each row requires name, apiName, type, required, readonly, disabled, hidden, and options. Use null for non-choice options, and an array of {label, value} for choice fields. Optional fieldId updates an existing field; otherwise, matching uses apiName and creates a field when no match exists. Relation fields accept targetFormId, which is required when creating a relation field.
Import supports basic fields, excluding computed fields such as dynamic formulas. Existing API names and types cannot be changed through import, default fields cannot be updated, and required fields cannot be disabled. Any row failure rolls back the entire batch. Returns createdCount and updatedCount.
fields.json:
{
"rows": [{
"name": "Job Title",
"apiName": "so_job_title",
"type": "autocomplete",
"required": false,
"readonly": false,
"disabled": false,
"hidden": false,
"options": [{ "label": "Designer", "value": "Designer" }]
}]
}
Use null options for non-choice fields. Autocomplete label and value must match. New search, multi_search, and foreign_key fields require targetFormId; omit it on updates to preserve the existing relation configuration. Inline JSON is also accepted with --definition-json.
72. Export fields
Full name: system.form.field.export · Risk: Read
sl system form field export --form-id <uuid> [--json]
formId (required) is the form UUID. Export field-design data to inspect it or prepare a batch import; imports must still follow their supported field types and row format.