Overview
Eru is semantic scaffolding for enterprise AI — a live operational model of your company that humans and AI can query, reason over, and act on.
We're starting with RevOps. As Series A–D companies scale, they lose track of their own numbers. Real revenue, actual CAC, true LTV become unanswerable. Data fragments across CRM, ERP, payments, spreadsheets, data lake — each holding a piece of the truth. Three systems, three answers.
Eru integrates these systems, reconciles the data, and builds a knowledge graph showing how everything connects — customers to contracts to invoices to payments. When numbers conflict, we trace the root cause and surface the evidence. When something changes in Stripe, the graph updates.
Today's AI agents struggle because they lack institutional context — they don't know how your business fits together. Eru builds the layer that changes that. Not chatbots answering questions. AI that understands your business well enough to run parts of it.
How It Works
Eru operates as a continuous loop — discovering, mapping, checking, and alerting. The system runs in the background, progressively building understanding of your data landscape.
Connect
Grant read-only access to your databases, APIs, and SaaS tools. Eru uses protocol-level adapters — no vendor-specific connectors.
Discover
The agent explores schemas, samples data, and infers entity relationships. Customers → contracts → invoices → payments.
Map
Build a living Truth Map — a knowledge graph of entities, metrics, datasets, and their relationships across all connected systems.
Check
Author Truth Checks — continuous contracts that monitor freshness, volume, reconciliation, and business rules.
Alert
When something breaks, get notified in Slack with an Evidence Pack — the exact query, results, and root cause analysis.
Quick Start
Get Eru running in your Slack workspace in under 10 minutes.
1. Install the Slack App
Add Eru to your workspace and invite it to a channel where your data team operates.
2. Connect Your First Source
Use the /connect command to add a database or API:
/connect postgres production-db
Eru will guide you through credential entry (stored in AWS Secrets Manager, never sent to LLMs).
3. Ask a Question
Once connected, start querying:
@eru What's our MRR by customer segment?
Eru will explore your data, build the relevant portion of the Truth Map, and return an answer with full evidence.
Truth Map
The Truth Map is a living knowledge graph of your company's data. It captures what exists, how it connects, and what it means.
Node Types
| Type | Description | Example |
|---|---|---|
Source |
A connected system | PostgreSQL production, Stripe API, HubSpot |
Entity |
A business object | Customer, Product, Subscription |
Metric |
A measured KPI | MRR, Churn Rate, CAC |
Dataset |
A table or collection | users table, /invoices endpoint |
Edge Types
| Type | Meaning |
|---|---|
maps_to |
Field mapping (users.id → Customer.id) |
derived_from |
Calculation source (MAU ← events table) |
depends_on |
Dependency chain (Churn Rate depends on MAU) |
owned_by |
Ownership (Customer owned by Sales team) |
joins_with |
Join relationship (orders.user_id ↔ users.id) |
Confidence Scoring
Every node and edge has a confidence score from 0.0 to 1.0:
- > 0.8 — Verified (human-confirmed or high evidence)
- 0.5–0.8 — Inferred (strong signal but not confirmed)
- < 0.5 — Needs review
Confidence decays over time if not re-validated.
Truth Checks
Truth Checks are continuous contracts that monitor your data. When something drifts, you know immediately — with evidence.
Check Primitives
| Check | What It Monitors | Example |
|---|---|---|
Freshness |
Data recency | events table updated < 1 hour ago |
Volume |
Expected row counts | daily events between 10K–100K |
Reconciliation |
Cross-source agreement | Stripe revenue ≈ DB revenue (within 1%) |
Referential |
Foreign key validity | all order.user_id exist in users |
Completeness |
Null rate expectations | email is 99%+ filled |
Uniqueness |
No duplicates | user_id is unique in users |
Business Rule |
Domain logic | ARR = MRR × 12 |
Evidence Packs
Every claim Eru makes is backed by an Evidence Pack — an immutable audit trail that proves the answer.
What's Included
- Exact query executed (with hash for reproducibility)
- Query results (sanitized samples)
- Schema snapshot at execution time
- SourceSpec version references
- Mapping versions used
- Statistical summaries (drop %, null rates, cardinality)
Retention Modes
- Metadata-only — Query hashes, counts, schema snapshots (no raw rows)
- Redacted samples — PII masked, capped rows/columns
- Full samples — Rare, explicit opt-in, short retention
System Design
Eru is built as a multi-service architecture optimized for safety, auditability, and progressive discovery.
┌─────────────────────────────────────────────────────────────────┐
│ User (Slack) │
└─────────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Slack Service (TypeScript) │
│ Events • Commands • Modals • App Home • Alerts │
└─────────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ API Service (FastAPI) │
│ Auth • RBAC • Truth Map Store • Work Item Queue │
└─────────────────────────────┬───────────────────────────────────┘
│
┌───────────────┴───────────────┐
▼ ▼
┌─────────────────────────┐ ┌─────────────────────────────────┐
│ Agent (Claude) │ │ Runtime (Sandboxed) │
│ Plan • Reason • Tools │────▶│ SQL • HTTP • Read-Only • Safe │
└─────────────────────────┘ └─────────────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ PostgreSQL + Redis + S3 │
│ Truth Map • Work Items • Evidence Packs • Cache │
└─────────────────────────────────────────────────────────────────┘
Agent vs Runtime Split
This is the critical safety design. The Agent (brain) plans and reasons using Claude. The Runtime (rails) executes queries safely with hard limits.
Agent (Brain)
- Plans and reasons
- Uses Claude SDK for multi-step thinking
- Calls tools (query_sql, update_truth_map)
- Respects budgets (advisory)
Runtime (Rails)
- Executes SQL/HTTP safely
- Enforces read-only (SELECT only)
- Hard budget enforcement
- PII sanitization
Data Model
Eru uses PostgreSQL as the primary state store and workflow engine. No external orchestration — just row-level locking and state machines.
Core Tables
tenants— Multi-tenant isolationsources— Connected systems and credentialstruth_nodes— Graph nodes (Source, Entity, Metric, Dataset)truth_edges— Graph edges with versioningtruth_checks— Continuous monitoring contractswork_items— DB-backed task queue with state machineevidence_packs— Audit trail metadata (content in S3)
Security
LLM Data Boundary
We're careful about what goes to Claude:
Sent to LLM
- Schema metadata (table/column names)
- Statistical summaries
- Anonymized samples (5–10 rows, PII redacted)
- User questions
- Error messages
Never Sent
- Raw credentials/secrets
- Full table dumps
- Raw PII fields
- Connection strings
- API tokens
Budget Enforcement
Hard limits per tenant per day:
- API calls: 1,000/day per source
- SQL bytes scanned: 10 GB/day per source
- Runtime wall time: 30 min/day per source
- LLM tokens: 10K/hour, 100K/day
- Questions: 5/week
Database Integrations
Eru connects to databases using protocol-level adapters. No vendor-specific connectors.
Supported Databases
- PostgreSQL
- MySQL / MariaDB
- Snowflake
- BigQuery
- Redshift
- MongoDB (read-only queries)
Connection Security
- Credentials stored in AWS Secrets Manager
- Read-only database users recommended
- IP allowlisting available via NAT Gateway
- SSL/TLS required for all connections
API & SaaS Integrations
Eru connects to REST and GraphQL APIs using OAuth2 or API keys.
Common Integrations
- Stripe — Payments, subscriptions, invoices
- Salesforce — CRM, opportunities, accounts
- HubSpot — Contacts, deals, companies
- NetSuite — ERP, financials
- Zendesk — Tickets, customers
- Shopify — Orders, products, customers
Custom APIs
Eru can ingest OpenAPI specs, Postman collections, or internal documentation to learn your custom APIs before probing.
Slack Integration
Slack is the primary interface. Eru lives where your team already works.
Slash Commands
| Command | Description |
|---|---|
/connect |
Add a new data source |
/ask |
Query the Truth Map |
/status |
Check system health and active checks |
Notifications
Eru sends alerts when:
- A Truth Check fails
- Schema drift is detected
- Reconciliation conflicts are found
- Access approval is needed