Homepage

RootMutation

Last edit: Oct 13, 2026

Entry point of all mutations: operations that create, change or delete data, or
trigger side effects such as sending notifications

type RootMutation {
  activity_create(payload: ActivityStreamsPayload!): ActivityStreamsActivity
  activity_delete_all(confirm: Boolean): [ID]
  activity_publish(
    at: ISO8601DateTime
    feed_type: String!
    ids: [ID]!
    uuid: ID!
  ): JSONDate
  activity_unpublish(
    record_id: ID
    related_to_object: ActiveRecordReference
    uuid: ID
  ): [ID]
  activity_unpublish_all(confirm: Boolean): [ID]
  admin_api_call_notification_create(
    api_call_notification: ApiCallNotificationInputType!
  ): ApiCallNotification
  admin_api_call_notification_delete(
    id: ID
    physical_file_path: String
  ): ApiCallNotification
  admin_api_call_notification_update(
    api_call_notification: UpdateApiCallNotificationInputType!
    id: ID
    physical_file_path: String
  ): ApiCallNotification
  admin_asset_delete(physical_file_path: String!): Asset
  admin_asset_delete_all(
    filter: MutationAssetsFilterInput!
    hard_delete: Boolean
  ): String
  admin_asset_update(
    asset: AssetUpdateInput!
    physical_file_path: String!
  ): Asset
  admin_asset_update_all(
    asset: AssetUpdateAllInput!
    filter: MutationAssetsFilterInput!
  ): ObjectCount
  admin_assets_create(assets: [AssetInput!]!): AssetsCreateMutationPayload
  admin_assets_listing_create: AssetsListingIdentifier!
  admin_assets_presign_urls(
    paths: [AssetPresignInput!]!
  ): AssetsPresignUrlsMutationPayload
  admin_authorization_policy_create(
    authorization_policy: AuthorizationPolicyInputType!
  ): AuthorizationPolicy
  admin_authorization_policy_delete(
    id: ID
    physical_file_path: String
  ): AuthorizationPolicy
  admin_authorization_policy_update(
    authorization_policy: UpdateAuthorizationPolicyInputType!
    id: ID
    physical_file_path: String
  ): AuthorizationPolicy
  admin_background_job_delete(id: ID!): BackgroundJob
  admin_background_job_retry(id: ID!): BackgroundJob
  admin_background_jobs_delete_all(
    filter: BackgroundJobsFilterInput
  ): BackgroundJobsResult
  admin_email_notification_create(
    email_notification: EmailNotificationInputType!
  ): EmailNotification
  admin_email_notification_delete(
    id: ID
    physical_file_path: String
  ): EmailNotification
  admin_email_notification_delete_all(
    filter: EmailNotificationsFilterInput!
  ): ObjectCount
  admin_email_notification_update(
    email_notification: UpdateEmailNotificationInputType!
    id: ID
    physical_file_path: String
  ): EmailNotification
  admin_email_notification_update_all(
    email_notification: UpdateEmailNotificationInputType!
    filter: EmailNotificationsFilterInput!
  ): ObjectCount
  admin_field_create(field: StandalonePropertyInputType!): Property
  admin_field_delete(id: ID!): Property
  admin_field_update(
    field: UpdateStandalonePropertyInputType!
    id: ID!
  ): Property
  admin_form_configuration_create(
    form_configuration: FormConfigurationInputType!
  ): FormConfiguration
  admin_form_configuration_delete(id: ID!): FormConfiguration
  admin_form_configuration_update(
    form_configuration: UpdateFormConfigurationInputType!
    id: ID!
  ): FormConfiguration
  admin_form_create(form: FormInput!): Form
  admin_form_delete(id: ID, physical_file_path: String): Form
  admin_form_delete_all(filter: FormsFilterInput!): ObjectCount
  admin_form_update(
    form: UpdateFormInput!
    id: ID
    physical_file_path: String
  ): Form
  admin_form_update_all(
    filter: FormsFilterInput!
    form: UpdateFormInput!
  ): ObjectCount
  admin_graphql_create(graphql: GraphqlInputType!): GraphQL
  admin_graphql_delete(physical_file_path: String!): GraphQL
  admin_graphql_update(
    graphql: UpdateGraphqlInputType!
    physical_file_path: String!
  ): GraphQL
  admin_liquid_layout_create(
    liquid_layout: LiquidLayoutInputType!
  ): LiquidLayout
  admin_liquid_layout_delete(id: ID, physical_file_path: String): LiquidLayout
  admin_liquid_layout_delete_all(
    filter: LiquidLayoutsFilterInput!
    sync: Boolean
  ): ObjectCount
  admin_liquid_layout_update(
    id: ID
    liquid_layout: UpdateLiquidLayoutInputType!
    physical_file_path: String
  ): LiquidLayout
  admin_liquid_layout_update_all(
    filter: LiquidLayoutsFilterInput!
    liquid_layout: UpdateLiquidLayoutInputType!
  ): ObjectCount
  admin_liquid_partial_create(
    liquid_partial: LiquidPartialInputType!
  ): LiquidPartial
  admin_liquid_partial_delete(id: ID, physical_file_path: String): LiquidPartial
  admin_liquid_partial_delete_all(
    filter: LiquidPartialsFilterInput!
    sync: Boolean
  ): ObjectCount
  admin_liquid_partial_update(
    id: ID
    liquid_partial: UpdateLiquidPartialInputType!
    physical_file_path: String
  ): LiquidPartial
  admin_liquid_partial_update_all(
    filter: LiquidPartialsFilterInput!
    liquid_partial: UpdateLiquidPartialInputType!
  ): ObjectCount
  admin_model_schema_create(model_schema: ModelSchemaInputType!): ModelSchema
  admin_model_schema_delete(id: ID, physical_file_path: String): ModelSchema
  admin_model_schema_update(
    id: ID
    model_schema: UpdateModelSchemaInputType!
    physical_file_path: String
  ): ModelSchema
  admin_page_create(page: PageInputType!): Page
  admin_page_delete(id: ID, physical_file_path: String): Page
  admin_page_update(
    id: ID
    page: UpdatePageInputType!
    physical_file_path: String
  ): Page
  admin_page_update_all(
    filter: PageFilterInput!
    page: UpdatePageInputType!
  ): ObjectCount!
  admin_pages_delete_all(filter: PageFilterInput!, sync: Boolean): ObjectCount!
  admin_property_create(property: StandalonePropertyInputType!): Property
  admin_property_delete(id: ID!): Property
  admin_property_update(
    id: ID!
    property: UpdateStandalonePropertyInputType!
  ): Property
  admin_sms_notification_create(
    sms_notification: SmsNotificationInputType!
  ): SmsNotification
  admin_sms_notification_delete(
    id: ID
    physical_file_path: String
  ): SmsNotification
  admin_sms_notification_update(
    id: ID
    physical_file_path: String
    sms_notification: UpdateSmsNotificationInputType!
  ): SmsNotification
  admin_table_create(table: TableInputType!): Table
  admin_table_delete(physical_file_path: String!): Table
  admin_table_update(
    physical_file_path: String!
    table: UpdateTableInputType!
  ): Table
  admin_transactable_schema_create(
    transactable_schema: TransactableSchemaInputType!
  ): TransactableSchema
  admin_transactable_schema_delete(id: ID!): TransactableSchema
  admin_transactable_schema_update(
    id: ID!
    transactable_schema: UpdateTransactableSchemaInputType!
  ): TransactableSchema
  admin_translation_create(translation: TranslationInputType!): Translation
  admin_translation_delete(key: String!, locale: String!): Translation
  admin_translation_set(translation: TranslationInputType!): Translation
  admin_translation_set_json(
    strategy: TranslationJsonStrategy!
    translation: TranslationJsonInputType!
  ): TranslationJson
  admin_translation_unset(key: String!, locale: String!): Translation
  admin_translation_update(
    key: String!
    locale: String!
    translation: UpdateTranslationInputType!
  ): Translation
  admin_user_profile_schema_create(
    user_profile_schema: UserProfileSchemaInputType!
  ): UserProfileSchema
  admin_user_profile_schema_delete(
    id: ID
    physical_file_path: String
  ): UserProfileSchema
  admin_user_profile_schema_update(
    id: ID
    physical_file_path: String
    user_profile_schema: UpdateUserProfileSchemaInputType!
  ): UserProfileSchema
  api_call_send(
    api_call: ApiCallSendRequestInput
    data: HashObject
    options: ApiCallSendOptions
    template: NotificationTemplateInput
  ): ApiCallSendPayload
  attachment_presign_url(
    options: AttachmentPresignUrlInput
  ): AttachmentPresignedUploadUrl!
  channel_send_message(
    channel_name: String!
    payload: JSONPayload!
    room_id: String!
  ): String
  constant_set(name: String!, value: String!): EncryptedConstant!
  constant_unset(name: String!): EncryptedConstant
  custom_attachment_create(
    custom_attachment: CustomAttachmentInputType!
    form_configuration_name: String
    form_name: String
  ): CustomAttachment
  custom_attachment_delete(
    form_configuration_name: String
    form_name: String
    id: ID!
  ): CustomAttachment
  custom_attachment_update(
    custom_attachment: UpdateCustomAttachmentInputType!
    form_configuration_name: String
    form_name: String
    id: ID!
  ): CustomAttachment
  custom_image_create(
    custom_image: NewCustomImageInputType!
    form_configuration_name: String
    form_name: String
  ): CustomImage
  custom_image_delete(
    form_configuration_name: String
    form_name: String
    id: ID!
  ): CustomImage
  custom_image_update(
    custom_image: CustomImageInputType!
    form_configuration_name: String
    form_name: String
    id: ID!
  ): CustomImage
  customization_create(
    customization: CustomizationInputType
    form_configuration_name: String
    form_name: String
    model: CustomizationInputType
  ): Customization!
  customization_delete(
    form_configuration_name: String
    form_name: String
    id: ID!
  ): Customization!
  customization_update(
    customization: CustomizationInputType
    form_configuration_name: String
    form_name: String
    id: ID!
    model: CustomizationInputType
  ): Customization!
  customizations_delete_all(
    all_custom_model_types: Boolean
    all_model_schemas: Boolean
    custom_model_type_name: String
    filter: ModelsFilterInput
    model_schema_name: String
    sync: Boolean
  ): ObjectCount!
  data_export(
    encryption: PropertyUploadEncryptionInput
    models: DataExportModelsInput
    records: DataExportRecordsInput
    split_files: Boolean = true
    users: DataExportUsersInput
  ): DataExport!
  data_export_delete(id: ID!): DataExport!
  documents_bulk_upsert(
    documents: [HashObject]!
    search_index: String!
  ): HashObject
  documents_bulk_upsert_rc(
    documents: [HashObject]!
    search_index: String!
  ): HashObject
  documents_delete(id: ID!, search_index: String!): HashObject
  documents_delete_rc(id: ID!, search_index: String!): HashObject
  documents_insert(
    document: HashObject!
    id: ID
    search_index: String!
  ): HashObject
  documents_insert_rc(
    document: HashObject!
    id: ID
    search_index: String!
  ): HashObject
  documents_upsert(
    document: HashObject!
    id: ID
    search_index: String!
  ): HashObject
  documents_upsert_rc(
    document: HashObject!
    id: ID
    search_index: String!
  ): HashObject
  email_send(
    data: HashObject
    email: NotificationEmailInput
    template: NotificationTemplateInput
  ): NotificationSendEmailPayload
  embedding_create(embedding: EmbeddingCreateInputType!): Embedding!
  embedding_create_rc(embedding: EmbeddingCreateInputType!): Embedding!
  embedding_delete(id: ID!): Embedding!
  embedding_delete_rc(id: ID!): Embedding!
  embedding_update(embedding: EmbeddingUpdateInputType!, id: ID!): Embedding!
  embedding_update_rc(embedding: EmbeddingUpdateInputType!, id: ID!): Embedding!
  form_submit(
    fields: HashObject!
    form_name: String!
    id: ID
  ): FormSubmitPayload
  image_presign_url(options: ImagePresignUrlInput): ImagePresignedUploadUrl!
  import_models(
    _id_remap: Boolean = true
    _index_rebuild: Boolean = true
    models: [CustomizationImport!]!
  ): ImportCustomizationsMutationPayload
  import_transactables(
    _id_remap: Boolean = true
    _index_rebuild: Boolean = true
    transactables: [TransactableImport!]!
  ): ImportTransactablesMutationPayload
  import_users(
    _id_remap: Boolean = true
    _index_rebuild: Boolean = true
    users: [UserImport!]!
  ): ImportUsersMutationPayload
  jwt_decode_and_set_session(
    jwt_algorithm: JwtAlgorithm = HS256
    jwt_token: String!
  ): User
  log(message: Any!, type: LogEntryType!): LogEntry
  model_create(
    customization: CustomizationInputType
    form_configuration_name: String
    form_name: String
    model: CustomizationInputType
  ): Model!
  model_delete(
    form_configuration_name: String
    form_name: String
    id: ID!
  ): Model!
  model_update(
    customization: CustomizationInputType
    form_configuration_name: String
    form_name: String
    id: ID!
    model: CustomizationInputType
  ): Model!
  models_delete_all(
    all_custom_model_types: Boolean
    all_model_schemas: Boolean
    custom_model_type_name: String
    filter: ModelsFilterInput
    model_schema_name: String
    sync: Boolean
  ): ObjectCount!
  models_update_all(
    filter: ModelsFilterInput
    model: CustomizationInputType!
    model_schema_name: String!
    sync: Boolean
  ): ObjectCount!
  presigned_upload_url(options: PresignUrlInput): PresignedUploadUrl!
  property_upload_presigned_url(
    include_content_type: Boolean
    model_schema_name: String
    presign_url: PresignUrl
    property_name: String!
    table: String
    user: Boolean
  ): PropertyUploadPresignedUrl!
  record_create(form_name: String, record: RecordInputType!): Record!
  record_delete(form_name: String, id: ID!, table: String): Record!
  record_update(
    _index_update: Boolean = true
    form_name: String
    id: ID!
    record: RecordInputType!
  ): Record!
  records_create(records: [RecordsCreateInputType!]!): [RecordCreate!]!
  records_create_rc(records: [RecordsCreateInputType!]!): [RecordCreate!]!
  records_delete_all(
    any_table: Boolean
    filter: RecordsFilterInput
    sync: Boolean
    table: String
  ): ObjectCount!
  records_update_all(
    _index_update: Boolean
    filter: RecordsFilterInput
    record: RecordInputType!
    sync: Boolean
    table: String!
  ): ObjectCount!
  session_create_field(name: String!, value: Any!): HashObject
  session_delete_field(name: String!): HashObject
  sms_send(
    data: HashObject
    sms: SmsSendInput
    template: NotificationTemplateInput
  ): SmsSendPayload
  transactable_create(
    form_configuration_name: String
    transactable: TransactableInputType!
  ): Transactable!
  transactable_delete(form_configuration_name: String, id: ID!): Transactable!
  transactable_update(
    form_configuration_name: String
    id: ID!
    transactable: TransactableInputType!
  ): Transactable!
  transactables_delete_all(
    all_transactable_types: Boolean
    transactable_type_name: String
  ): ObjectCount!
  update_models(models: [ModelUpdate!]!): UpdateCustomizationsMutationPayload
  update_users(users: [UserUpdate!]!): UpdateUsersMutationPayload
  upload_delete(
    attribute_name: String
    delete_all_properties: Boolean
    sync: Boolean
    upload_object_id: ID!
    upload_object_type: ObjectsWithUploadsEnum!
  ): ObjectUpload!
  user_create(
    form_configuration_name: String
    form_name: String
    id: ID
    user: UserInputType!
  ): User
  user_delete(form_configuration_name: String, form_name: String, id: ID!): User
  user_otp_delete_token(
    otp_name: String
    user_id: ID!
  ): UserOtpDeleteTokenInformation
  user_otp_secret_refresh(
    otp_name: String
    user_id: ID!
  ): UserOtpSecretRefreshInformation
  user_profile_delete(
    form_configuration_name: String
    form_name: String
    profile_type: String!
    user_id: ID!
  ): Profile!
  user_profiles_delete_all(
    all_user_profile_types: Boolean
    user_id: Int
    user_profile_type_name: String
  ): ObjectCount!
  user_session_create(
    email: String
    form_configuration_name: String
    form_name: String
    password: String!
    remember_me: String = "1"
  ): User
  user_session_destroy(
    form_configuration_name: String
    form_name: String
  ): HashObject
  user_update(
    form_configuration_name: String
    form_name: String
    id: ID
    user: UserInputType!
  ): User
  users_delete_all(
    all_users: Boolean
    filter: UsersFilterInput
    sync: Boolean
  ): ObjectCount!
  users_update_all(
    all_users: Boolean
    filter: UsersFilterInput
    sync: Boolean
    user: UserInputType!
  ): ObjectCount!
}

Fields

activity_create (ActivityStreamsActivity)

Creates an activity and returns it. The activity gets a generated UUID, which
is also added to its payload as uuid. It is not added to any feed; use
activity_publish for that.

Activity data as a JSON object, typically in the Activity Streams format (type, actor, object, target)

activity_delete_all (ID)

Permanently deletes every activity and removes every feed of the instance. Does nothing unless confirm is true.

Must be true for the activities and feeds to be deleted

activity_publish (JSONDate)

Adds an activity to the feeds of the given owners. A feed is identified by its
type and its owner id; it keeps the 2000 most recent entries and older ones are dropped.

Time the entry is ordered by in the feeds. Defaults to now

Name of the feed type, e.g. User, UserPrivate, AuditLog, Images or Posts. Any name can be used

  • ids (ID)

Ids of the feed owners (for example user ids) whose feeds of this type receive the activity

  • uuid (ID)

UUID of the activity to add, as returned by activity_create

activity_unpublish (ID)

Removes activities from every feed they were published to. The activities
themselves are not deleted. Arguments can be combined; each one removes the
activities it matches.

  • record_id (ID)

Removes every activity whose actor, object, target or attributted_to is {"id": "<record_id>"}

Removes every activity whose payload contains "id": "<type>.<id>" for the given type and id (ids is ignored)

  • uuid (ID)

UUID of an activity to remove from all feeds

activity_unpublish_all (ID)

Removes every feed of the instance. Activities are not deleted. Does nothing unless confirm is true.

Must be true for the feeds to be removed

admin_api_call_notification_create (ApiCallNotification)

Creates an API call, the same as deploying an api_calls/*.liquid file, which
can then be sent with the api_call_send mutation. Raises a validation error if
an API call with the same physical_file_path or name already exists

Attributes of the new API call

admin_api_call_notification_delete (ApiCallNotification)

Deletes (soft-deletes) an API call found by physical_file_path (or the
deprecated id) and returns it. Raises an error when the API call does not
exist; API calls stored in a private module directory cannot be deleted

Deprecated, use physical_file_path. Id of the API call to delete

physical_file_path of the API call to delete; takes precedence over id

admin_api_call_notification_update (ApiCallNotification)

Updates an API call found by physical_file_path (or the deprecated id) and
returns it. Raises an error when the API call does not exist; API calls stored
in a private module directory cannot be updated

Attributes to change

Deprecated, use physical_file_path. Id of the API call to update

Current physical_file_path of the API call to update; takes precedence over id

admin_asset_delete (Asset)

Deletes an asset found by physical_file_path, including its file in storage,
and returns it. The file cannot be recovered. Already deleted assets are found
too. Raises an error when no such asset exists

physical_file_path of the asset to delete, for example assets/images/logo.png

admin_asset_delete_all (String)

Deletes (soft-deletes) all assets matching the filter in a background job and
returns scheduled. Already deleted assets are matched too unless the filter excludes them

Conditions the deleted assets must match

When true, the files are also removed from storage and cannot be recovered. Defaults to false

admin_asset_update (Asset)

Updates an asset found by physical_file_path and returns it; when the new
physical_file_path differs, the file is moved in storage. Raises an error when
no such asset exists; assets stored in a private module directory cannot be updated

Attributes to change

Current physical_file_path of the asset to update

admin_asset_update_all (ObjectCount)

Applies the same changes to all assets matching the filter in a background job
and returns the number of matched assets. Deleted assets and assets stored in
a private module directory are never matched

Attributes to change

Conditions the updated assets must match

admin_assets_create (AssetsCreateMutationPayload)

Creates or updates assets by name in one call and returns them. Only the asset
metadata is saved; upload the files separately. Raises a validation error,
saving nothing, if any asset is invalid

Assets to create or update; duplicate entries are saved once

admin_assets_listing_create (AssetsListingIdentifier)

Schedules a background job that generates a listing of all assets currently in
storage. Returns the ID to pass to the admin_assets_listing query, which
reports the status and the result.

admin_assets_presign_urls (AssetsPresignUrlsMutationPayload)

Returns temporary upload URLs for asset files, one per requested path, in the
same order. Uploading a file does not register it; register it with
admin_assets_create

Asset files to get upload URLs for

admin_authorization_policy_create (AuthorizationPolicy)

Creates an authorization policy, a Liquid condition that guards access to the
pages it is attached to. Raises a validation error if a policy with the same
physical_file_path or name already exists

Attributes of the new authorization policy

admin_authorization_policy_delete (AuthorizationPolicy)

Deletes (soft-deletes) an authorization policy found by physical_file_path (or
the deprecated id), detaches it from all pages using it, and returns it.
Raises an error when the policy does not exist; policies stored in a private
module directory cannot be deleted

Deprecated, use physical_file_path. Id of the policy to delete

physical_file_path of the policy to delete; takes precedence over id

admin_authorization_policy_update (AuthorizationPolicy)

Updates an authorization policy found by physical_file_path (or the deprecated
id) and returns it. Raises an error when the policy does not exist; policies
stored in a private module directory cannot be updated

Attributes to change

Deprecated, use physical_file_path. Id of the policy to update

Current physical_file_path of the policy to update; takes precedence over id

admin_background_job_delete (BackgroundJob)

Deletes a scheduled, retrying or dead background job of this instance and
returns it. Raises "Job not found" when no such job exists; running jobs
cannot be deleted

Id of the background job, as returned by admin_background_jobs

admin_background_job_retry (BackgroundJob)

Re-runs a dead background job (one that failed and has no retries left) of
this instance right away and returns it. Raises "Jobs not found" when no such
dead job exists

Id of the dead background job, as returned by admin_background_jobs

admin_background_jobs_delete_all (BackgroundJobsResult)

Deletes background jobs of this instance that match the filter and have not
run yet or have failed, and returns the deleted jobs. Looks at scheduled jobs
unless filter.type says otherwise. Deletes at most 100 jobs per call (the
first page of matches), so repeat the call until no results are returned

Conditions the deleted jobs must match; when omitted, all scheduled jobs are deleted (up to 100)

admin_email_notification_create (EmailNotification)

Creates an email notification, the same as deploying an emails/*.liquid file,
which can then be sent with the email_send mutation. Raises a validation error
if an email with the same physical_file_path or name already exists, or if any
Liquid attribute does not parse

Attributes of the new email notification

admin_email_notification_delete (EmailNotification)

Deletes (soft-deletes) an email notification found by physical_file_path (or
the deprecated id) and returns it. Raises an error when the email does not
exist; emails stored in a private module directory cannot be deleted

Deprecated, use physical_file_path. Id of the email notification to delete

physical_file_path of the email notification to delete; takes precedence over id

admin_email_notification_delete_all (ObjectCount)

Deletes (soft-deletes) all email notifications matching the filter in a
background job and returns the number of matched notifications. Notifications
stored in a private module directory are never matched

Conditions the deleted email notifications must match

admin_email_notification_update (EmailNotification)

Updates an email notification found by physical_file_path (or the deprecated
id) and returns it. Raises an error when the email does not exist; emails
stored in a private module directory cannot be updated

Attributes to change

Deprecated, use physical_file_path. Id of the email notification to update

Current physical_file_path of the email notification to update; takes precedence over id

admin_email_notification_update_all (ObjectCount)

Applies the same changes to all email notifications matching the filter in a
background job and returns the number of matched notifications. Notifications
stored in a private module directory are never matched. The job stops at the
first notification that fails validation

Attributes to change on every matched notification; trigger_condition and
delay_by are reset to their defaults unless given

Conditions the updated email notifications must match

admin_field_create (Property)

Deprecated, use admin_property_create. Adds a property to a table or to the user schema

Attributes of the new property

admin_field_delete (Property)

Deprecated, use admin_property_delete. Deletes a property

Id of the property to delete

admin_field_update (Property)

Deprecated, use admin_property_update. Updates a property

Attributes to change

Id of the property to update

admin_form_configuration_create (FormConfiguration)

Deprecated, use admin_form_create. Creates a form

Attributes of the new form

admin_form_configuration_delete (FormConfiguration)

Deprecated, use admin_form_delete. Deletes a form

Id of the form to delete

admin_form_configuration_update (FormConfiguration)

Deprecated, use admin_form_update. Updates a form

Attributes to change

Id of the form to update

admin_form_create (Form)

Creates a form. Deprecated, use a page with a GraphQL mutation instead

Attributes of the new form

admin_form_delete (Form)

Deletes (soft-deletes) a form found by physical_file_path (or the deprecated
id). Deprecated, use a page with a GraphQL mutation instead

Deprecated, use physical_file_path. Id of the form to delete

physical_file_path of the form to delete; takes precedence over id

admin_form_delete_all (ObjectCount)

Deletes (soft-deletes) all forms matching the filter in a background job and
returns the number of matched forms. Deprecated, use a page with a GraphQL
mutation instead

Conditions the deleted forms must match

admin_form_update (Form)

Updates a form found by physical_file_path (or the deprecated id). Deprecated, use a page with a GraphQL mutation instead

Attributes to change

Deprecated, use physical_file_path. Id of the form to update

Current physical_file_path of the form to update; takes precedence over id

admin_form_update_all (ObjectCount)

Applies the same changes to all forms matching the filter in a background job
and returns the number of matched forms. Deprecated, use a page with a GraphQL
mutation instead

Conditions the updated forms must match

Attributes to change on every matched form

admin_graphql_create (GraphQL)

Creates a stored GraphQL query or mutation that can be run with the graphql
tag. Never updates an existing one: raises a validation error if one with the
same name already exists or if the body is not valid GraphQL

Attributes of the new query

admin_graphql_delete (GraphQL)

Permanently deletes a stored GraphQL query found by physical_file_path and
returns it. Raises an error when no such query exists

physical_file_path of the query to delete

admin_graphql_update (GraphQL)

Updates a stored GraphQL query found by physical_file_path and returns it.
Raises an error when no such query exists; queries stored in a private module
directory cannot be updated

Attributes to change

Current physical_file_path of the query to update

admin_liquid_layout_create (LiquidLayout)

Creates a layout, the Liquid template pages are rendered into. Never updates
an existing layout: raises a validation error if the path is already taken or
the body is not valid Liquid

Attributes of the new layout

admin_liquid_layout_delete (LiquidLayout)

Permanently deletes a layout found by physical_file_path (or the deprecated
id) and returns it. Pages that still use the layout are not checked. Raises an
error when no such layout exists

Deprecated, use physical_file_path. Id of the layout to delete

physical_file_path of the layout to delete; takes precedence over id

admin_liquid_layout_delete_all (ObjectCount)

Permanently deletes all layouts matching the filter and returns the number of
matched layouts. Runs in a background job unless sync is true; layouts that
fail to delete are skipped

Conditions the deleted layouts must match

When true, the deletion finishes before the mutation returns instead of in a background job

admin_liquid_layout_update (LiquidLayout)

Updates a layout found by physical_file_path (or the deprecated id) and
returns it. Raises an error when no such layout exists

Deprecated, use physical_file_path. Id of the layout to update

Attributes to change

Current physical_file_path of the layout to update; takes precedence over id

admin_liquid_layout_update_all (ObjectCount)

Applies the same changes to all layouts matching the filter in a background
job and returns the number of matched layouts. The job stops at the first
layout that fails validation

Conditions the updated layouts must match

Attributes to change on every matched layout; format is reset to html unless given

admin_liquid_partial_create (LiquidPartial)

Creates a partial, a reusable Liquid template rendered with the render,
include or function tags. Never updates an existing partial: raises a
validation error if the path is already taken or the body is not valid Liquid

Attributes of the new partial

admin_liquid_partial_delete (LiquidPartial)

Permanently deletes a partial found by physical_file_path (or the deprecated
id) and returns it. Raises an error when no such partial exists

Deprecated, use physical_file_path. Id of the partial to delete

physical_file_path of the partial to delete; takes precedence over id

admin_liquid_partial_delete_all (ObjectCount)

Permanently deletes all partials matching the filter and returns the number of
matched partials. Runs in a background job unless sync is true; partials that
fail to delete are skipped

Conditions the deleted partials must match

When true, the deletion finishes before the mutation returns instead of in a background job

admin_liquid_partial_update (LiquidPartial)

Updates a partial found by physical_file_path (or the deprecated id) and
returns it. Raises an error when no such partial exists

Deprecated, use physical_file_path. Id of the partial to update

Attributes to change

Current physical_file_path of the partial to update; takes precedence over id

admin_liquid_partial_update_all (ObjectCount)

Applies the same changes to all partials matching the filter in a background
job and returns the number of matched partials. The job stops at the first
partial that fails validation

Conditions the updated partials must match

Attributes to change on every matched partial; format is reset to html unless given

admin_model_schema_create (ModelSchema)

Creates a model schema (table) with its properties, and returns it. Same as
admin_table_create. Raises a validation error if a schema with the same name already exists

Attributes of the new schema

admin_model_schema_delete (ModelSchema)

Deletes (soft-deletes) a model schema (table) found by physical_file_path (or
the deprecated id) and returns it. Same as admin_table_delete; fails while
records still exist

Deprecated, use physical_file_path. Id of the schema to delete

physical_file_path of the schema to delete; takes precedence over id

admin_model_schema_update (ModelSchema)

Updates a model schema (table) found by physical_file_path (or the deprecated
id) and returns it. Same as admin_table_update. Raises an error when no such schema exists

Deprecated, use physical_file_path. Id of the schema to update

Attributes to change

Current physical_file_path of the schema to update; takes precedence over id

admin_page_create (Page)

Creates a page served at its slug. Never updates an existing page: raises a
validation error if another page already uses the same slug, format, request
method and subdomain, or if the content is not valid Liquid

Attributes of the new page

admin_page_delete (Page)

Deletes (soft-deletes) a page found by physical_file_path (or the deprecated
id) and returns it. Raises an error when no such page exists; pages stored in
a private module directory cannot be deleted

Deprecated, use physical_file_path. Id of the page to delete

physical_file_path of the page to delete; takes precedence over id

admin_page_update (Page)

Updates a page found by physical_file_path (or the deprecated id) and returns
it. Soft-deleted pages are found too and can be restored by setting deleted_at
to null. Raises an error when no such page exists; pages stored in a private
module directory cannot be updated

Deprecated, use physical_file_path. Id of the page to update

Attributes to change

Current physical_file_path of the page to update; takes precedence over id

admin_page_update_all (ObjectCount)

Applies the same changes to all pages matching the filter in a background job
and returns the number of matched pages. Pages stored in a private module
directory are never matched. The job stops at the first page that fails validation

Conditions the updated pages must match

Attributes to change on every matched page

admin_pages_delete_all (ObjectCount)

Deletes all pages matching the filter and returns their number. Matched pages
stop being served right away; they are then destroyed in a background job
unless sync is true. Use with care, there is no undo

Conditions the deleted pages must match

When true, the deletion finishes before the mutation returns instead of in a background job

admin_property_create (Property)

Adds a property (column) to a table, or to the user schema, and returns it.
The search index mapping is refreshed so the property becomes searchable

Attributes of the new property

admin_property_delete (Property)

Deletes (soft-deletes) a property and returns it. Raises an error when no property has the given id

Id of the property to delete

admin_property_update (Property)

Updates a property and returns it. Changing attribute_type converts the values
stored in existing records in a background job. Raises an error when no
property has the given id

Id of the property to update

Attributes to change

admin_sms_notification_create (SmsNotification)

Creates an SMS notification, the same as deploying a smses/*.liquid file,
which can then be sent with the sms_send mutation. Raises a validation error
if an SMS with the same physical_file_path or name already exists

Attributes of the new SMS notification

admin_sms_notification_delete (SmsNotification)

Deletes (soft-deletes) an SMS notification found by physical_file_path (or the
deprecated id) and returns it. Raises an error when the SMS does not exist;
SMSes stored in a private module directory cannot be deleted

Deprecated, use physical_file_path. Id of the SMS notification to delete

physical_file_path of the SMS notification to delete; takes precedence over id

admin_sms_notification_update (SmsNotification)

Updates an SMS notification found by physical_file_path (or the deprecated id)
and returns it. Raises an error when the SMS does not exist; SMSes stored in a
private module directory cannot be updated

Deprecated, use physical_file_path. Id of the SMS notification to update

Current physical_file_path of the SMS notification to update; takes precedence over id

Attributes to change

admin_table_create (Table)

Creates a table (a schema for records) with its properties, and returns it.
The search index mapping is refreshed. Raises a validation error if a table
with the same name already exists

Attributes of the new table

admin_table_delete (Table)

Deletes (soft-deletes) a table found by physical_file_path and returns it.
Fails while the table still has records; delete them first with
records_delete_all. Raises an error when no such table exists

physical_file_path of the table to delete

admin_table_update (Table)

Updates a table found by physical_file_path, including adding, changing and
removing its properties, and returns it. The search index mapping is
refreshed. Raises an error when no such table exists

Current physical_file_path of the table to update

Attributes to change

admin_transactable_schema_create (TransactableSchema)

Creates a transactable schema. Deprecated, use tables and records instead

Attributes of the schema

admin_transactable_schema_delete (TransactableSchema)

Deletes a transactable schema. Deprecated, use tables and records instead

Id of the schema

admin_transactable_schema_update (TransactableSchema)

Updates a transactable schema. Deprecated, use tables and records instead

Id of the schema

Attributes of the schema

admin_translation_create (Translation)

Deprecated, use admin_translation_set. Creates a translation; fails if the key already exists in the locale

The translation to create

admin_translation_delete (Translation)

Deprecated, use admin_translation_unset. Permanently deletes the translation of a key in a locale

Translation key, a dot-separated path such as app.welcome.title

Locale code, for example en or de

admin_translation_set (Translation)

Sets the text of a translation key in a locale: creates the translation when
the key does not exist in the locale yet, otherwise updates it. Returns the translation

The key, locale and text to set

admin_translation_set_json (TranslationJson)

Sets a whole branch of translations of one locale at once from a nested JSON
object, either merging it into the existing translations or replacing every
translation whose key starts with the given key. Runs in a single transaction
and returns the number of deleted and upserted translations

Whether to merge with or replace the existing translations

Key prefix, locale and translations to set

admin_translation_unset (Translation)

Permanently deletes the translation of a key in a locale and returns it. Does
nothing (and returns an unsaved translation without id) when the key does not
exist in the locale

Translation key, a dot-separated path such as app.welcome.title

Locale code, for example en or de

admin_translation_update (Translation)

Deprecated, use admin_translation_set. Updates the translation of a key in a locale, creating it if it does not exist

Current key of the translation

Current locale of the translation

Attributes to change

admin_user_profile_schema_create (UserProfileSchema)

Creates a user profile schema. Deprecated, use tables and records instead

Attributes of the schema

admin_user_profile_schema_delete (UserProfileSchema)

Deletes a user profile schema. Deprecated, use tables and records instead

Deprecated, use physical_file_path. Id of the schema

physical_file_path of the schema; takes precedence over id

admin_user_profile_schema_update (UserProfileSchema)

Updates a user profile schema. Deprecated, use tables and records instead

Deprecated, use physical_file_path. Id of the schema

physical_file_path of the schema; takes precedence over id

Attributes of the schema

api_call_send (ApiCallSendPayload)

Sends an HTTP request synchronously and returns the response. The request is
either an API call template from app/api_calls (template) or defined inline
(api_call); when both are given, template is used. A template is sent only if
its trigger_condition renders to true, and its callback is run with the
response. Delivery problems (invalid URL, timeout, connection or SSL errors)
are raised as errors. On staging instances requests are only sent when API
call and SMS notifications are enabled for staging in the Partner Portal.

Request defined inline, used when template is not given

Variables available as data in the Liquid of the template, and in the url, method and headers of an inline api_call

Options for the HTTP request, such as timeout

API call template defined in app/api_calls (or a module), to render and send

attachment_presign_url (AttachmentPresignedUploadUrl)

Returns a presigned URL for uploading a legacy attachment file directly to
storage. Deprecated, use property_upload_presigned_url instead

Property the file is uploaded for and upload restrictions

channel_send_message (String)

Sends a message to every WebSocket client subscribed to the given channel and
room, without running the channel's receive partial. Returns "dispatched"

Name of the channel, as used by subscribing clients

Message sent to the subscribers, as any JSON value

ID of the room within the channel

constant_set (EncryptedConstant)

Creates a constant, or replaces the value of an existing one with the same
name, and returns it. Values are stored encrypted and are available in Liquid
as context.constants. Raises an error when name or value is blank

Name of the constant

Value of the constant, stored encrypted

constant_unset (EncryptedConstant)

Deletes the constant with the given name and returns it; returns null when there is no such constant

Name of the constant to delete

custom_attachment_create (CustomAttachment)

Creates a legacy custom attachment. Deprecated, use a property of type upload instead

Attachment to create

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

custom_attachment_delete (CustomAttachment)

Deletes a legacy custom attachment. Deprecated, use a property of type upload instead

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the attachment to delete

custom_attachment_update (CustomAttachment)

Updates a legacy custom attachment. Deprecated, use a property of type upload instead

Attachment changes

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the attachment to update

custom_image_create (CustomImage)

Creates a legacy custom image. Deprecated, use a property of type upload instead

Image to create

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

custom_image_delete (CustomImage)

Deletes a legacy custom image. Deprecated, use a property of type upload instead

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the image to delete

custom_image_update (CustomImage)

Updates a legacy custom image. Deprecated, use a property of type upload instead

Image changes

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the image to update

customization_create (Customization)

Creates a legacy model. Deprecated, use records instead

Deprecated, use model

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Attributes of the model to create; required unless customization is given

customization_delete (Customization)

Soft deletes a legacy model. Deprecated, use records instead

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the model to delete

customization_update (Customization)

Updates a legacy model. Deprecated, use records instead

Deprecated, use model

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the model to update

Attributes to change; required unless customization is given

customizations_delete_all (ObjectCount)

Deletes all legacy models of a model schema, or of all schemas, and returns their count. Deprecated, use records instead

Deprecated, use all_model_schemas

Set to true to delete models of every model schema

  • custom_model_type_name (String)

Deprecated, use model_schema_name

Conditions the deleted models must match

Name of the model schema whose models are deleted

When true, the deletion finishes before the mutation returns instead of in a background job

data_export (DataExport)

Schedules a background export of records, users or both to CSV files, like
pos-cli data export, but with filtering and sorting. Returns the export, whose
status and file can be checked later with the data_exports query; the
generated CSV files can be imported with pos-cli data import.

Encrypts the generated export file

Deprecated, use records

Records to export, selected like in the records query, at most 5000000 per
export. Pass at least an empty object to export records; when omitted, no
records are exported

If true, each exported table is split into numbered files of at most 10,000
rows; if false, each table is written to a single file

Users to export, selected like in the users query, at most 5000000 per
export. Pass at least an empty object to export users; when omitted, no
users are exported

data_export_delete (DataExport)

Permanently deletes a data export created by data_export, including its generated file. This cannot be undone.

Id of the data export to delete

documents_bulk_upsert (HashObject)

Stores many JSON documents in the search index in one request. Each document
is identified by its own id key; an existing document with the same id is
replaced entirely, a document without id gets a generated one. Returns the
response of the search index, which lists the result or error of every document.

JSON documents to store. The id key of each document is used as its identifier; documents without id get a generated one

Name of the search index the documents belong to; the documents query searches by this name

documents_bulk_upsert_rc (HashObject)

Deprecated alias of documents_bulk_upsert

JSON documents to store. The id key of each document is used as its identifier; documents without id get a generated one

Name of the search index the documents belong to; the documents query searches by this name

documents_delete (HashObject)

Removes the document with the given id from the search index. Returns the response of the search index.

Identifier of the document to remove

Name of the search index the document belongs to

documents_delete_rc (HashObject)

Deprecated alias of documents_delete

Identifier of the document to remove

Name of the search index the document belongs to

documents_insert (HashObject)

Stores a JSON document in the custom search index of the instance (configured
with search_indexes in app/config.yml) under the given search_index name, so
that it can be found with the documents query. If a document with the same id
already exists it is replaced entirely; without an id a new one is generated.
Changes become visible to queries after a short delay.

JSON document to store

Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated

Name of the search index the document belongs to; the documents query searches by this name

documents_insert_rc (HashObject)

Deprecated alias of documents_insert

JSON document to store

Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated

Name of the search index the document belongs to; the documents query searches by this name

documents_upsert (HashObject)

Same as documents_insert: stores a JSON document in the search index,
replacing an existing document with the same id entirely.

JSON document to store

Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated

Name of the search index the document belongs to; the documents query searches by this name

documents_upsert_rc (HashObject)

Deprecated alias of documents_upsert

JSON document to store

Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated

Name of the search index the document belongs to; the documents query searches by this name

email_send (NotificationSendEmailPayload)

Schedules an email to be sent in a background job, either rendered from an
email template defined in app/emails (template) or with the given content
(email). When template is given, email is ignored. The template's own delay
setting applies. Raises an error when the template does not exist

Variables available in the Liquid of the template as data; used only with template

Email to send without a template; required when template is not given

Email template defined in app/emails to render and send

embedding_create (Embedding)

Creates an embedding: a text vector used for similarity search with the
embeddings query. An instance can hold 2,000 embeddings by default; creating
more raises an error (contact support to raise the limit)

Attributes of the new embedding

embedding_create_rc (Embedding)

Creates an embedding: a text vector used for similarity search with the
embeddings query. An instance can hold 2,000 embeddings by default; creating
more raises an error (contact support to raise the limit)

Attributes of the new embedding

embedding_delete (Embedding)

Permanently deletes an embedding and returns it. Raises an error when no embedding has the given id

Id of the embedding to delete

embedding_delete_rc (Embedding)

Permanently deletes an embedding and returns it. Raises an error when no embedding has the given id

Id of the embedding to delete

embedding_update (Embedding)

Updates an embedding. Raises an error when no embedding has the given id

Attributes to change

Id of the embedding to update

embedding_update_rc (Embedding)

Updates an embedding. Raises an error when no embedding has the given id

Attributes to change

Id of the embedding to update

form_submit (FormSubmitPayload)

Submits a legacy form with the given field values, running its validations,
notifications and callbacks. Deprecated, use a page with a GraphQL mutation instead

Values for the fields defined in the form. Might include an "id" key which
identifies the resource when the id argument is blank

Name of the form to submit

Id of the resource to update; can also be provided as "id" key in fields (if
both are present, this argument takes precedence). Omit to create a new resource

image_presign_url (ImagePresignedUploadUrl)

Generates a presigned URL for uploading a legacy image directly to storage;
versions defined for the property are generated after upload. Deprecated, use
property_upload_presigned_url instead

Upload options; model_property or user_property is required

import_models (ImportCustomizationsMutationPayload)

Imports records in bulk, for example from another instance. Each record is
matched by its id (see _id_remap) and updated, or created when there is no
match. Records that fail are skipped and reported together in one error after
the others are imported

When true, given ids are treated as external ids: objects are matched by
them, new objects get new ids, and references between imported objects are
rewritten to the new ids. When false, given ids are used as the actual ids
and must be integers. Defaults to true

When true, the search index is rebuilt in a background job after the import. Defaults to true

The records to import

import_transactables (ImportTransactablesMutationPayload)

Deprecated, use import_models instead. Imports transactables in bulk

When true, given ids are treated as external ids: objects are matched by
them, new objects get new ids, and references between imported objects are
rewritten to the new ids. When false, given ids are used as the actual ids
and must be integers. Defaults to true

When true, the search index is rebuilt in a background job after the import. Defaults to true

The transactables to import

import_users (ImportUsersMutationPayload)

Imports users in bulk, for example from another instance. Each user is matched
by its id (see _id_remap) and updated, or created when there is no match; for
an existing user only names, slug and properties change. Users that fail are
skipped and reported together in one error after the others are imported;
nothing is imported when two users share an email or slug

When true, given ids are treated as external ids: objects are matched by
them, new objects get new ids, and references between imported objects are
rewritten to the new ids. When false, given ids are used as the actual ids
and must be integers. Defaults to true

When true, the search index is rebuilt in a background job after the import. Defaults to true

The users to import

jwt_decode_and_set_session (User)

Verifies a JWT token and signs in the user it identifies. Deprecated, use users.jwt_token and the session tag instead

Algorithm the token was signed with

JWT token to verify

log (LogEntry)

Writes an entry to the instance logs (visible with pos-cli logs). Deprecated, use the log tag instead

  • message (Any)

Message to log; any value

Severity of the entry

model_create (Model)

Creates a legacy model. Deprecated, use records instead

Deprecated, use model

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Attributes of the model to create; required unless customization is given

model_delete (Model)

Soft deletes a legacy model. Deprecated, use records instead

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the model to delete

model_update (Model)

Updates a legacy model. Deprecated, use records instead

Deprecated, use model

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Id of the model to update

Attributes to change; required unless customization is given

models_delete_all (ObjectCount)

Deletes all legacy models of a model schema, or of all schemas, and returns their count. Deprecated, use records instead

Deprecated, use all_model_schemas

Set to true to delete models of every model schema

  • custom_model_type_name (String)

Deprecated, use model_schema_name

Conditions the deleted models must match

Name of the model schema whose models are deleted

When true, the deletion finishes before the mutation returns instead of in a background job

models_update_all (ObjectCount)

Updates all legacy models of a model schema matching the filter and returns
their count. Deprecated, use records_update_all instead

Conditions the updated models must match

Attributes set on every matching model

Name of the model schema whose models are updated

When true, the update finishes before the mutation returns instead of in a background job

presigned_upload_url (PresignedUploadUrl)

Generates a presigned URL for uploading a file directly to storage. Deprecated, use property_upload_presigned_url instead

Upload options

property_upload_presigned_url (PropertyUploadPresignedUrl)

Generates a presigned URL for uploading a file for an upload property directly
to storage. The access level, size limit, cache and content disposition
settings and image versions come from the property definition; the access
level and size limit can be overridden with presign_url. Without a configured
limit, files up to 100 MiB are accepted. Image versions defined for the
property are generated after upload. Provide exactly one of table and user

Set to true to allow the upload request to include its own Content-Type
field, stored with the file. Useful when the default type is wrong, for
example for SVG files. Combine with presign_url.content_type.starts_with to
restrict that field to a prefix. Cannot be combined with
presign_url.content_type.value

Deprecated, use table

Overrides of the access level, size range and allowed content type

Name of the property of type upload

Name of the table that defines the property. Must be omitted when the property is defined in user.yml

Must be true when the property is defined in user.yml rather than in a table

record_create (Record)

Creates a record, together with any nested records, and returns it. Raises an error when the table does not exist

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Attributes of the new record; record.table selects its table

record_delete (Record)

Soft deletes a record (sets its deleted_at) and returns it. Raises an error when the record does not exist

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

ID of the record to delete

Name of the table the record must belong to. Required unless
require_table_for_record_delete_mutation is set to false in app/config.yml

record_update (Record)

Updates a record and returns it. Property values and atomic operations are
written directly in the database in one statement (unknown property names
raise an error), except when an upload or time property, nested records,
images or attachments are set, or the deprecated form_name is given

Deprecated. Also updates the record in the legacy records search index,
which can get very slow for larger amounts of data; use documents_upsert instead

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

ID of the record to update

Attributes to change; when record.table is given, the record must belong to that table

records_create (RecordCreate)

Creates many records in a single database operation and returns their ids and
tables. Much faster than record_create: properties are stored as given,
without validations or callbacks. Fails as a whole when one of the records
cannot be inserted, for example when its id already exists.

Records to create

records_create_rc (RecordCreate)

Deprecated alias of records_create

Records to create

records_delete_all (ObjectCount)

Soft deletes all records of a table that match the filter and returns their
number. The records are marked as deleted immediately; the rest of the
deletion runs in a background job unless sync is true

Must be true to delete records across all tables when neither table nor a table filter is given

Conditions the deleted records must match

When true, the deletion finishes before the mutation returns instead of in a background job

Name of the table whose records are deleted

records_update_all (ObjectCount)

Updates every record of the table that matches the filter (all records of the
table when no filter is given). The matching records are selected immediately
and the returned count is their number; the update itself runs in a background
job unless sync is true. Property values and atomic operations are written
directly in the database without validations or callbacks; any other attribute
is applied record by record.

Deprecated. Also updates the records in the legacy records search index,
which can get very slow for larger amounts of data; use
documents_bulk_upsert instead

Conditions the updated records must match; all records of the table when omitted

Attributes to set on every matching record

When true, the update finishes before the mutation returns instead of in a background job

Name of the table whose records are updated

session_create_field (HashObject)

Stores a value in the session of the current visitor under the given name; it
is also immediately available as context.session in the current page. Returns
the session. Raises an error outside of a request, for example in a background job

Name of the session field

Value to store

session_delete_field (HashObject)

Removes a field from the session of the current visitor, also from
context.session in the current page. Returns the removed value. Raises an
error outside of a request, for example in a background job

Name of the session field to remove

sms_send (SmsSendPayload)

Schedules an SMS to be sent in a background job, either rendered from an SMS
template defined in app/smses (template) or with the given content (sms). When
template is given, sms is ignored. The template's own delay setting applies.
Raises an error when the template does not exist

Variables available in the Liquid of the template as data; used only with template

SMS to send without a template; required when template is not given

SMS template defined in app/smses to render and send

transactable_create (Transactable)

Creates a transactable. Deprecated, use record_create instead

  • form_configuration_name (String)

Deprecated, name of a legacy form to use

Attributes of the transactable

transactable_delete (Transactable)

Deletes a transactable. Deprecated, use record_delete instead

  • form_configuration_name (String)

Deprecated, name of a legacy form to use

ID of the transactable to delete

transactable_update (Transactable)

Updates a transactable. Deprecated, use record_update instead

  • form_configuration_name (String)

Deprecated, name of a legacy form to use

ID of the transactable to update

Attributes to change

transactables_delete_all (ObjectCount)

Deletes all transactables of a schema and returns their number. Deprecated, use records_delete_all instead

Must be true to delete transactables of all schemas

  • transactable_type_name (String)

Name of the transactable schema whose transactables are deleted

update_models (UpdateCustomizationsMutationPayload)

Deprecated. Updates existing records in bulk

Changes to apply, one entry per record

update_users (UpdateUsersMutationPayload)

Deprecated. Updates existing users in bulk

Changes to apply, one entry per user

upload_delete (ObjectUpload)

Removes the stored files (including generated versions) of one or all upload
properties of a record, user or user profile. The property values themselves
are not changed. Runs in a background job unless sync is true. Provide exactly
one of attribute_name and delete_all_properties

Name of the upload property whose files are removed

Set to true to remove the files of all upload properties of the object

When true, the files are removed before the mutation returns and errors are reported in the result

  • upload_object_id (ID)

ID of the object that owns the uploads

Type of the object that owns the uploads

user_create (User)

Creates a user and returns it

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Not used when creating a user

Attributes of the new user

user_delete (User)

Soft deletes a user (sets its deleted_at) and returns it

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

ID of the user to delete

user_otp_delete_token (UserOtpDeleteTokenInformation)

Deletes a named OTP (one-time password) secret of a user. The default secret
cannot be deleted, only refreshed with user_otp_secret_refresh. Status is
not_found when the user has no secret with that name

Name of the OTP secret to delete; required in practice, as the default secret cannot be deleted

  • user_id (ID)

ID of the user

user_otp_secret_refresh (UserOtpSecretRefreshInformation)

Generates a new OTP (one-time password) secret for a user, replacing the
previous one, so codes generated with the old secret stop working. Creates the
named secret when it does not exist yet (up to 50 named secrets per user)

Name of the OTP secret, at most 40 characters; the default secret when omitted

  • user_id (ID)

ID of the user

user_profile_delete (Profile)

Deletes a user profile of a user. Deprecated, use records instead of user profiles

  • form_configuration_name (String)

Currently ignored

Currently ignored

Name of the profile type of the profile to delete

  • user_id (ID)

ID of the user who owns the profile

user_profiles_delete_all (ObjectCount)

Deletes all legacy user profiles of a profile type, or of all types,
optionally only those of one user, and returns their count. Deprecated, use
records instead

Must be true to delete profiles of all profile types

  • user_id (Int)

Only delete the profiles of this user

  • user_profile_type_name (String)

Name of the profile type whose profiles are deleted

user_session_create (User)

Signs in a user with email and password. Deprecated, use the sign_in tag instead

Email of the user

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

Password of the user

Remember the user between browser sessions; "1" to enable

user_session_destroy (HashObject)

Signs out the current user. Deprecated, use the session tag instead

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

user_update (User)

Updates a user, by default the currently signed in user, and returns it.
Atomic property operations are applied directly in the database first, then
the remaining attributes are saved

  • form_configuration_name (String)

Deprecated, leave blank

Deprecated, leave blank. Name of a legacy form that whitelists the
attributes that can be saved and runs its notifications and callbacks

ID of the user to update; the currently signed in user when omitted. Raises an error when neither is available

Attributes to change

users_delete_all (ObjectCount)

Soft deletes all users that match the filter and returns their number. The
users are marked as deleted immediately; the rest of the deletion runs in a
background job unless sync is true

Must be true to delete all users when no filter is given

Conditions the deleted users must match

When true, the deletion finishes before the mutation returns instead of in a background job

users_update_all (ObjectCount)

Updates every user that matches the filter (all users when all_users is true).
The matching users are selected immediately and the returned count is their
number; the update itself runs in a background job unless sync is true. Atomic
property operations are applied directly in the database, everything else is
saved user by user, so use it for small sets only; for large amounts of data
use data import instead.

Must be true to update all users when no filter is given

Conditions the updated users must match

When true, the update finishes before the mutation returns instead of in a background job

Attributes to set on every matching user

Questions?

We are always happy to help with any questions you may have.

contact us