Automations

Dry-run an automation rule

Simulate what a rule would do against a sample event: condition match and what each action would resolve to. Executes nothing.

  • No email, change, quota use or run record; it takes the read scope.
  • For document rules pass event_aggregate_id of a real document, or no step would run.
  • An unevaluable condition returns 200 with condition_error.
post/companies/{company}/automations/rules/{rule}/dry-run

Request

  • Base URL: https://api.factuarea.com/v1
  • URL: https://api.factuarea.com/v1/companies/{company}/automations/rules/{rule}/dry-run
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

companystring uuid required

Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).

rulestring uuid required

Public identifier (UUID v7) of the automation rule.

Headers

Factuarea-Versionstring date
Example:2026-06-01

Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.

Request body

event_typestring required

Sample event type to test the rule with, in resource.action form (for example invoice.paid). Must belong to the catalog visible to the company.

event_payloadobject required

The data.object of the sample event: an object with named keys, never a list.

event_aggregate_idstring uuid nullable

ID (UUID v7) of the sample resource to predict against. Required for rules whose actions operate on a document.

Response

Example response

{
  "data": {
    "automation_rule_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a61",
    "trigger_type": "invoice.paid",
    "matched": true,
    "condition_trace": [
      {
        "path": "total",
        "operator": "gte",
        "expected": 1000,
        "observed": 1250,
        "matched": true
      }
    ],
    "steps": [
      {
        "index": 0,
        "action_type": "notify_in_app",
        "executable": true,
        "resolved_parameters": {
          "recipient_type": "role",
          "role": "admin",
          "category": "invoice",
          "title": "Cobro grande",
          "message": "Se ha cobrado una factura de 1000 EUR o más."
        },
        "effects": [
          {
            "kind": "command",
            "target": "notification.create",
            "summary": {
              "recipient_type": "role",
              "recipient": "admin",
              "category": "invoice",
              "title": "Cobro grande",
              "priority": "normal"
            },
            "simulated": true
          }
        ],
        "reason": null
      }
    ]
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.