Skip to main content
DataRaven uses Apprise under the hood to deliver notifications to virtually any service you already use. Configure a notification once, and DataRaven will alert you whenever the events you care about occur.

How It Works

1

Choose an event type

Pick which event should trigger the notification (e.g., task execution failed).
2

Provide an Apprise URL

Each notification service has a unique URL format that contains your credentials or webhook token.
3

Optionally filter and customize

Narrow which events match using filters, and customize the message with a Jinja2 template.
4

Test and enable

Use the Send Test button to verify delivery, then enable the notification.

Quick Setup

Quick Setup lets you create multiple notification configs at once — one per event type — all sharing the same Apprise URL. This is the fastest way to get comprehensive alerting for a single destination like a Slack channel or Discord webhook.
1

Navigate to Quick Setup

Go to Notifications and click Quick Setup.
2

Enter a name and Apprise URL

Provide a name prefix (e.g., “Slack Alerts”) and your Apprise URL. Each notification config will be named “{prefix} - {Event Name}” (e.g., “Slack Alerts - Execution Failed”).
3

Select event types

Check the event types you want notifications for. Use the group checkboxes to select entire categories, or Select All for full coverage.
4

Create

Click Create to bulk-create all selected configs in a single request. Each config gets a sensible default message template that you can customize later.
After Quick Setup, each notification config is fully independent — you can edit individual configs to add event filters, change templates, or disable specific ones without affecting the others.

Quick Setup via API

You can also bulk-create notifications programmatically using the Bulk Create endpoint:
curl -X POST https://api.dataraven.io/v1/teams/{team_id}/notifications/bulk \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Slack Alerts",
    "apprise_url": "slack://tokenA/tokenB/tokenC",
    "event_types": [
      "task_execution_started",
      "task_execution_completed",
      "task_execution_failed",
      "task_execution_cancelled"
    ]
  }'
This creates one notification config per event type. The response includes all created configs with their IDs, vault references, and default templates.

Apprise URLs

Every notification service is configured through a single URL string. Apprise supports 100+ services — see the full list on the Apprise docs.
slack://tokenA/tokenB/tokenC
Refer to the Apprise wiki for the exact URL format and required tokens for your service.

Event Types

DataRaven supports 18 event types organized into five categories:
Events fired during task execution lifecycle.
Event TypeFires When
task_execution_startedAn execution begins
task_execution_completedAn execution finishes successfully
task_execution_failedAn execution encounters an error
task_execution_cancelledAn execution is cancelled

Event Filters

Event filters let you narrow which events trigger the notification. Filters are a JSON object where all conditions must match (AND logic). Leave empty ({}) to match all events of the selected type.

Filter Rules

  • Exact match{"trigger": "scheduled"} matches only scheduled triggers
  • Any-of match{"status": ["failed", "completed"]} matches if the value is any item in the array
  • Boolean match{"is_dry_run": false} matches only real executions
  • Multiple conditions{"trigger": "scheduled", "is_dry_run": false} requires both to match

Examples by Event Type

// Only failed and completed executions
{"status": ["failed", "completed"]}

// Only scheduled triggers (not manual)
{"trigger": "scheduled"}

// Only real executions (not dry runs)
{"is_dry_run": false}

Message Templates

Notifications use Jinja2 templates to format the message body. Each event type exposes different variables. If you don’t provide a custom template, DataRaven uses a sensible default.

Available Variables

VariableDescription
task_nameName of the task
execution_numberSequential execution number
statusCurrent execution status
duration_secondsExecution duration (completed events)
error_messageError details (failed events)

Default Templates

Here are the built-in templates DataRaven uses when you don’t specify a custom one:
🚀 Task execution started

Task: {{task_name}}
Execution: #{{execution_number}}
Status: {{status}}
You can customize templates with any valid Jinja2 syntax — conditionals, default values, formatting, etc.
🚨 ALERT: {{task_name}} failed (Execution #{{execution_number}})

{% if error_message %}
Error: {{error_message}}
{% else %}
No error details available.
{% endif %}

Testing Notifications

Before relying on a notification in production, use the Send Test button in the admin UI. This sends a sample notification using your configured Apprise URL and message template so you can verify delivery without waiting for a real event.
Test notifications use placeholder data for template variables (e.g., task_name = “Test Task”). The actual notification will contain real event data.

Security

Apprise URLs contain sensitive credentials — webhook tokens, API keys, passwords. DataRaven never stores these in plain text or returns them in API responses.
  • Apprise URLs are encrypted and stored in AWS SSM Parameter Store
  • API responses include only a vault reference ID (apprise_vault_secret_id), never the URL itself
  • URLs are only decrypted internally when sending a notification

Tier Limits

PlanNotification Configs
Free1
Pro25
Need more? Upgrade your plan from the billing page.

Common Patterns

Alert on all failures

Event type: task_execution_failed Filters: {} Result: Get notified whenever any task fails.

Slack on scheduled completions

Event type: task_execution_completed Filters: {"trigger": "scheduled"} Result: Notify Slack when scheduled tasks finish (ignore manual runs).

PagerDuty for critical failures

Event type: task_execution_failed Filters: {"is_dry_run": false} Result: Page on-call when real (non-dry-run) executions fail.

Audit secret changes

Event type: secret_created, secret_updated, secret_deleted Filters: {} Result: Track all secret lifecycle events for compliance.

Monitor API key activity

Event type: api_key_created, api_key_rotated, api_key_revoked, api_key_deleted Filters: {} Result: Track all API key lifecycle events for security auditing.
You can create multiple notification configs for the same event type with different filters and destinations — for example, send failures to both Slack and PagerDuty.