Record time offset trigger
Beta feature
This feature is currently in beta, and should be considered ‘under development’. Learn about the automations beta.Overview
The Record Time Offset trigger runs a workflow at a computed time relative to a date or datetime field on a record: for as long as a condition over that record holds. For example, you can run a customer survey workflow one hour after a job’s End time, but only for jobs that are Complete.
Unlike the Record Modified trigger, which fires immediately in response to a change, Record Time Offset schedules a one-shot event for a future (or past-relative) point in time and fires when that time arrives.
You choose which object type to monitor, a condition that decides which records the trigger applies to, and the date field and offset that determine when it fires.
Configuration
Object type
Select the standard or custom object to monitor, for example, Jobs.
Condition
An EQL (Elastic Query Language) expression over the record’s current state, deciding which records the trigger applies to, for example:
JobStatus == 'Complete'
Unlike the Record Modified trigger’s Run when filter, this condition is evaluated against the record’s current state only: it must reference plain field names, not the current/previous change-event aliases.
Skedulo re-evaluates this condition whenever the record changes:
- When a record starts matching, an event is scheduled (or rescheduled) for the computed time.
- When a record stops matching, or is deleted, any pending event for it is canceled.
- A change that doesn’t affect the condition’s fields, the anchor field, or the offset field is ignored: the existing schedule is left untouched.
When you create, activate, or edit an automation with this trigger, Skedulo also checks existing records against the condition immediately, so already-matching records are scheduled right away rather than only on their next change.
Note
If the computed time is too far in the past by the time it’s evaluated (for example, due to processing delay), the event is skipped rather than firing late, and a warning is logged to the automation’s Activity tab.When to run
Choose the date/datetime field that anchors the trigger time, and how far from that anchor the workflow should run:
- Fixed offset: run a fixed amount of time before or after the anchor field. Set an Amount, a Unit (minutes, hours, or days), a Direction (before or after), and the Time field to anchor to.
- Offset from field: read the offset from another field on the record instead of a fixed amount. Choose the Time field to anchor to, the Offset field (an integer, decimal, or duration field), and the Field unit the offset field’s value is stored in (seconds or milliseconds). Optionally set a Default amount, Default unit, and Default direction to use when the offset field is empty.
Trigger output
When the record time offset trigger fires, it injects a set of output values into the workflow that are available to all subsequent steps, accessed via the $trigger namespace.
| Variable | Type | Description |
|---|---|---|
$trigger.objectType |
string | The API name of the object type being monitored, for example, Jobs |
$trigger.operation |
string | Always RecordTimeOffset |
$trigger.current |
object | A reference to the record: { UID } only |
$trigger.scheduledTime |
string | ISO-8601 timestamp the event was scheduled for |
$trigger.emittedTime |
string | ISO-8601 timestamp the event was actually delivered |
Note
$trigger.current only carries the record’s UID: not its field values. Because the trigger may fire hours (or days) after the record last changed, its snapshot at match time would likely be stale by the time the workflow runs. If you need the record’s current field values, use a Get Record action with $trigger.current.UID to fetch them fresh.
Expression examples
| Goal | Expression |
|---|---|
| Get the UID of the record that triggered the workflow | $trigger.current.UID |
| Fetch the record’s current field values | Pass $trigger.current.UID into a Get Record action, then reference its output |
| Get the time the workflow was scheduled to run | $trigger.scheduledTime |
See also
- Introduction to automations
- Record Modified trigger: for firing immediately on a data change instead of at a computed time
- JSONata expressions: how to use trigger output in expressions
- EQL filter documentation
Feedback
Was this page helpful?