Agentic Data Analyst for Enterprise Analytics
ramp · Finance · 2025 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.2 (schema v2)
Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.
Problem
Domain: Enterprise analytics
Ramp needed to remove the bottleneck of data questions piling up behind a single on-call analyst.
Constraints:
- Thousands of tables and views
- Tacit domain knowledge
- Need Slack-native answers
- PII exclusion
Architecture
Ramp Research is a Slack-native agentic data analyst. User questions enter a Slack app and stateful thread, where the agent retrieves context from indexed dbt, Looker, and Snowflake metadata plus domain-owner documentation, then uses tools to inspect column values and rows in the warehouse instead of relying only on compressed search. Results stay in Slack with CSV previews for validation, while the context layer is evaluated through dbt-based tests that assert final answers and intermediate tool calls, table references, and query shape.
Diagram confidence: reconstructed (reconstructed from prose).
flowchart LR slack-interface[Slack interface] --> ramp-research-agent[Ramp Research agent] ramp-research-agent --> metadata-index[Metadata index] ramp-research-agent --> domain-documentation-filesystem[Domain documentation filesystem] ramp-research-agent --> warehouse-inspection-tools[Warehouse inspection tools] ramp-research-agent --> stateful-thread-context[Stateful thread context] ramp-research-agent --> csv-preview[CSV preview] context-evaluation-framework[Context evaluation framework] --> metadata-index
Components
| Component | Role | Interacts with |
|---|---|---|
slack-interface |
Slack app and channel/thread surface where employees ask questions, collaborate, receive answers, and validate CSV previews. | ramp-research-agent, csv-preview |
ramp-research-agent |
Agentic analyst that retrieves metadata, reasons through warehouse data, uses inspection tools, and produces answers in Slack. | slack-interface, metadata-index, domain-documentation-filesystem, warehouse-inspection-tools, stateful-thread-context, csv-preview |
metadata-index |
Aggregated dbt, Looker, and Snowflake metadata used to fetch the right models and form precise queries. | ramp-research-agent |
domain-documentation-filesystem |
Domain-owner technical documentation organized as files so the agent can access tacit business context. | ramp-research-agent |
warehouse-inspection-tools |
Tools for inspecting column values and row-level data, allowing the agent to branch and backtrack over warehouse evidence. | ramp-research-agent |
stateful-thread-context |
Conversation state that lets users clarify intent, collaborate in threads, and continue complex analysis with the agent. | ramp-research-agent |
csv-preview |
In-thread data preview that lets users validate results without leaving Slack for BI or warehouse tooling. | slack-interface, ramp-research-agent |
context-evaluation-framework |
Python mini-framework in the dbt project that tests the context layer, final answers, tool calls, table references, and query shape. | metadata-index |
Data flow
An employee asks a data question in Slack. Ramp Research retrieves relevant metadata from indexed dbt, Looker, and Snowflake context and consults domain documentation organized in a file system. For warehouse-scale questions it calls tools that inspect column values and row-level data, branching and backtracking like an analyst. The answer returns to the Slack thread with CSV previews so users can validate results without opening Redash or Snowflake. The same context layer is improved through dbt tests that check both the answer and the intermediate tool calls, table references, and query shape.
4 supporting quotes
Why this architecture
The architecture puts the agent in Slack because Slack is already the internal work hub, but gives it explicit context and warehouse tools because generic keyword/vector compression is insufficient for thousands of tables, tacit business context, and row-level questions. Evaluation is aimed at the context layer rather than every live question so Ramp can improve coverage without recreating the analyst bottleneck.
4 supporting quotes
Scale
- Ramp Research answered more than 1,800 questions across more than 1,200 conversations with 300 users after launching in early August.“Since launching in early August, Ramp Research has answered over 1,800 data questions across more than 1,200 conversations with 300 different users.”article, stated
- The beta Slack channel had more than 500 members helping guide development.“The
#ramp-research-betachannel now has 500+ members, many of whom have helped guide our development. ### Data Previews Early on, users had to open Redash or Snowflake to inspect data and verify answers.”article, stated - The analytics warehouse has thousands of tables and views, so retrieval has to narrow a large search space.“Our analytics warehouse has thousands of tables and views, and many questions require row-level inspection to get right.”article, stated
- In one four-week window, Ramp Research answered 1,476 questions versus 66 in the traditional help-data channel.“In the last 4 weeks, Ramp Research answered 1,476 questions in #ramp-research-beta, compared to 66 answered in #help-data.”article, stated
Alternatives considered (roads not taken)
Continue routing data questions through one on-call analyst in #help-data
Rejected because: Questions stacked up, answers arrived hours later, and many questions were never asked because adding to the queue felt costly.
#help-data, stacking up behind a single on-call analyst. Tabs sprawl – across Looker, Snowflake, and dbt docs – and the answer lands hours later”article, statedPing domain owners for every in-domain question
Rejected because: This preserved the per-question human effort and recreated the request-volume bottleneck.
Rely only on generic keyword or vector search compression
Rejected because: The warehouse scale and row-level inspection requirements needed tools that could inspect, branch, and backtrack through data.
Make users leave Slack for Redash or Snowflake to inspect data
Rejected because: In-thread CSV previews let less-SQL-fluent users validate results without switching tools.
Patterns
rag-retrieval (analytics)
Ramp indexed warehouse and BI metadata so the agent can form precise queries.
human-in-the-loop-gate (validation)
CSV previews let users validate answers in-thread.
Tradeoffs
Evaluate the context layer instead of routing every in-domain question through humans.
Chose Domain concept tests and intermediate-step assertions over A human-in-the-loop Slack ping for every in-domain data question.
Rationale: Per-question human review recreated the analytics bottleneck the agent was supposed to remove.
How to retrieve useful context from a warehouse with thousands of tables and tacit business knowledge.
Chose agent tools that inspect column values, branch, and backtrack over indexed metadata and documentation over generic keyword or vector-search compression alone.
Rationale: Row-level analytics questions require active inspection and reasoning, not just a compressed context snippet.
Where users should validate generated data answers.
Chose in-thread CSV previews inside Slack over forcing users to open Redash or Snowflake for every verification.
Rationale: Keeping validation in the collaboration surface lowers friction for users who are less familiar with SQL and BI tools.
Gotchas (what bit them)
Human-in-the-loop domain-owner routing did not scale.
Root cause: Every in-domain question still consumed analyst effort.
Resolution: Ramp moved toward agentic metadata retrieval and stateful answers.
Evaluation
Ramp tracked questions answered, conversations, users, and volume increase.
Metrics: questions answered · conversations · users · question volume
Outcomes
- Ramp Research answered 1,800+ questions across 1,200+ conversations with 300 users.
The summary reports 10-20x more data questions than the traditional channel.