Automate all your reports. Never manually copy-paste again.
✅ USE this skill when:
❌ DON'T use this skill when:
Manual reporting pain:
Our cost: $20-60/month Payback: 2 days
DatabaseStatusNotesPostgreSQL✅Native connectionMySQL / MariaDB✅NativeSQLite✅NativeMongoDB✅Via connection stringBigQuery✅Google service accountSnowflake✅Key pair authRedshift✅PostgreSQL compatibleMicrosoft SQL Server✅Oracle✅ClickHouse✅Supabase✅Postgres wrapper
ServiceWhat you can pullStatusGoogle AnalyticsTraffic, conversions✅Google Search ConsoleSEO data✅HubSpotCRM, deals, contacts✅SalesforceOpportunities, forecasts✅StripePayments, subscriptions✅ShopifyOrders, customers, products✅WooCommerceSales, inventory✅Amazon SP-APISales, inventory, ads✅Meta AdsCampaign performance✅Google AdsCampaign metrics✅LinkedIn AdsCampaign stats✅TikTok AdsPerformance data✅MailchimpCampaigns, subscribers✅SendGridEmail stats✅IntercomConversations, users✅ZendeskTickets, satisfaction✅AirtableTable data✅NotionDatabase exports✅Google SheetsDirect read/write✅Microsoft Excel (Office 365)Direct access✅Generic REST APIAny JSON/CSV✅GraphQLAny schema✅
SourceFormatStatusLocal filesCSV, Excel, JSON, XML✅SFTP / FTPPull remote files✅Google DriveSheets, Docs, CSV✅DropboxFiles, folders✅OneDriveOffice files✅S3 bucketsAny object storage✅Azure BlobBlob storage✅GCS bucketsCloud storage✅
Create sales-report.yaml:
yaml
report:
name: "Daily Sales Dashboard"
schedule: "0 7 * * *" # 7 AM daily
data_sources:
- name: "Shopify Orders"
type: "shopify"
config:
api_key: "..."
store: "your-store.myshopify.com"
query: |
date >= yesterday()
status: "fulfilled"
- name: "Stripe Payments"
type: "stripe"
config:
api_key: "..."
query: |
created >= 24h ago
status: "succeeded"
- name: "Google Analytics"
type: "google_analytics"
config:
view_id: "123456"
credentials: "ga-credentials.json"
metrics:
- sessions
- revenue
- conversion_rate
transformations:
- join:
on: "date, product_sku"
sources: ["shopify", "stripe", "ga"]
output: "combined_metrics"
- calculate:
formulas:
gross_revenue: "stripe.amount + shopify.total"
avg_order_value: "gross_revenue / shopify.order_count"
margin: "gross_revenue - shopify.cost_of_goods"
outputs:
- format: "pdf"
template: "templates/daily-sales.html"
email:
to: ["exec@company.com", "sales@company.com"]
subject: "Daily Sales Report {{date}}"
body: "Attached is yesterday's sales performance..."
- format: "excel"
file: "reports/daily-sales-{{date}}.xlsx"
sheets:
- "Summary" (aggregated metrics)
- "Orders" (raw data)
- "Trends" (7-day chart)
- format: "slack"
channel: "#sales-reports"
blocks:
- header: "📊 Daily Sales {{date}}"
- metric: "Revenue: ${{gross_revenue}}"
- metric: "Orders: {{order_count}}"
- metric: "AOV: ${{avg_order_value}}"
- chart: "7-day revenue trend"
alerts:
- if: "gross_revenue < 10000"
action: "send_alert"
to: ["vpsales@company.com"]
message: "🚨 Sales below threshold: ${{gross_revenue}}"
- if: "order_count < 50"
action: "send_alert"
to: ["ops@company.com"]
message: "⚠️ Low order volume: {{order_count}}"
bash
# Test with sample data
clawhub workflow test sales-report --date 2026-03-16
# Run now
clawhub workflow run sales-report
# Schedule it
clawhub workflow schedule sales-report
# Check last run
clawhub workflow runs sales-report --limit 1
Check email, Slack channel, or reports/ folder for generated files.
For C-suite / board meetings:
yaml
exec_dashboard:
frequency: "weekly (Mon 8 AM)"
data: ["revenue", "growth_rate", "cash_balance", "headcount", "churn"]
format: ["pdf", "powerpoint"]
style: "corporate_template.pptx"
distribution: ["board@company.com", "investors@company.com"]
For daily team syncs:
yaml
ops_report:
frequency: "daily (7 AM)"
data: ["orders", "fulfillment_rate", "support_tickets", "inventory"]
format: ["slack", "email", "google_sheets"]
distribution: ["team@company.com", "#ops"]
Campaign tracking:
yaml
marketing_report:
frequency: "weekly (Tue 9 AM)"
data_sources:
- google_ads
- meta_ads
- linkedin_ads
- google_analytics
metrics:
- spend, impressions, clicks, conversions, cpc, cpa, roas
visualizations:
- "Spend vs. conversions (campaign breakdown)"
- "ROAS by channel"
- "Conversion funnel"
format: ["google_slides", "email"]
Monthly close:
yaml
financials:
frequency: "monthly (3rd business day)"
data_sources:
- quickbooks
- stripe
- bank_accounts
outputs:
- income_statement
- balance_sheet
- cash_flow
- kpi_dashboard
format: "excel (book with formulas)"
security: "encrypt with password"
yaml
date_range:
relative: "last_7_days" # last_week, month_to_date, quarter_to_date
or:
start: "2025-01-01"
end: "2025-03-31"
auto_adjust:
weekdays_only: true # Skip weekends for B2B
business_days: true
White-label for agencies:
yaml
client_report:
client: "Acme Corp"
branding:
logo: "clients/acme/logo.png"
colors: ["#003366", "#FF6600"]
footer: "Confidential - Acme Corp"
data_sources:
- type: "google_analytics"
view: "Acme Website"
- type: "shopify"
store: "acme.myshopify.com"
delivery:
email:
to: "marketing@acme.com"
from: "reports@youragency.com"
cc: "account-manager@youragency.com"
Live metrics (refreshes hourly):
yaml
live_dashboard:
refresh_interval: "1h"
visualizations:
- metric_cards: ["revenue_today", "orders_today", "visitors_now"]
- line_chart: "revenue_last_24h (15-min intervals)"
- bar_chart: "top_products_today"
publish_to:
- google_sheets: "Live Dashboard"
- public_url: "https://yourdomain.com/dashboard/abc123"
yaml
anomaly_detection:
metrics: ["daily_revenue", "new_users", "conversion_rate"]
algorithm: "statistical (3-sigma)" # or "ML", "moving_average"
lookback_period: "30 days"
sensitivity: "medium"
when_anomaly:
- slack_alert: "#data-alerts"
- email: "data-team@company.com"
- create_ticket: "jira" # Auto-create investigation task
include:
- current_value
- expected_range
- historical_context
- suggested_investigation_steps
templates/monthly-revenue.yaml:
templates/weekly-marketing.yaml:
templates/daily-ops.yaml:
Export to any dashboard tool:
yaml
export:
google_data_studio:
dataset: "company_metrics"
refresh: "every 6 hours"
tableau:
extract: "hyper file"
publish_to: "tableau_server/site"
ChannelUse CaseSetupEmailExec reportsSMTP or GmailSlackTeam alertsWebhookMicrosoft TeamsEnterpriseIncoming webhookDiscordCommunityWebhookTelegramMobile alertsBot tokenSMS / TwilioUrgent alertsAccount SIDPagerDutyCritical issuesREST APIWebhookCustom systemsPOST JSON
Free (lead gen):
Pro ($29/mo):
Business ($99/mo):
Enterprise ($499+/mo):
CompetitorPriceLimitsOur AdvantageGoogle Data StudioFreeNone, but manualAutomationTableau$70+/user/moComplexSimple, cheaperPower BI$10+/user/moManual refreshFully automatedStitch + Looker$500+/moPipe + viz separateAll-in-oneCustom dev agency$10k+ projectOne-offRecurring, self-serve
Data reporting, automated. Spend time on insights, not formatting. 📈