Try it free

Event triggers for workflows

  • Latest Dynatrace
  • Reference
  • 6-min read

Dynatrace Workflows Workflows supports three event-based trigger types that start when events flow through OpenPipeline. Choose the type that matches your event source and the level of granularity you need.

Choose a trigger type

Trigger typeWhen to useEvent source

Problem trigger

Starts when a problem opens or resolves, and optionally when specific problem fields change. Use when you want to react once to the whole problem, not on every individual alert. See Alerting and notifications for the end-to-end picture.

Davis problems. Required permissions: storage:events:read. To learn more, see Permissions.

Davis event trigger

Starts on individual alerts when anomalies are detected. Use when you need to react to each alert individually, not to the grouped problem event.

Davis events. Required permissions: storage:events:read. To learn more, see Permissions.

Event trigger

Starts on any event type that matches a custom DQL filter. Use when no built-in trigger type covers your event source or when you need a fully custom filter condition.

events, bizevents, security.events, dt.system.events. Required permissions vary by event type. To learn more, see Permissions.

Before you configure

Before you begin, make sure you're aware of the configuration limits, including the 1,000 executions per hour limit and the 1,000-character filter expression limit.

Problem trigger

Problems are created by Dynatrace Intelligence by correlating anomalies and their root causes across your environment. The Problem trigger starts a workflow when a problem opens, changes, or resolves. The event source is Davis problems.

To browse past occurrences, explore available fields, and test filter conditions before configuring the trigger, run this query in a notebook:

fetch dt.davis.problems

The trigger applies its own deduplication logic to decide when to start. To inspect the raw event stream the trigger evaluates, use:

fetch events
| filter event.kind == "DAVIS_PROBLEM"

Configuration

  • Problem state
    • active: Starts when the problem opens. Default.
    • active or closed: Starts when the problem opens and again when it closes.
    • closed: Starts only when the problem closes.
  • Event category: See Event categories for definitions.
  • Severity: The severity level at or above which the problems should trigger the workflow.
  • Affected entities: Filter by entity tags:
    • Include all entities
    • Include entities with all defined tags below
    • Include entities with any defined tag below

Without Updates enabled, the trigger starts once per state transition and does not start again as the problem evolves.

Under Advanced options:

  • Minimum duration: Postpones the trigger until the problem has been open for at least the configured duration. For details, see Trigger delay.
  • Updates: Re-trigger the workflow when specific problem fields change during the problem lifecycle. See Re-trigger on field changes.
  • Wait for root cause analysis: When enabled, the trigger starts only after Dynatrace Intelligence has completed root cause analysis for the problem. Recommended: Enable this to avoid triggering on incomplete problem data.
  • Additional custom filter query: Add a DQL matcher expression to further refine which problems start the trigger. This field contributes to the total matching expression, which is limited to 1,000 characters across all trigger fields.

Trigger delay

By default, the Problem trigger starts as soon as a matching problem becomes active. The Minimum duration option postpones the trigger until the problem has been open for at least the configured duration.

The allowed values are (in minutes):

  • 5
  • 10
  • 15
  • 30
  • 60 (one hour)
  • 120 (two hours)
  • 240 (four hours)
  • 1440 (one day)
  • 10080 (one week)

The delay is based on dt.duration_marker, a field set by Dynatrace Intelligence that accumulates from the moment the problem was first created.

The trigger starts once when the threshold is crossed on the active phase and, if selected, also once on closure. A problem that is closed before ever reaching the configured threshold doesn't produce a trigger.

Field changes before the threshold

Changes to tracked problem fields that occur before the delay threshold is crossed are not accounted for in Workflows Workflows. The problem is visible only when dt.duration_marker reaches the configured value. Field changes after the threshold are tracked normally. To learn more, see Re-trigger on field changes.

Re-trigger on field changes

Problems evolve over time as new Davis events are detected and merged into an existing problem record, which can change fields such as severity or affected entities. The Updates option re-triggers the workflow when the value of a selected problem field changes. Each distinct combination of selected field values triggers the workflow at most once; it won't start again unless the values change to a new combination.

For example, if you select severity for Updates, the trigger starts when severity changes from MEDIUM to HIGH. If severity escalates to CRITICAL, the trigger starts again because the field value changed to a new combination.

The affected entities field tracks the union of affected_entity_ids and smartscape.affected_entities. A change to either underlying field counts as a change to affected entities.

Changing or clearing the list of fields for updates

Any change to the set of selected fields for Updates may cause one extra trigger on the next change to each affected problem.

Davis event trigger

Dynatrace Intelligence generates alerts, stored as Davis events in Grail, during anomaly detection and analysis. Davis events are more granular than problems: a single problem can group multiple Davis events as conditions evolve (for example, a resource saturation event followed by a service degradation event). The Davis event trigger lets you react to a specific Davis event rather than the problem as a whole.

The event source is Davis events. To browse past occurrences, explore available fields, and test filter conditions before configuring the trigger, run this query in a notebook:

fetch dt.davis.events

The trigger applies its own deduplication logic to decide when to start. To inspect the raw event stream the trigger evaluates, use:

fetch events
| filter event.kind == "DAVIS_EVENT"

Configuration

  • Problem state
    • active: Starts when the Davis event opens. Default.
    • active or closed: Starts when the Davis event opens and again when it closes.
    • closed: Starts only when the Davis event closes.
  • Davis event name
    • equals: Starts when the Davis event name exactly matches the string.
    • contains: Starts when the Davis event name contains the string.
  • Affected entities: Filter by entity tags:
    • Include all entities
    • Include entities with all defined tags below
    • Include entities with any defined tag below
  • Maintenance window: Controls whether the trigger starts during maintenance windows.
    • Always: Starts regardless of maintenance windows. Default.
    • Inside maintenance window only: Starts only when a maintenance window is active.
    • Outside maintenance window only: Starts only when no maintenance window is active.
  • Additional custom filter query: Add a DQL matcher expression to further refine which Davis events start the trigger. This field contributes to the total matching expression, which is limited to 1,000 characters across all trigger fields.

Event trigger

The Event trigger starts a workflow for each event that matches a DQL matcher expression. Use it when no built-in trigger type covers your event source or when you need a fully custom filter condition.

Event type

Select which event type to react on:

  • events: Stores observability events from across your environment, configuration changes, maintenance window events, and custom events ingested via the Events API or created in OpenPipeline.

  • bizevents: Business-critical data captured from your applications, including orders, transactions, conversions, and other business process signals ingested via the /bizevents/ingest endpoint. Use this type to trigger workflows based on business outcomes, not just infrastructure state.

  • security.events: Vulnerability findings, compliance findings, and security detections from Dynatrace Application Security and third-party vendors, ingested via the v1/security.events endpoint or custom/security.events/<custom-endpoint-name> endpoints. Use this type to automate remediation or ticketing when new vulnerabilities are detected.

  • dt.system.events: Events generated by Dynatrace system services, including audit events, app lifecycle notifications, workflow execution events, and extension self-monitoring.

    System event eligibility

    For dt.system.events, only system events ingested through OpenPipeline can trigger workflows. Most system event types are routed through OpenPipeline, but a few are not. To see which events in your environment are eligible, run this query in a notebook:

    fetch dt.system.events
    | filter isNotNull(dt.openpipeline.pipelines)

Filter query

In Filter query, narrow down which events start the trigger using DQL matcher syntax. The filter query is part of the total matching expression, which is limited to 1,000 characters across all trigger fields.

Example 1: Match a specific business event type.

event.type == "com.example.order.completed"

Example 2: Match security events with a specific status.

event.kind == "SECURITY_EVENT" and vulnerability.resolution.status == "OPEN"

Optional Select Query past events to estimate how many events match your filter in your environment before saving the trigger.

Use event data in workflow tasks

When a workflow is triggered by an event, the full event payload is available to all downstream tasks. Reference it with the event() expression.

For example, event()["event.type"] returns the type of the triggering event. You can use any field from the event payload to pass context to actions, build conditions, or personalize notifications.

For manual runs during development, Workflows Workflows pre-fills the event context from the last successful execution and lets you adjust it before running.

Limits

Filter expression size: The full matching expression compiled from all trigger fields (entity filters, event name, and any Additional custom filter query) is limited to 1,000 characters. Saving a trigger whose compiled expression exceeds this limit or contains invalid DQL returns a validation error.

DQL matcher syntax: Event trigger filter expressions use DQL matcher syntax. Each event is evaluated individually as it enters OpenPipeline; aggregation functions and multi-event queries are not supported.

Execution rate: Each workflow is limited to 1,000 event-triggered executions per hour. If this limit is exceeded, executions are throttled (HTTP 429) for up to one hour. If it's exceeded three times within seven days, the trigger is automatically deactivated.

Both a throttle event and a deactivation are flagged in the Workflows Workflows overview and can be filtered on.

Re-activate a deactivated trigger

To re-activate the trigger, adjust the filter configuration to reduce event volume, then select Save.

Use Query past events in the trigger configuration to estimate expected event volume and avoid hitting the limit before deploying.

Permissions

  • The workflow actor requires read access to the event type the trigger reacts on. Grant permissions based on the trigger type and event type:

    Trigger typeRequired permission

    Problem trigger

    storage:events:read

    Davis event trigger

    storage:events:read

    Event trigger (events)

    storage:events:read

    Event trigger (bizevents)

    storage:bizevents:read

    Event trigger (security.events)

    storage:security.events:read

    Event trigger (dt.system.events)

    storage:system:read

  • Restrict storage:buckets:read to the specific bucket related to the event.

  • For interactive users, also select these permissions in their authorization settings. For details, see Workflow security.

Related tags
Dynatrace Platform