Documentation
Damasqas connects to your data stack and lives inside Slack. Ask questions in plain English, get alerted when things go wrong, set up monitoring without config files, and verify PRs in isolated sandboxes — all without leaving your workspace.
Getting Started
After installing Damasqas to your Slack workspace, connect your integrations from the admin dashboard:
- Database — your production Postgres instance
- Workflows — your Temporal cluster
- Infrastructure — your Railway project
- Code — your GitHub organization
@damasqas and ask.Asking Questions About Your Data
You can ask Damasqas anything about your data in plain English. It knows your schema, your pipeline history, your deployments, and your code — and it connects the dots across all of them automatically.
Data & schema questions

WHERE created_at >= '2024-01-14' AND created_at < '2024-01-15'4,821 orders on January 14th.That's up 12% from the 7-day average of 4,302.

FROM payments p JOIN orders o ON o.id = p.order_id
WHERE p.status = 'failed' ORDER BY p.created_at DESC LIMIT 5
| payment | amount | time | customer |
|---|---|---|---|
| pay_a1b2 | $142.00 | Jan 14, 15:32 | cust_882 |
| pay_c3d4 | $89.50 | Jan 14, 14:11 | cust_341 |
| pay_e5f6 | $310.00 | Jan 14, 12:55 | cust_119 |
| pay_g7h8 | $22.00 | Jan 14, 11:44 | cust_774 |
| pay_i9j0 | $56.75 | Jan 14, 09:20 | cust_502 |
card_declined error. Want me to check if there's a pattern in the provider logs?

This is a Stripe-side issue, not your code. The failed payments can likely be retried now — want me to check how many total failed in that window?
Tracing a record through your pipeline
Trace a single record end-to-end across every table it touches.

orders
id=8821→ placed Jan 14 at 10:02 · customer
cust_441 · $278.00 · status: completedpayments
order_id=8821→
pay_x7y8 · $278.00 · Stripe · status: completed at 10:02fulfillment_jobs
order_id=8821→
job_4421 · queued 10:02 · started 10:04 · completed 10:09shipments
order_id=8821→
ship_9932 · UPS · delivered Jan 15invoices
order_id=8821→
inv_2241 · sent Jan 14 at 10:10 · opened Jan 14 at 11:33Everything looks healthy. Let me know if you want to dig into any step.
Debugging pipeline failures

revenue-sync · Run run_a8b9c0Failed at: 03:14 AM · Activity:
transform_payments (attempt 3/3)Error: column "amount" does not exist
LINE 1: SELECT id, order_id, amount, currency FROM payments... Deploy #91 went live at 03:02 AM. PR #147 renamed
payments.amount → payments.total_amount. The migration ran, but the workflow still references the old name on line 42 of sync/revenue.ts.Root cause: schema change not reflected in ETL code
- amount,
+ total_amount AS amount, Want me to check if any other workflows reference
payments.amount?

1. nightly-reconciliation —
reconcile/payments.ts line 882. monthly-invoicing —
invoicing/aggregate.ts line 31Both are scheduled tonight. Patch all three before then.
Pipeline Failure Alerts
Damasqas watches your workflows continuously. The moment a pipeline fails, you get an alert in Slack with an AI-generated root cause analysis.

Root cause: schema_change — payments.amount was renamed in deploy #91. The ETL still references the old name.
Suggested fix: Update sync/revenue.ts line 42.
Every alert includes: which workflow failed and when, the exact error, AI-classified root cause, a suggested fix based on your code and recent deploys, and a link to the full execution history.
SLA Monitoring
Set deadline-based SLAs on critical workflows. Damasqas warns you before a deadline is missed.

Due by 09:00 AM ET (30 min from now) and hasn't completed. Running for 2h 18m — the last 3 runs took 38m, 41m, 44m. This is 3× longer than normal.

The 09:00 AM ET deadline has passed. Still running at 2h 52m.

Completed at 09:08 AM ET — 8 minutes late. Total: 2h 56m.
Data Quality Monitoring
Damasqas monitors your tables for anomalies automatically. It learns baselines and alerts when something drifts.
| Check | What it watches |
|---|---|
| Row count | Unexpected drop or spike in table size |
| Null rate | Percentage of NULLs in a column |
| Value range | Min, max, or average going out of bounds |
| Uniqueness | Duplicates appearing in a unique column |
| Freshness | Table not updated on schedule |
| Custom SQL | Any metric you can express as a SELECT |

Baseline: 0.3% · Current: 14.2% ↑ 47×
14,200 of 100,000 recent users missing an email. Spike started ~2:15 PM when deploy #89 went out.
Setting Up Monitors in Plain English
Describe what you want to watch in Slack. No YAML. No dashboard. Damasqas figures out the rest.

1. Which channel for alerts?
2. How long before re-alerting?

Watching:SELECT COUNT(*) FROM orders WHERE created_at > NOW() - INTERVAL '1 hour'Alert when result < 100
Schedule: every hour
Channel: #sales-ops
Cooldown: 2 hours


Watching: freshness of
public.paymentsThreshold: no new rows for > 30 min
Active: Mon–Fri, 09:00–19:00 ET
Channel: #data-alerts

Watching:
nightly-etl durationThreshold: > 2 hours
Channel: #data-team with @oncall

Trigger: PR merged →
main on paymentsChannel: this channel (#dev-feed)
Supported monitors: SQL metrics, workflow duration, deadline SLAs, table freshness, NULL rate, row count changes, custom SQL, workflow failures/completions, deployments, PR merges, schema changes, and row inserts matching criteria.
Rule-Based Automation
Automate responses to pipeline events in plain English. Describe the rule once — Damasqas parses it, stores it, runs it.

Trigger:
revenue-sync fails 3× consecutivelyAction: alert #sales-ops
Watching immediately.

Trigger: Every Monday 09:00 AM
Action: pipeline summary → #data-team

Rule created ✅ (requires approval)
Trigger:
payments.amount null rate > 5%Action: pause
revenue-syncApproval: yes — I'll ask before pausing anything
Approval workflow
Actions that modify pipelines (retry, pause) require explicit approval before Damasqas acts.

payments.amount null rate is 7.3% (threshold: 5%).
Proposed: Pause revenue-sync schedule
No new runs until manually resumed.
Actions reference
| Action | Description | Approval |
|---|---|---|
| Post a Slack alert | Notify a channel, optionally @mention | No |
| Post a pipeline summary | Generate and share a health report | No |
| Run a read-only query | Fetch data and post results | No |
| Retry a workflow | Re-run a failed pipeline | Yes |
| Pause a schedule | Stop a workflow from triggering | Yes |
Sandbox & PR Verification
When a PR is opened, Damasqas spins up a fresh isolated environment, runs your tests, and reports results to the GitHub PR and Slack — before anything touches production.
- PR is opened or updated
- Damasqas provisions a clean environment
- Auto-detects your stack (language, framework, database, test runner)
- Builds, runs migrations, executes tests
- Results posted to GitHub PR check and Slack

| Step | Result | Time |
|---|---|---|
| Build | ✅ | 42s |
| Migrations | ✅ | 3s |
| Unit tests | ✅ | 18s |
| Integration tests | ✅ | 1m 12s |
Total: 2m 15s

| Step | Result | Time |
|---|---|---|
| Build | ✅ | 38s |
| Migrations | ✅ | 3s |
| Unit tests | ❌ | 22s |
| Integration | ⏭ skipped | — |
FAIL src/sync/revenue.test.ts
✕ transforms payment amount correctly (3ms)
TypeError: Cannot read property 'amount' of undefined
at transformPayment (sync/revenue.ts:42:18)
Custom sandbox configuration
Add damasqas.sandbox.yml to your repo root:
build:
command: npm ci && npm run build
setup:
- npm run db:migrate
- npm run db:seed:test
verify:
steps:
- name: unit tests
command: npm test
- name: integration tests
command: npm run test:integration
depends_on: [unit tests]
- name: e2e tests
command: npm run test:e2e
depends_on: [integration tests]
Steps run in dependency order. If one fails, dependents are skipped automatically.
The Admin Dashboard
Integrations — Connect and update credentials for your database, workflows, infrastructure, and code. All credentials are encrypted and never visible after saving.
Alert Configurations — Create, edit, and delete pipeline failure alerts, SLA configs, data quality checks, and natural language monitors from one interface.
Sandboxes — History of sandbox runs with status, step results, and logs.
Analytics — Queries run, rows fetched, workflows debugged, estimated time saved.
Team & Access — Manage approvers, workspace settings, and notification preferences.