Try it free

Best practices for upgrading alerting profiles and problem notifications to workflows

  • Latest Dynatrace
  • Best practices
  • Published Aug 24, 2026

Classic alerting profiles and problem notifications are static channel configurations tied to management zones. Dynatrace workflows replace them with event-driven automation that supports conditional logic, branching, and native API integrations.

When upgrading alerting profiles and problem notifications to workflows, the goal should not be a simple one-to-one replication of your classic configuration, which may be the result of years of workarounds and constraints that no longer apply.

These best practices help you consolidate and redesign alerting for the latest platform model.

Run the assessment before designing anything

Before discussing migration strategy with stakeholders, run the alerting profile and problem notification assessment notebook and dashboard on your environment. The assessment quantifies the classic estate: total problem notifications, total alerting profiles, distribution by destination type, complexity per alerting profile, and consolidation opportunities.

The assessment notebook:

  1. Retrieves all problem notifications, alerting profiles, and management zones via the Settings 2.0 API.
  2. Stores them as Grail lookup files.
  3. Joins them into an analysis lookup augmented with notification volume from the last 90 days.

Use the assessment results to:

  • Identify disabled (zombie) problem notifications that should be deleted, not migrated
  • Identify dormant problem notifications (zero notifications in 90 days) as decommission candidates
  • Find webhook URL uniqueness: problem notifications sharing the same endpoint are consolidation candidates
  • Flag alerting profiles with complex severity rules or event filters approaching the 1,000-character trigger budget limit

Consolidate by destination, not by alerting profile

The most important structural difference between classic and Workflows is the consolidation model. In classic, every team needed a separate alerting profile/problem notification pair for each channel, because one alerting profile could select only one management zone. This created hundreds of nearly identical configurations.

In Workflows, the goal is to create one workflow per unique destination endpoint:

  • One workflow for a shared ServiceNow instance, regardless of how many alerting profiles previously fed it
  • One workflow for a shared Slack channel, regardless of how many teams sent to it
  • Separate workflows only when the destination endpoint differs or when teams require isolated control

Use the decision tree from the assessment dashboard to identify consolidation opportunities before building workflows:

  • Same endpoint: consolidate all matching alerting profiles into a single workflow; use trigger filters to absorb the logic of multiple alerting profiles
  • Different endpoints: create one separate workflow per distinct endpoint
  • One alerting profile fans out to many problem notifications: create one workflow with one action per destination

Classic alerting profile and problem notification counts that look large (hundreds of objects) often consolidate into a small number of workflows. The assessment dashboard shows the actual consolidation ratio; use this to justify the redesign to stakeholders before starting.

Choose Simple or Standard Workflow by destination type

Select the workflow type based on what the notification destination requires:

Destination typeRecommended workflow typeWhy

ChatOps channels (email, Slack, Teams)

Simple Workflow

Static payloads, simple routing, fits self-service model

IT integrations (ServiceNow, PagerDuty, Jira, custom webhooks)

Standard Workflow

Requires dynamic fields, conditional logic, authentication, and structured payloads

If a team sends to a primary IT integration and also sends a visibility copy to a ChatOps channel, evaluate whether the ChatOps copy can be a separate Simple Workflow or whether all actions should be combined in one Standard Workflow.

Use service users for production workflows

Configure production workflows to run under a dedicated service user rather than a human user account. Workflows running under human accounts break when the user leaves the organization or loses permissions.

Service users:

  • Are non-interactive identities: they cannot sign in to the Dynatrace UI
  • Can be assigned minimal, precise IAM permissions
  • Remain stable regardless of personnel changes

Assign the service user the minimum permissions required for the workflow to execute: automation:workflows:read, automation:workflows:run, and any connector-specific permissions the workflow actions require.

Any human user who needs to assign a service user to a workflow must have the iam:service-users:use permission. Ensure this permission is assigned before teams begin workflow configuration.

Align default and custom trigger filters to avoid silent failures

The Workflow Problem Trigger has two filter areas: a default filter (event category selection) and a custom filter (DQL expression). Both must be true for a workflow to fire; they are AND conditions, not alternatives.

If the default filter selects Availability and the custom filter includes matchesValue(event.category, "RESOURCE_CONTENTION"), no problem will ever trigger the workflow, because a problem belongs to only one category. The workflow appears correctly configured but silently never runs.

To avoid this

  1. Before writing any custom filter expression, decide which event categories you actually need.
  2. Select only those categories in the default filter.
  3. If the custom filter conditions are category-specific, match the custom filter exactly to the default filter selection: no extra categories in the default filter.
  4. If the custom filter conditions are category-agnostic (for example, filtering by tags or other problem fields), let the default filter handle all category scoping and write the custom filter around non-category conditions only.
  5. Use the Query past events button in the trigger configuration to validate filter logic against real event data before saving the workflow.

Note that the combined default and custom filter is hard-capped at 1,000 characters. This limit cannot be increased.

Use enrichment tags instead of long custom filter chains

When routing problems to teams, use primary Grail tags (primary_tags.*) and dt.security_context as filter criteria instead of building long chains of entity-based conditions. Tags propagate from alerting events to the problem record automatically, making them available in the Workflow trigger without additional configuration.

A filter like matchesValue(primary_tags.team, "checkout") is shorter, more maintainable, and more reliable than a chain of entity name matchers. It also avoids consuming the 1,000-character trigger budget with conditions that could be collapsed into a single tag check.

Primary Grail fields and tags set on source entities are propagated automatically to alerting events and then to the problem record. For anomaly-detection-generated events from built-in OneAgent detection, define dt.alert_group or other routing fields as event properties in an OpenPipeline rule on the davis.events feed, since the built-in anomaly detection configuration does not support custom event properties directly.

Ready for more?

Explore the other best practice for this stage, or return to Upgrade team-based & global alerting to continue your upgrade.

  • Best practices for upgrading security notifications
Related tags
Dynatrace Platform