> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinluminous.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Replace an automation rule

> Replace the rule's name, trigger, summary, conditions, and actions (and status, when sent).
**Conditions and actions are replaced wholesale** — ids in the body are ignored, so send the full
lists you want kept. Omitting `status` leaves the current status.

When per-user permissions are enabled, the token's owner needs `automationRules.read` (the same permission as the Automations page); otherwise `403`.




## OpenAPI

````yaml /api-reference/build.yaml post /automations/{automationId}
openapi: 3.0.0
info:
  title: Luminous API
  version: 1.0.0
  description: API documentation for Luminous
servers:
  - url: https://{companyName}.api.joinluminous.com/external/api/v1
    variables:
      companyName:
        default: companyName
        description: Your company-specific subdomain
security: []
tags:
  - name: Products
    description: Get and manage products
  - name: Pricing
    description: Manage price schedules, levels, and customizations
  - name: BOMs
    description: Manage Bills of Materials (BOMs)
  - name: Labels
    description: Label rendering via Labelary ZPL service
  - name: Companies
    description: Manage business accounts and their associated data
  - name: Contacts
    description: Manage contact information for individuals
  - name: Suppliers
    description: Manage suppliers (factories) — vendors used on purchase orders
  - name: Supplier SKUs
    description: Manage per-supplier SKU and unit-cost overrides for products
  - name: Locations
    description: Manage warehouses and locations
  - name: Inventory
    description: Get and adjust product stock levels
  - name: Lots
    description: Create, update, and delete product lots (batches)
  - name: Transfer Orders
    description: Manage transfer orders
  - name: Fulfillment Orders
    description: Manage fulfillment orders and picklists
  - name: Freight
    description: >-
      Freightview LTL freight — quotes, booking and documents for fulfillment
      orders
  - name: Fulfillment Priority Lists
    description: Configure fulfillment routing priority lists
  - name: Purchase Orders
    description: Get and modify purchase orders
  - name: Supplier Portal
    description: >-
      Read a supplier's response to a purchase order and control the one-click
      portal link
  - name: Receiving Reports
    description: Manage receiving reports
  - name: Payment Obligations
    description: Manage payment obligations for purchase orders
  - name: Sales Orders
    description: Manage sales orders and sales order shipments
  - name: Purgatory
    description: >-
      Inspect and resolve non-posted sales orders in the purgatory staging
      workflow
  - name: PickFlow Warehouse
    description: >-
      Warehouse-floor lookups for PickFlow — barcode resolution, bin and product
      stock, bin search, and receivables
  - name: PickFlow Shipping
    description: >-
      Provider-agnostic shipping rates, services, packages, and label purchase
      for PickFlow
  - name: Cycle Counts
    description: >-
      Create, drive, and post PickFlow cycle counts — batches, per-warehouse
      sessions, and CSV import/export
  - name: Print Stations
    description: List paired print stations and enqueue print jobs to them
  - name: Invoices
    description: Get and manage invoices
  - name: Work Orders
    description: >-
      Manage work orders — production lifecycle, steps, materials, links,
      shipments, and comments
  - name: Production Batches
    description: Group and manage work orders as production batches
  - name: Bills
    description: >-
      Accounts payable bill management, payments, attachments, allocations, and
      variance
  - name: Prepayments
    description: Manage vendor prepayments and applications
  - name: Vendor Credits
    description: Manage vendor credits and applications
  - name: Vendor Returns
    description: Manage vendor returns and credit generation
  - name: Customer Returns
    description: Manage customer returns (sales returns), receiving, and restock behavior
  - name: Stock Snapshot
    description: Point-in-time stock snapshots with export support
  - name: Consumption
    description: Consumption reports and exports
  - name: Inventory Aging
    description: Cost-layer-based inventory aging reports
  - name: Bills Reports
    description: Accounts payable bills aging reports
  - name: Forecast
    description: Materialized forecast data
  - name: Reports
    description: Close the books, inventory discrepancy, transaction COGS, and EDI reports
  - name: Tags
    description: Add/remove tags across various resources
  - name: Custom Fields
    description: Get and set custom fields across various resources
  - name: Currency
    description: Currency configuration, exchange rates, and conversion
  - name: Drive
    description: >
      Browse, upload, tag and manage files in your Luminous Drive. An API token
      sees the shared

      drive only, never My Files or restricted folders and files. Every write
      and download made

      through the API is recorded in the file's activity log (`GET
      /file-cabinet/files/{id}/activity`)

      with `actor_kind: api_token`.
  - name: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
  - name: Automations
    description: Create, test, and inspect automation rules and their runs
paths:
  /automations/{automationId}:
    parameters:
      - in: path
        name: automationId
        required: true
        schema:
          type: integer
        description: Automation rule ID
    post:
      tags:
        - Automations
      summary: Replace an automation rule
      description: >
        Replace the rule's name, trigger, summary, conditions, and actions (and
        status, when sent).

        **Conditions and actions are replaced wholesale** — ids in the body are
        ignored, so send the full

        lists you want kept. Omitting `status` leaves the current status.


        When per-user permissions are enabled, the token's owner needs
        `automationRules.read` (the same permission as the Automations page);
        otherwise `403`.
      operationId: updateAutomation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - trigger
                - conditions
                - actions
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: Unique across rules.
                  example: Note large orders
                trigger:
                  type: string
                  description: A `name` from `triggers` in `GET /automations/schema`.
                  example: order_updated
                status:
                  type: string
                  enum:
                    - active
                    - paused
                    - error
                  nullable: true
                  description: >
                    Omitted on create means `paused` (the rule does not run
                    until activated). Omitted on update

                    leaves the current status. Set `active` only after a live
                    test with `POST /automations/runs`.
                summary:
                  type: string
                  maxLength: 1000
                  nullable: true
                  description: >-
                    Optional. When omitted, a summary is generated in the
                    background.
                conditions:
                  type: array
                  description: >-
                    Required (may be empty — an empty list matches every
                    record). Replaces the existing list on update.
                  items:
                    type: object
                    required:
                      - type
                    properties:
                      type:
                        type: string
                        description: A `type` from `conditions` in the schema.
                      value:
                        description: Condition settings. Shape depends on `type`.
                        nullable: true
                actions:
                  type: array
                  description: >-
                    Required (may be empty). Replaces the existing list on
                    update; any `id` sent is ignored.
                  items:
                    type: object
                    required:
                      - type
                    properties:
                      type:
                        type: string
                        description: A `type` from `actions` in the schema.
                      value:
                        description: >-
                          Action settings. Shape depends on `type`. Whitespace
                          in string values is preserved.
                        nullable: true
              example:
                name: Note large orders
                trigger: order_updated
                status: paused
                conditions: []
                actions:
                  - type: update_column
                    value:
                      field: customerNotes
                      value: reviewed
      responses:
        '200':
          description: Rule updated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    description: >-
                      An automation rule — the same rules edited under
                      **Automations** in the app.
                    properties:
                      id:
                        type: integer
                        example: 12
                      name:
                        type: string
                        description: Unique rule name, shown in the automations list.
                        example: Note large orders
                      trigger:
                        type: string
                        description: >-
                          The event that runs the rule. A `name` from `triggers`
                          in `GET /automations/schema`.
                        example: order_updated
                      status:
                        type: string
                        enum:
                          - active
                          - paused
                          - error
                        description: >-
                          Only `active` and `error` rules run. `paused` rules
                          are skipped.
                        example: paused
                      summary:
                        type: string
                        nullable: true
                        description: >-
                          Human-readable summary. Generated in the background
                          when not supplied.
                      execution_count:
                        type: integer
                        description: >-
                          Legacy run counter. Rule runs no longer update it, so
                          it holds whatever value was last recorded (usually
                          `0`).
                        example: 0
                      last_run:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          Legacy last-run timestamp. Rule runs no longer update
                          it.
                      last_run_success:
                        type: boolean
                        nullable: true
                        description: >-
                          Legacy last-run result. Rule runs no longer update it;
                          a failing rule is still reported through `status` =
                          `error`.
                      created_at:
                        type: string
                        format: date-time
                        nullable: true
                      updated_at:
                        type: string
                        format: date-time
                        nullable: true
                      conditions:
                        type: array
                        description: >-
                          All conditions must hold for the actions to run. An
                          empty list matches every record.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            type:
                              type: string
                              description: A `type` from `conditions` in the schema.
                              example: field
                            value:
                              description: >-
                                Condition settings, decoded from JSON. Shape
                                depends on `type`.
                              nullable: true
                      actions:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            type:
                              type: string
                              description: A `type` from `actions` in the schema.
                              example: update_column
                            value:
                              description: >-
                                Action settings, decoded from JSON. Shape
                                depends on `type`.
                              nullable: true
                            action_id:
                              type: integer
                              nullable: true
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Rule not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: Validation failed. Nothing is saved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate using a bearer token. To create a token, navigate to
        /settings/api-tokens and click Create API Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.