Install
openclaw skills install outlit-mcpUse when querying Outlit customer data via MCP tools (outlit_*). Triggers on customer analytics, revenue metrics, activity timelines, cohort analysis, churn risk assessment, SQL queries against analytics data, or any Outlit data exploration task.
openclaw skills install outlit-mcpQuery customer intelligence data through 6 MCP tools covering customer and user profiles, revenue metrics, activity timelines, and raw SQL analytics access.
| What you need | Tool |
|---|---|
| Browse/filter customers | outlit_list_customers |
| Browse/filter users | outlit_list_users |
| Single customer deep dive | outlit_get_customer |
| Customer activity history | outlit_get_timeline |
| Custom analytics / aggregations | outlit_query (SQL) |
| Discover tables & columns | outlit_schema |
Before writing SQL: Always call outlit_schema first to discover available tables and columns.
Find at-risk customers:
{
"tool": "outlit_list_customers",
"billingStatus": "PAYING",
"noActivityInLast": "30d",
"orderBy": "mrr_cents",
"orderDirection": "desc"
}
Revenue breakdown (SQL):
{
"tool": "outlit_query",
"sql": "SELECT billing_status, count(*) as customers, sum(mrr_cents)/100 as mrr_dollars FROM customer_dimensions GROUP BY 1 ORDER BY 3 DESC"
}
Go to Settings > MCP Integration in the Outlit dashboard (app.outlit.ai).
Detect the current environment and run the appropriate setup command:
Check for Claude Code — If running inside Claude Code (check if claude CLI is available), run:
claude mcp add outlit https://mcp.outlit.ai/mcp -- --header "Authorization: Bearer API_KEY"
Check for Cursor — If .cursor/mcp.json exists in the project or home directory, add to that file:
{
"mcpServers": {
"outlit": {
"url": "https://mcp.outlit.ai/mcp",
"headers": { "Authorization": "Bearer API_KEY" }
}
}
}
Check for Claude Desktop — If claude_desktop_config.json exists at ~/Library/Application Support/Claude/ (macOS) or %APPDATA%/Claude/ (Windows), add to that file:
{
"mcpServers": {
"outlit": {
"url": "https://mcp.outlit.ai/mcp",
"headers": { "Authorization": "Bearer API_KEY" }
}
}
}
Ask the user for their API key if not provided. Replace API_KEY with the actual key.
Call outlit_schema to confirm the connection is working.
Filter and paginate customers.
| Key Params | Values |
|---|---|
billingStatus | NONE, TRIALING, PAYING, CHURNED |
hasActivityInLast / noActivityInLast | 7d, 14d, 30d, 90d (mutually exclusive) |
mrrAbove / mrrBelow | cents (10000 = $100) |
search | name or domain |
orderBy | last_activity_at, first_seen_at, name, mrr_cents |
limit | 1-1000 (default: 20) |
cursor | pagination token |
Filter and paginate users.
| Key Params | Values |
|---|---|
journeyStage | DISCOVERED, SIGNED_UP, ACTIVATED, ENGAGED, INACTIVE |
customerId | filter by customer |
hasActivityInLast / noActivityInLast | Nd, Nh, or Nm (e.g., 7d, 24h) — mutually exclusive |
search | email or name |
orderBy | last_activity_at, first_seen_at, email |
limit | 1-1000 (default: 20) |
cursor | pagination token |
Single customer deep dive. Accepts customer ID, domain, or name.
| Key Params | Values |
|---|---|
customer | customer ID, domain, or name (required) |
include | users, revenue, recentTimeline, behaviorMetrics |
timeframe | 7d, 14d, 30d, 90d (default: 30d) |
Only request the include sections you need — omitting unused ones is faster.
Activity timeline for a customer.
| Key Params | Values |
|---|---|
customer | customer ID or domain (required) |
channels | SDK, EMAIL, SLACK, CALL, CRM, BILLING, SUPPORT, INTERNAL |
eventTypes | filter by specific event types |
timeframe | 7d, 14d, 30d, 90d, all (default: 30d) |
startDate / endDate | ISO 8601 (mutually exclusive with timeframe) |
limit | 1-1000 (default: 50) |
cursor | pagination token |
Raw SQL against ClickHouse analytics tables. SELECT only. See SQL Reference for ClickHouse syntax and security model.
| Key Params | Values |
|---|---|
sql | SQL SELECT query (required) |
limit | 1-10000 (default: 1000) |
Available tables: events, customer_dimensions, user_dimensions, mrr_snapshots.
Discover tables and columns. Call with no params for all tables, or table: "events" for a specific table. Always call this before writing SQL.
Billing status: NONE → TRIALING → PAYING → CHURNED
Journey stages: DISCOVERED → SIGNED_UP → ACTIVATED → ENGAGED → INACTIVE
Data formats:
cust_, contact_, evt_)Pagination: All list endpoints use cursor-based pagination. Check pagination.hasMore before requesting more pages. Pass pagination.nextCursor as cursor for the next page.
outlit_schema before writing SQL — discover columns, don't guessinclude options for faster responsesWHERE occurred_at >= now() - INTERVAL N DAY| Tool | Gotcha |
|---|---|
outlit_list_customers | hasActivityInLast and noActivityInLast are mutually exclusive |
outlit_list_customers | search checks name and domain only |
outlit_get_customer | behaviorMetrics depends on timeframe — extend it if empty |
outlit_get_timeline | timeframe and startDate/endDate are mutually exclusive |
outlit_query | Use ClickHouse date syntax: now() - INTERVAL 30 DAY, not DATE_SUB() |
outlit_query | properties column is JSON — use JSONExtractString(properties, 'key') |
| Reference | When to Read |
|---|---|
| SQL Reference | ClickHouse syntax, security model, query patterns |
| Workflows | Multi-step analysis: churn risk, revenue dashboards, account health |