> ## 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.

# Live-test an automation event

> Load a saved record, fire the event against it, and return the run summary plus its full
execution log.

**This is not a dry run — every action commits.** Emails, HTTP calls, holds, and bills go out.
Only rules whose status is `active` or `error` run; paused rules are skipped. The log is step
text and a small `context` object, not a before/after diff — read the record again to see what
changed.

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/runs
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/runs:
    post:
      tags:
        - Automations
      summary: Live-test an automation event
      description: >
        Load a saved record, fire the event against it, and return the run
        summary plus its full

        execution log.


        **This is not a dry run — every action commits.** Emails, HTTP calls,
        holds, and bills go out.

        Only rules whose status is `active` or `error` run; paused rules are
        skipped. The log is step

        text and a small `context` object, not a before/after diff — read the
        record again to see what

        changed.


        When per-user permissions are enabled, the token's owner needs
        `automationRules.read` (the same permission as the Automations page);
        otherwise `403`.
      operationId: runAutomationEvent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model_type
                - model_id
                - event_name
              properties:
                model_type:
                  type: string
                  description: A value from `models` in the schema.
                  example: order
                model_id:
                  type: integer
                  description: The saved record's id.
                  example: 1001
                event_name:
                  type: string
                  description: 'A trigger with `manually_triggerable: true` in the schema.'
                  example: order_updated
      responses:
        '200':
          description: The run and its log.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    allOf:
                      - type: object
                        description: >-
                          One execution of the automation engine for an event on
                          a record.
                        properties:
                          id:
                            type: string
                            format: uuid
                          event_name:
                            type: string
                            example: order_updated
                          model_type:
                            type: string
                            description: >-
                              Fully qualified model class of the record the
                              event fired on.
                            example: App\Models\MTShipstationOrder
                          model_id:
                            type: integer
                            example: 1001
                          status:
                            type: string
                            example: completed
                          rules_evaluated:
                            type: integer
                          rules_executed:
                            type: integer
                          rules_skipped:
                            type: integer
                          rules_errored:
                            type: integer
                          started_at:
                            type: string
                            format: date-time
                            nullable: true
                          completed_at:
                            type: string
                            format: date-time
                            nullable: true
                          triggered_by:
                            nullable: true
                            description: Who or what started the run.
                          is_test:
                            type: boolean
                            description: >-
                              True when the run wrote debug logs (always true
                              for the live tester). It does not mean changes
                              were rolled back.
                          created_at:
                            type: string
                            format: date-time
                            nullable: true
                          duration_ms:
                            type: integer
                            nullable: true
                      - type: object
                        properties:
                          logs:
                            type: array
                            items:
                              type: object
                              description: One step of an automation run's execution log.
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                timestamp:
                                  type: string
                                  format: date-time
                                level:
                                  type: string
                                  example: SUCCESS
                                description:
                                  type: string
                                  example: Action executed
                                context:
                                  type: object
                                  additionalProperties: true
                                  nullable: true
                                  description: >-
                                    Small step context. Not a before/after field
                                    diff — re-read the record to see what
                                    changed.
                                step_type:
                                  type: string
                                  nullable: true
                                  example: action_executed
                                depth:
                                  type: integer
                                  nullable: true
                                rule_id:
                                  type: integer
                                  nullable: true
        '400':
          description: >-
            `sku_mapping_completed` / `sku_mapping_failed` need extra context
            and cannot be fired here
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Record not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '409':
          description: >-
            Trigger skipped (e.g. automations disabled or pre-conditions not
            met)
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: '`model_type` or `event_name` is not supported by the tester'
          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.