What is a dry run
When you trigger an automation withdry_run: true, Omneo simulates the automation’s actions for the requested date range without creating production records or firing events. For each profile the query matches, Omneo stores a dry run result recording what the automation would have done.
Use dry runs to verify automation logic before enabling it in production, or to understand what a past automation run would have produced.
Triggering a dry run
SendPOST /v3/automations/{automation}/trigger with dry_run: true in the request body. Optionally include start_date and end_date to simulate over a range of days.
The endpoint returns 202 Accepted. Results are written asynchronously. Query this API to retrieve them once processing is complete.
Dry run result attributes
| Attribute | Type | Description |
|---|---|---|
id | integer | Unique identifier for the result |
automation_id | integer | The automation that was simulated |
run_at | date | The date the simulation covered (YYYY-MM-DD) |
profile_id | integer | The Profile processed in this result |
result_type | string | Polymorphic type of the associated result object |
result_id | integer | ID of the associated result object |
status | string | Outcome: success, failed, or skipped |
result | object | Detailed result data returned by the simulation |
arguments | object | Arguments the automation ran with |
requested_by | string | Identifier of the user who requested the dry run |
created_at | datetime | When the result was created |
updated_at | datetime | When the result was last updated |
Filtering results
The index endpoint accepts the following filters:| Filter | Description |
|---|---|
filter[automation_id] | Limit to results for a specific automation |
filter[run_at] | Limit to results for a specific simulated date |
filter[profile_id] | Limit to results for a specific Profile |
filter[status] | Limit by outcome (success, failed, skipped) |
filter[result_type] | Limit by result object type |
filter[result_id] | Limit by result object ID |
filter[requested_by] | Limit to results from a specific requester |
filter[created_at] | Limit by creation timestamp |
filter[updated_at] | Limit by last-updated timestamp |
Cleaning up
Delete results individually once reviewed. Thedelete-reactions scope is required. There is no bulk delete endpoint.
Required scopes
| Operation | Scope |
|---|---|
| Browse, read | read-reactions |
| Delete | delete-reactions |