Everything Auli does, written down plainly.
Setup takes about two minutes. This page covers the connectors, the permission model, how fresh the data is, and how every number is cited.
From signup to a cited answer.
- 01
Create your workspace
Sign up with email, Google, Apple or phone. Every person belongs to at least one workspace, and all data, connections and billing are scoped to it. Invite teammates from Team → Members.
- 02
Connect a source
Go to Team → Integrations, pick a connector and complete the OAuth handshake. Auli requests read-only scopes and never writes back to your platforms. Tokens are encrypted at rest.
- 03
Activate the accounts that matter
Agencies and multi-brand teams often see dozens of ad or CRM accounts. Activate only the ones this workspace should read — each activated account counts once against your plan.
- 04
Ask your first question
Open Auli Chat and ask in plain language: “What changed in pipeline this week, and why?” The analyst plans the query, calls the connectors it needs, and answers with the account and date range attached.
- 05
Keep what's useful
Pin any chart to a dashboard, export it to PDF or CSV, or share a read-only link. Metric and date-range preferences persist per workspace.
Seven sources. All read-only.
- Google Analytics 4Google OAuth (read-only)analytics.readonlyProperty · date · channel · landing page
- Google AdsGoogle OAuth + developer tokenadwords (read)Customer · campaign · ad group · day
- Google Search ConsoleGoogle OAuth (read-only)webmasters.readonlySite · query · page · day
- Meta AdsMeta Login for Businessads_read, business_managementAd account · campaign · ad · day
- LinkedIn (organic + ads)LinkedIn OAuth 2.0r_organization_social, r_ads_reportingPage · post · campaign · day
- HubSpotHubSpot OAuthcrm.objects.* (read)Deal · stage history · owner · day
- ShopifyShopify OAuth (custom app)read_orders, read_productsOrder · product · customer cohort · day
Disconnecting a source revokes the stored token immediately and removes its accounts from the workspace. Historical answers keep their citations but can no longer be refreshed.
Multi-tenant by construction.
Owner
Everything an admin can do, plus billing, plan changes and deleting the workspace.
Admin
Connect and disconnect sources, choose which client accounts are active, invite and remove members, manage workspace settings.
Member
Ask the analyst, build and view dashboards, export charts. Cannot change connections, members or billing.
Invitations can be sent by email or shared as a link, expire automatically, and are rate-limited. Teams on a verified company domain can allow matching colleagues to join without an invite.
Ask in plain language. Get the working shown.
Tool-calling, not guessing
The analyst chooses which connectors to query, runs the reports, and reasons over the returned rows. It never invents a figure it did not retrieve.
Charts inside the answer
When a trend is the answer, you get an interactive chart with axes, gridlines and exact values — plus a KPI summary and a written read of what moved.
Editable, persistent threads
Conversations are saved per workspace. Edit an earlier message to branch the analysis without starting over.
Every claim cited
Each number carries the source system, account and date range, so a colleague can verify it in the original platform.
Two ways in. REST or MCP.
Create a workspace API token in Team → Settings → API access. Tokens are scoped to a single workspace, inherit that workspace’s connected accounts, and are read-only — exactly like the connectors behind them. Every response carries the same citation block the analyst shows in chat.
REST — /v1/ask
Send a natural-language question, get an answer plus a structured citations array. Best for one-off calls, cron jobs and your own agents.
MCP — /mcp
A Model Context Protocol server exposing every connector as a tool. Best for Claude Desktop, Claude Code, or any MCP-aware client.
curl https://api.auli.ai/v1/ask \
-H "Authorization: Bearer $AULI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspace": "acme",
"question": "What changed in qualified pipeline last week, and why?",
"date_range": "last_7_days"
}'curl "https://api.auli.ai/v1/metrics?metric=conversions&granularity=day&range=last_30_days" \
-H "Authorization: Bearer $AULI_API_KEY"{
"mcpServers": {
"auli": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.auli.ai/mcp"],
"env": { "AULI_API_KEY": "sk-auli-..." }
}
}
}MCP tools mirror the analyst’s own toolset: auli.ask, auli.metrics, auli.sources and auli.accounts. Each returns citations alongside the data.
Feed Auli data into your own assistant.
OpenAI — function calling
Register Auli as a tool, then let the model decide when to call it. The tool result already contains the citation chain, so instruct the model to pass citations through verbatim.
from openai import OpenAI
import requests, os
client = OpenAI()
AULI_TOOL = {
"type": "function",
"function": {
"name": "auli_ask",
"description": "Ask Auli about connected growth data (GA4, Google Ads, "
"Meta Ads, LinkedIn, HubSpot, Shopify). Returns a cited answer.",
"parameters": {
"type": "object",
"properties": {
"question": {"type": "string"},
"date_range": {"type": "string", "default": "last_7_days"},
},
"required": ["question"],
},
},
}
def auli_ask(question, date_range="last_7_days"):
r = requests.post(
"https://api.auli.ai/v1/ask",
headers={"Authorization": f"Bearer {os.environ['AULI_API_KEY']}"},
json={"question": question, "date_range": date_range},
timeout=60,
)
r.raise_for_status()
return r.json() # { answer, figures[], citations[] }
resp = client.chat.completions.create(
model="gpt-4.1",
tools=[AULI_TOOL],
messages=[
{"role": "system", "content": "Use auli_ask for any question about "
"marketing, sales or revenue performance. "
"Always repeat the citations you receive."},
{"role": "user", "content": "Why did CAC move last week?"},
],
)import anthropic, requests, os
client = anthropic.Anthropic()
tools = [{
"name": "auli_ask",
"description": "Ask Auli about connected growth data. Returns a cited answer.",
"input_schema": {
"type": "object",
"properties": {
"question": {"type": "string"},
"date_range": {"type": "string"},
},
"required": ["question"],
},
}]
msg = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=tools,
system="Answer only from auli_ask results and keep every citation.",
messages=[{"role": "user",
"content": "Summarise this week for the board in five lines."}],
)claude mcp add auli --transport http https://mcp.auli.ai/mcp \
--header "Authorization: Bearer $AULI_API_KEY"
# then, inside Claude Code:
# > use auli to compare paid search CAC this month vs lastWhichever model you use, the same three rules keep answers honest: never state a figure that did not come back from a tool call, always carry the source, account and date range with the number, and say “the sources disagree” instead of picking one silently.
Prompts that work on day one.
Diagnostics
- Why did blended CAC move last week, and which campaign caused it?
- Is the Meta drop creative fatigue or falling demand?
- Which sources disagree on conversions this month, and by how much?
Pipeline & revenue
- Which lead sources closed deals this quarter, ranked by win rate?
- What slipped in the last seven days and which accounts explain it?
- Trace spend through to closed revenue for paid search, last 90 days.
Reporting
- Draft the weekly marketing update with causes, not charts.
- Give me plan versus actual for the quarter with the response we took.
- Export the top ten landing pages by assisted pipeline as a table.
Accounts & governance
- Which accounts is this workspace allowed to read right now?
- When was Google Ads last synced, and what is still restating?
- Show the audit trail for connection changes this month.
Using auli_ask, write my morning briefing.
Cover: revenue, qualified pipeline, blended CAC and the single largest change.
Rules:
- five lines maximum, plain language, no chart descriptions
- every figure carries source, account and date range
- end with one recommended action and why it is firstKeep the views you return to.
- Each connector has a dedicated dashboard with the metrics that platform reports natively.
- Metric selection and date range are saved per workspace, so the view you left is the view you return to.
- Any chart exports to PDF or CSV, and can be shared as a read-only link with people outside the workspace.
- Briefings can be delivered as a daily or weekly digest to the people who need the summary, not the tool.
How current each source actually is.
- GA4On demand, cached 15 minLast 72h can still move as GA4 finalizes.
- Google AdsOn demand, cached 15 minConversions finalize up to 72h late.
- Meta AdsOn demand, cached 15 minAttribution window restated for ~3 days.
- LinkedInOn demand, cached 30 minOrganic metrics settle within 24h.
- HubSpotOn demand, rate-limited 4 rpsDeal stage history is read live.
- ShopifyOn demand, cached 15 minRefunds restate prior-day revenue.
A number you cannot trace is a number you cannot use.
Auli treats attribution as a first-class output. Every answer records the connectors it called, the accounts it read, the date range applied and the reconciliation rule used when sources disagree. Recommendations additionally state expected impact, a confidence level and the evidence chain behind them, so a reviewer can disagree with the reasoning rather than the tone.
Which system the figure came from, per line.
The exact account, property or page queried.
The date range, plus any comparison period.
Least privilege, end to end.
- OAuth tokens are encrypted at rest and never exposed to the browser.
- Row-level security enforces workspace isolation in the database itself.
- Read-only scopes only — Auli cannot modify anything in a connected platform.
- Sign in with email and password, Google, Apple, or phone one-time code; social identities can be linked to an existing account later.
- Administrative actions are written to an immutable audit log with CSV export.
What each plan includes.
- Free501
- Starter2003
- Growth1,00010
- Scale5,000Unlimited
Each activated client account counts separately toward the connected accounts limit. Additional chat credits can be purchased at any time and are consumed only after the monthly allowance runs out. Full pricing lives on the pricing page.
Answers, briefly.
- Does Auli ever write to my platforms?
- No. Every connector uses read-only scopes. Auli can read reporting data and cannot create, edit, pause or delete anything in Google Ads, Meta, LinkedIn, HubSpot or Shopify.
- Where do the numbers in an answer come from?
- Each figure carries its source system, the specific account or property, and the date range used. When two systems disagree, Auli reports the reconciled definition and the size of the gap rather than silently picking one.
- Can one person work across several clients?
- Yes. Switch workspaces from the top of the sidebar. Data never crosses a workspace boundary — row-level security is enforced in the database, not just in the interface.
- What happens when I hit my message limit?
- The analyst tells you before you run out and again at the limit. You can upgrade the plan or buy additional chat credits; credits are consumed only after the monthly allowance is used.