Give an agent instructions once. Basedash runs them on a schedule or the moment a query finds new rows, acts in your other tools, and sends the result to Slack and email.
14-day trial. No credit card required.
Instructions
For each failed charge over $5,000, find the company in HubSpot, check its open deals and recent Zendesk tickets, add a note to the company record, and send a short summary to #finance-alerts.
Trigger
Runs every Monday at 9:00 AM· your local time
StripeChecked every 15 minutes
select customer_id, amount, failure_codefrom stripe.chargewhere status = 'failed' and amount > 500000 and created > {{ last_run_at }}
Each new row starts a run with that row as context.
Runs only when someone starts it, from Basedash or the API.
POST /api/public/organizations/:orgId/automations/:id/runs
Deliver to
#finance-alerts
Connector tools
Search companiesAlways allow
Create noteAlways allow
Powering analytics for 5000+ teams worldwide
Triggers
Pick daily, weekdays, weekly, monthly, or quarterly at the hour you want, shown in your own time zone. Or write a SQL query: Basedash checks it every 15 minutes and starts a run for each new row, with that row as the agent's context.
Next scheduled runsYour local time
- Daily revenue snapshotTomorrow, 8:00 AM
- Weekly sales pipelineMon, 9:00 AM
- Monthly investor updateNov 1, 10:00 AM
- Quarterly business reviewJan 1, 9:00 AM
Notable ICP signups · When data changes
Checked 4 minutes ago · 2 new rows
- Northwind Labs · 240 seatsRun started
- Brightline Health · 85 seatsRun started
Agent workflows
Every run is a full agent, not a canned report. It queries any source you've connected, then uses the MCP connector tools you've set to Always allow, like adding a HubSpot note or filing a Linear issue, and writes up what it found and did.
Enterprise payment failures
Run started by a new row · Today, 2:15 PM
New row
- customer_id
- cus_Harborline
- amount
- 840000
- failure_code
- card_declined
Queried Stripe3 charges in 90 days, 1 failed
HubSpot · Search companiesHarborline Freight, owner Priya Shah
Queried Zendesk1 open ticket: billing contact change
HubSpot · Create noteAdded to Harborline Freight
Harborline Freight: $8,400 renewal charge declined
The card on file was declined for the annual renewal. Harborline has an open $24K expansion deal in Proposal, and last week asked support to change its billing contact, so the card is likely out of date. I added a note to the company in HubSpot for Priya.
Sent to #finance-alertsSaved in Basedash
API
Wire automations into deploys, cron jobs, or your own product. One POST to the REST API starts a scheduled or manual automation, and the finished run comes back as markdown with its charts.
Start a run202 Accepted
API=https://charts.basedash.com/api/publiccurl -X POST \ -H "Authorization: Bearer $BASEDASH_API_KEY" \ "$API/organizations/$ORG_ID/automations/$ID/runs"
GET …/runs/chat_7Qm2xV200 OK
{ "data": { "id": "chat_7Qm2xV", "status": "FINISHED", "isManualRun": true, "finalMessageContent": "## Pipeline grew 9% to $1.42M…", "charts": [{ "imageUrl": "https://…/png" }]} }
Templates
The template library covers the reports teams ask for most, from a daily executive briefing to failed payment alerts. Each one comes with a tested prompt, a suggested trigger, and an example of the output.
Templates
32 templates
- Daily executive briefingA morning briefing of yesterday's signups, revenue, errors, and notable signals across every connected tool.Daily
- Monthly investor updateComposes a complete investor update each month: KPIs, narrative highlights, asks, and team updates, ready to send.Monthly
- Notable ICP signupsScores every signup against your ICP criteria and pings sales the moment a match comes in.When data changes
- Weekly changelog from GitHubReads merged PRs each week and writes a user-facing changelog with major features grouped and small fixes listed.Weekly
- Weekly customer health reportWeekly account-by-account health scoring with churn risk, expansion signals, and at-risk renewals.Weekly
- Weekly marketing reportPulls traffic, signups, ad spend, attribution, and campaign data into a single weekly marketing recap.Weekly
- Closed-won deal alertsReal-time celebration for every closed deal, with context on size, rep, and what worked.When data changes
- Notable ICP signupsScores every signup against your ICP criteria and pings sales the moment a match comes in.When data changes
- Sales pipeline health checkMonthly pipeline diagnostic: coverage, conversion, cycle time, win rate, and deal aging — flagged before they bite.Monthly
- Weekly sales pipeline reportA weekly pipeline recap with stage movement, conversion rates, top deals, and at-risk accounts.Weekly
- Daily revenue snapshotA one-paragraph morning revenue snapshot — yesterday's new MRR, expansions, churn, and notable events.Daily
- Failed payments alertReal-time alert when a paying customer's card fails, with ARR, reason, and the recommended next step.When data changes
- Monthly burn and runwayMonthly burn (gross and net), cash balance, runway in months, and a forward forecast — automated.Monthly
- Weekly MRR reportNew MRR, expansion, contraction, churn, and net new MRR — broken down by segment, weekly.Weekly
- Weekly revenue breakdownRevenue split by product, segment, geography, and channel — with the biggest movers each week.Weekly
- Activation funnel reportStep-by-step activation funnel with drop-off, time between steps, and which channels activate fastest.Weekly
- Feature adoption reportWeekly adoption of every new feature, with power users named and underperforming features flagged.Weekly
- Weekly cohort analysisTracks each signup cohort's retention curve and highlights when product changes shift it.Weekly
- Weekly user growth reportNew signups, activations, WAU, and the channels behind each — pulled into one weekly growth recap.Weekly
- Daily error monitoringWhat broke yesterday, ranked by user impact and severity. Sentry + Datadog + your logs in one daily digest.Daily
- PR cycle time reportPR cycle time, review latency, and stale PRs across every team — with named bottlenecks.Weekly
- Weekly changelog from GitHubReads merged PRs each week and writes a user-facing changelog with major features grouped and small fixes listed.Weekly
- Weekly deployment summaryDeploy frequency, lead time, change-failure rate, and rollback events from the past week — DORA-style.Weekly
How automations run
Every automation follows the same rules, whoever built it and whatever starts it.
Three triggers
A schedule, a data change, or a manual run.
Five schedules
Daily, weekdays, weekly, monthly, or quarterly.
15-minute checks
Data-change queries run every 15 minutes.
One run per row
Up to five new rows per check, each with its own run.
Every run saved
Review any run and keep the conversation going.
Slack and email
One channel plus any email recipients.
Creator's access
Runs with the creator's permissions and RLS groups.
Built from chat
Describe it in chat and the agent sets it up.
“For a security-conscious company like ours, Basedash instantly clicked. Reports that took weeks are ready in hours.”
Claudio Godoy
AI Agents Lead · Taxfyle
Read case study →
“Basedash is the kind of tool that disappears into your workflow. You stop thinking about how to get data and just start using it.”
Rahul Behal
Co-founder · Gumloop
Read case study →
What starts a run, what the agent can do, and where the results go.
What can start an automation?
Each automation has one of three triggers. A schedule runs it at a set hour on a daily, weekday, weekly, monthly, or quarterly cadence. A data-change trigger runs it when a SQL query you write returns new rows. A manual trigger runs it only when someone starts it, from Basedash or through the REST API. Scheduled automations can also be started by hand at any time, which is the easiest way to test a change to the instructions.
How do schedules and time zones work?
You pick a frequency and an hour. Weekly automations also take a day of the week and monthly ones a day of the month, while quarterly runs land on January 1, April 1, July 1, and October 1. Basedash stores the hour in UTC and shows it in your local time, so a 9 AM report stays at 9 AM for you. If the previous run is still generating when the next one is due, Basedash skips the new one instead of stacking runs.
What happens when a data-change query returns rows?
Basedash runs your query every 15 minutes, replacing {{ last_run_at }} with the time of the last run so you only see rows that are new since then. Each row that comes back starts its own run, with that row handed to the agent as context. A check starts at most five runs and skips any extra rows, so filter the query down to the rows that deserve attention. The query runs with the creator's data access and row-level security groups, and it can reference your models.
What can an automation do besides send a report?
Each run is a full agent session with the instructions you wrote. It can query any connected source, build charts, and use the tools from MCP connectors that are set to Always allow, so it can add a note in HubSpot, file an issue in Linear, or send an email through Resend as part of the run. Tools that need approval stay out of unattended runs. Every run is saved in Basedash as a chat, so you can see each step it took and ask follow-up questions.
Where do automation results go?
Every run is saved in the automation's history in Basedash. You can also send each result to one Slack channel, where its charts post as images, and to as many email recipients as you need. For a private Slack channel, invite the app with /invite @Basedash first. If you embed Basedash in your own product, the React SDK's BasedashAutomations component shows your automations and their runs there too.
Whose permissions does an automation run with?
An automation runs as the member who created it, with that member's data source access and row-level security groups, so a run can't read anything its creator can't. Only the creator can edit its instructions, which keeps someone else from changing what runs under their access. If the creator is deactivated, their data-change automations stop running. Customer data is never used to train AI models.
Can I trigger an automation from my own code?
Yes. With an admin API key, the REST API can list, create, update, and archive automations, list their runs, and start a new run of a scheduled or manual automation with a single POST. Runs generate asynchronously: the POST returns the run right away, and you fetch it again to get its final answer as markdown along with its charts. Data-change automations can't be started this way, because their query decides when they run.
How do automation templates work?
Each template in the library is a starting point for a common report, like a weekly MRR report or a closed-won deal alert. It includes the prompt, the trigger and cadence it's designed for, where it usually goes, and an example of the output. Copy the prompt into a new automation and adjust it to your tables and metrics. You can also skip templates entirely: describe what you want in chat and the agent sets up the automation for you.
Start from a template or describe what you need in chat, and read your first run today.