Back to use cases
Data & Analytics

Ad-Hoc Data Queries in Slack

Use a Slack slash command to query your database in plain English.

IntegrationsMCP
AuthorOpulent
CategoryData & Analytics
FeaturesIntegrations, MCP
start it with one message
/opulent What was our week-over-week signup growth, broken down by acquisition channel?
Run this in OpulentCopy it, swap the names for your own, and send it.
connected systems
SlackRead and write Slack conversations in Manus
SnowflakeQuery structured and unstructured data in Snowflake using natural language
MetabaseAccess Metabase data analytics with caching and response optimization
SupabaseManage Supabase projects, query databases, and organize data efficiently
step 1

Connect the databases Opulent can query

Connect at least one database (Snowflake, Supabase, or through Metabase) so Opulent can answer questions from real data. Use a read-only user or a connection with restricted permissions for production.

Verify the connection with a quick test: ask Opulent to list tables or run a one-line count. If it returns the schema, the query path is live.

Supported connections:
- Snowflake: account, warehouse, database, schema, role.
- Supabase: connection string with read-only privileges.
- Metabase: saved questions and models Opulent can reference.

Test: "List all tables in the analytics schema that contain the
word 'user' or 'account'."
Tip

Start with a read-only connection string. A query run that cannot accidentally write protects production while you test the workflow.

step 2

Ask your first question in Slack

Open any Slack channel where Opulent is installed and type the question. Opulent writes the SQL, runs it against the connected database, and replies in the same thread.

For deeper questions, ask for an investigation rather than a single number. Opulent can run multiple queries, compare periods, and synthesize the findings in one thread.

The sharp edge: vague questions ('tell me about users') return noisy answers. Ask for a metric, a time window, and a breakdown, and the SQL will match.

/opulent What were our top 10 customers by revenue last quarter?

/opulent Conduct a deep investigation on our user growth over the
past month. Which segments and use cases can the growth be
attributed to? Break it down by acquisition channel and plan tier
and highlight any notable changes compared to the prior month.
step 3

Teach Opulent your schema and conventions

Opulent gets better when it knows your column meanings, enum values, timezone rules, and business definitions. Give corrections directly in the thread and ask it to remember them for next time.

Each remembered fact becomes part of the context for future runs, so the number of follow-up questions shrinks as the model learns your stack.

Examples to remember:
- "'Active user' means at least one event in analytics.events in
  the past 30 days."
- "All timestamps are stored in UTC. Always convert to
  America/New_York for display."
- "The plan column values are free, pro, and enterprise, not
  basic/premium."
- "MRR is in cents, not dollars. Divide by 100 when showing
  revenue."
Tip

Ask Opulent to list what it remembers before a big analysis. Catching a stale definition in advance is cheaper than re-running a wrong query.

step 4

Ask follow-ups in the same thread

Opulent keeps context within a Slack thread, so follow-up questions can reference earlier results without repeating the full setup.

For questions you ask regularly, create a playbook with the exact query and formatting you want, then trigger it with a custom macro from Slack.

Follow-ups:
/opulent Break that down by plan tier and show the
month-over-month trend.

/opulent Chart daily signups for the past 90 days with a 7-day
moving average.

Recurring macro: !weekly-growth
- Runs the same query and format every Monday.
- Posts to #metrics with channel and trend context.
step 5

Sharpen the Slack query practice

When Opulent frequently misunderstands a table or column, add the definition to memory (the notes a run recalls next time) or write it into a playbook so the query starts correct.

Set up scheduled runs for recurring questions (weekly growth, daily active users, pipeline coverage) so the team gets the answer without re-asking.

The natural chain: when a Slack query reveals a pattern worth investigating, hand it to Data Analysis as an Agent-Run Workflow for a full decision record, or to Reason Over Entire Datasets with Async Spawns if the dataset is too large for one query.