New — Database Watches, event-driven reports

Run SQL on a schedule. Deliver insights automatically.

Connect your database, write SQL, and DataRunner delivers formatted reports to your team on any schedule — or the moment your data changes.

No credit cardFirst report in 5 minutes15+ database connectors
Search…⌘ K
prodJD
weekly-revenue.sqlPostgreSQLanalytics-proddone
weekly-revenue.sql Save ScheduleRun
1
2
3
4
5
6
7
8
9
SELECT
date_trunc(
'week', created_at) week,
count(*) AS orders,
sum(total)/100 AS revenue
FROM orders
WHERE status = 'fulfilled'
GROUP BY 1 ORDER BY 1 DESC
CSVXLSXJSONSQL
weekordersrevenue
2026-05-252,431$184,228
2026-05-182,109$162,041
2026-05-111,884$148,772
2026-05-041,712$131,884
Schedule report
Cadence
0 9 * * 1
HourlyDaily 9amWeekly MonMonthly
Format
Excel (XLSX)
Deliver to
finance@acme.com
0+
Database connectors
Postgres, MySQL, BigQuery, Snowflake, +11
0
Delivery channels
Email · Slack · S3 · Webhooks
0s
Min. watch interval
Event-driven reports, no polling overhead
<0min
First report running
From signup to scheduled delivery
Features

Everything you need to run on data

Six purpose-built tools that work together — connect, query, schedule, watch, monitor, and reach out.

Database connections

Connect once. Query everything.

15+ database engines. Credentials encrypted at rest, live schema, latency, and health surfaced right in the app.

  • Live schema browser — tables, columns, row counts
  • SSL, SSH tunneling, connection pooling per connection
  • One-click schema snapshots for diff and rollback
Search…⌘ K
prodJD
Connections
6 connections · 5 healthy

Connections

6

Healthy

5

Avg latency

24ms

All6Latency1Healthy5
PostgreSQL
analytics-prod
db.acme.io
connected
Latency8ms
BigQuery
warehouse-bq
bigquery.io
connected
Latency64ms
MySQL
orders-mysql
orders.local
connected
Latency12ms
PostgreSQL
reporting-replica
replica.acme
connected
Latency11ms
Scheduled reports

On time, in the right inbox.

Cron schedule, CSV / XLSX / PDF, deliver to email, Slack, S3, webhook. Done.

Scheduled reports
From query to inbox, on a cron
Pick a saved query
weekly-revenue · analytics-prod
Set the cron
0 9 * * 1 — Monday 09:00 UTC
Choose a format
CSV · Excel · PDF
Fan out to channels
Email + Slack + S3, in parallel
Database watches

React when data changes.

Poll any SQL condition. Fire email, Slack, webhook, or full report the moment new rows match.

Database watches
React the moment data changes
Define a SQL condition
SELECT … WHERE created_at > {{last_check}}
Poll on an interval
every 60s · per-row dedup
New rows match
3 new orders since last poll
Fire the action
Slack #ops-alerts · or a full report
Run history & audit

Every execution, logged.

Unified log across schedules, watches, and manual runs — with trigger type, duration, row count, and exit status. Re-run, inspect, export.

  • Filter by trigger type, status, or operator
  • Per-channel delivery receipts on every run
  • Audit export to CSV for compliance reviews
Search…⌘ K
prodJD
Run history
1,284 runs · last 24h
All1,284Schedule847Watch319Manual118
NameTriggerStatusRowsWhen
weekly-revenuescheduleok12,8472 min ago
new-orders.watchwatchok34 min ago
daily-ops.reportscheduleok84714 min ago
order-anomalieswatchempty022 min ago
inventory-hourlyscheduleerror38 min ago
ad-hoc querymanualok1241 hr ago
Endpoint monitoring

Know when an endpoint drops.

HTTP probes from 30 seconds. Incidents auto-open and auto-close with start, resolution, and duration logged. Alert on the same channels as reports.

  • GET / HEAD / POST probes per monitor
  • Per-monitor failure threshold & timeouts
  • Incident timeline w/ recovery markers
Search…⌘ K
prodJD
Monitors
8 endpoints · 1 incident open
All8Down1Up7
api.acme.com/health
GET 30s
42msok
app.acme.com/login
GET 60s
187msok
payments.acme.com/charge
POST 60s
241msok
legacy.internal/jobs
HEAD 60s
timeout503
Marketing campaigns

Send at the right time.

Build, schedule, deliver email campaigns to broadcast lists. Per-recipient delivery tracking.

Marketing campaigns
Draft, target, send, track
Draft the email
Template + {{params}}
Target broadcast lists
Deduped at send · consent checked
Send
8,471 recipients · throttled
Track delivery
Per-recipient receipts · opens
How it works

From query to inbox in minutes

Set up your first automated report in under five minutes. No DevOps, no infrastructure, no code beyond SQL.

01

Connect a database

Credentials encrypted at rest and in transit. Test the connection and browse the live schema right in the app.

PostgreSQLMySQLBigQuerySnowflake+11 more
02

Write your SQL query

Use the Monaco workbench to write and preview your query live. Add `{{parameters}}` for dynamic values.

Syntax highlightAutocompleteParameters
03

Schedule & deliver

Pick a cron expression, choose your output format, and configure delivery. DataRunner runs it from then on.

Cron scheduleEmail / Slack / S3Webhooks
Pricing

Simple, predictable pricing

Start free, scale as you grow. No per-query charges, no hidden fees.

Free
$0/mo

Try DataRunner, no time limit

  • 1 database connection
  • 5 scheduled reports
  • 1 watch & 1 monitor
  • Email delivery
  • Community support
Most popular
Pro
$49/mo

For teams that run on data

  • Unlimited connections & reports
  • Unlimited watches · 50 monitors
  • Campaigns, sequences & metrics
  • All delivery channels
  • Pipelines, API keys & branding
Business
$149/mo

Scale, governance & compliance

  • Everything in Pro
  • Unlimited members & hosts
  • SAML / SSO + audit logs
  • Priority support & SLA

See full pricing and plan comparison →

Your first automated report is 5 minutes away.

Connect a database, write your SQL, set a schedule. No credit card, no engineering team, no infrastructure to manage.