Data Observability platform Help

Alerts settings

Alerts

The Alerts tab has three sub-tabs:

  • SMTP - outbound email server configuration, with the user alerts management section beneath it (not shown on cloud deployments)

  • Webhooks - outbound webhook destinations (requires a valid license)

  • Event log - the delivery log for both channels

SMTP settings:

  • SMTP host – host of your email server

  • SMTP port – port of your email server

  • Security – encryption mode for the connection: None (no encryption), STARTTLS (port 587, upgrade to TLS), or SSL/TLS (port 465, implicit SSL)

  • SMTP user – (optional) SMTP authentication username. If left empty, the from email is used. Required for services like AWS SES where the SMTP username differs from the sender address

  • Password – password for email if authentication is needed

  • From email – email that will send out reports

  • Subject – email subject title

  • Test email / Send test email – send a test message to verify the configuration

Webhooks:

  • Name - Webhook name

  • Url - Webhook URL

Adding webhooks

CustomWebhook
  • Name – Webhook identifier name

  • Url – Webhook URL

  • AuthenticationNone, Basic Auth (username + password) or Custom header (header name + value)

  • Body – JSON body for the webhook, which will be executed with POST request.

The webhook editor shows the available placeholders in a panel on the right, grouped by when they resolve - click any placeholder to copy it to clipboard, or drag it straight into the body. The Event type selector above the panel switches the panel, the live Preview below the editor, and the Test webhook button to that event type, so you can check how the same template renders for each event a webhook is subscribed to.

Every event is built from the same event structure: a common top (event type, summary, the affected entity with its name, connection and link) plus event-specific details, where details.items is the list of result rows - profiling rules, test cases of a suite run, changed entities of an audit, or dropped objects of a schema delete. details.items_truncated carries the count of rows left out.

By default only failed and errored rows are included, at most 50 of them, so passing checks show up in the aggregate counts and percentages rather than as rows. Both of those are per-webhook settings - see Item configuration to include passing rows or change the row count. Test-case-failure events always keep their row (it is the failure that triggered the event), and audit / schema-delete rows have no status to filter on; those are capped at 50 rows regardless of the configured limit.

Placeholders that resolve for every event type:

  • ${summary} - human-readable summary of the event

  • ${event_type} - TEST_SUITE_RESULT, PROFILING_RESULT, TEST_CASE_FAILURE, ENTITY_UPDATED, ENTITY_DELETED, ENTITY_RESTORED, or SCHEMA_DELETED

  • ${object_type} - entity type (TEST_SUITE, PROFILING, TEST_CASE, OBJECT, TERM, SCHEMA)

  • ${name} - entity name (joined names on bulk change events). For profiling events this is the profiling's own name, which can differ from the table it reads - several profilings of one table are told apart by it

  • ${connection} - connection name

  • ${url} - link to the entity in the application

  • ${timestamp} - time the event was sent

Dotted paths reach any field of the event structure, e.g. ${entity.id}, ${details.failed}, ${details.suite_name}. Placeholders that do not apply to the current event type render as an empty string.

Execution events (TEST_SUITE_RESULT, PROFILING_RESULT) additionally resolve ${passed}, ${failed}, ${error} (percentages) and ${report_url} - an authenticated download URL for the report, distinct from ${url} which deep-links into the UI.

Repeating rows: wrap a fragment in ${items}... ${/items} and it repeats once per result row. Inside the block, row fields resolve by name - for example ${column}/${rule}/${result} on a profiling result, or ${description}/${status}/${expected_result} on suite results and test case failures. The legacy ${test_cases}... ${/test_cases} block keeps working for test suite results.

Structured JSON: use "${details_json}" or "${event_json}" as a complete string value and it is replaced with the event details (or the whole event) as real nested JSON - the easiest way to feed automation tools (n8n, Zapier, internal services) everything the event carries, e.g. exactly which profiling rules failed on which columns.

Item configuration

The Item configuration section in the webhook editor controls the ${items} rows of that webhook's payloads:

  • Items limit - the maximum number of rows in a single payload (1-200, default 50). Rows past the limit are counted in details.items_truncated.

  • Item statuses - which result statuses are included: Passed, Failed, Error, Not executed. The default is Failed + Error. Rows keep their ordering regardless of the selection (failures first).

Both settings apply to the live preview and to the Test webhook button, so what you see while editing is what a real alert sends.

Sample templates

The webhook editor ships with ready-made body templates - click a template chip above the JSON editor to load it, then customize as needed:

  • Universal - summary + link; renders sensibly for every event type.

  • Failed rows list - summary plus one line per failed row via the ${items} block.

  • Simple text - flat text payload with a text field; works with any service that renders Markdown in chat messages.

  • Slack - blocks with buttons - Slack Block Kit payload with summary text and two action buttons (View results, Download report).

  • Slack - results table - Slack payload rendering the result rows as a table.

  • Slack API - table (bot token) - variant for posting via the Slack API with a bot token.

  • Microsoft Teams - Adaptive Card payload with a fact set and open-URL actions.

  • Structured JSON - flat JSON object with one key per placeholder plus nested details. Useful as a starting point for arbitrary REST endpoints (Jira issue creation, PagerDuty, internal services, etc.) where you can map the fields to whatever the target API expects.

Editing webhooks

  1. Click on webhook you want to edit

  2. Refer to Adding webhooks.

Event log

The Event log sub-tab records every outbound alert delivery - webhook POSTs and alert emails (including test sends) - with the transport's response:

  • Webhooks: the HTTP status and (truncated) response body, or the failure message when the endpoint could not be reached.

  • Emails: the SMTP server's acceptance reply (e.g. 250 2.0.0 OK) or the failure message. Note that an accepted hand-off means the mail server took the message, not that it reached the inbox - bounces happen later, out of band.

Alert event log

Each row carries the event type, the entity that triggered the alert, the target (webhook or recipient list), status, response, and duration. The table supports filtering by channel, event type, status, entity/target text search, and date range. The webhook editor has the same log scoped to that webhook on its own Event log tab.

Retention is controlled by two settings in General settings → Retention: Alert event log history (days) and Alert event log max rows (a global cap where the oldest rows are pruned first).

Managing user alerts

Admins can review and manage every alert subscription in the system via the Manage user alerts button in the SMTP sub-tab's User alerts section

manageUserAlerts.png

The table lists one row per subscription, with these columns:

  • Recipient - the subscriber: a user, a webhook, or an external email

  • Type - Test case, Test suite, Term, Object, Profiling, or Schema

  • Entity - the entity the recipient is subscribed to; clicking it opens the entity's detailed view

  • Scopes - which kinds of events trigger an alert for this subscription (see below)

  • Created - when the subscription was created

The table supports text search by recipient, text search by entity name, and multi-select filters on type and scopes.

Alert scopes

Each subscription has one or more scopes that decide when it fires. Which scopes are available depends on the object type:

Object type

Available scopes

Test case

Change alerts, Failure alerts

Test suite

Failure alerts

Term

Change alerts

Object

Change alerts

Schema

Change alerts

Profiling

Failure alerts

  • Failure alerts - fires when an execution of the entity reports a failure (or below the configured threshold)

  • Change alerts - fires when the entity's configuration is changed (edits, renames, deletes)

Editing a subscription

Click any row to open the edit modal. Toggle the scopes you want and Save. Removing every scope unsubscribes the recipient from that entity (an inline warning is shown before saving). Admins can also select multiple rows with the row checkboxes and remove them with Delete selected, which carries the count and asks for confirmation.

My alerts

Every user has a My alerts sub-tab under Settings → Profile with the same table, filtered to their own subscriptions. The columns are the same, minus the Recipient column, and they can edit or remove only their own subscriptions.

17 August 2026