botserver/templates/bi.gbai/README.md
Rodrigo Rodriguez (Pragmatismo) 7a5e369402 Add comprehensive documentation for GB templates and configuration
modules

Add detailed README documentation for 15+ bot templates including:
- Platform analytics, BI reporting, and web crawler templates
- CRM, contacts, and marketing automation templates
- Legal document processing and office productivity templates
- LLM tools, LLM server, and API client integration templates
- Reminder management and meta-template for creating new templates

Add new Rust configuration modules:
- BM25 config for Tantivy-based sparse
2025-12-03 16:05:50 -03:00

6 KiB

Business Intelligence Template (bi.gbai)

A General Bots template for automated business intelligence reporting and data visualization.

Overview

The BI template provides scheduled analytics reporting with automatic chart generation and delivery. It's designed for organizations that need automated consumption reports, category analysis, and customer-specific insights.

Features

  • Scheduled Reporting - Automated report generation on configurable schedules
  • Time-Series Charts - Monthly consumption trends visualization
  • Category Analysis - Product category breakdown with donut charts
  • Per-Customer Reports - Individual customer consumption analysis
  • Multi-Channel Delivery - Send reports via chat, email, or messaging platforms

Package Structure

bi.gbai/
├── README.md
└── bi.gbai/
    ├── bi-admin.bas      # Administrative scheduled reports
    └── bi-user.bas       # Per-customer report generation

Scripts

File Description
bi-admin.bas Scheduled job for generating platform-wide analytics reports
bi-user.bas Loop through customers to generate individual consumption reports

Configuration

Configure the template in your bot's config.csv:

Parameter Description Example
Schedule Cron expression for report timing 1 * * * * *
Data Source Table/view for billing data Orders

Usage

Administrative Reports

The bi-admin.bas script runs on a schedule and generates:

  1. Monthly Consumption Chart - Time-series showing spending trends
  2. Product Category Breakdown - Donut chart of spending by category
SET SCHEDULE "1 * * * * *"

billing = FIND "Orders"

' Monthly consumption
data = SELECT SUM(UnitPrice * Quantity) as Value, 
       MONTH(OrderDate)+'/'+YEAR(OrderDate) 
       FROM billing 
       GROUP BY MONTH(OrderDate), YEAR(OrderDate)

img = CHART "timeseries", data
SEND FILE img, "Monthly Consumption"

Per-Customer Reports

The bi-user.bas script iterates through customers to generate personalized reports:

customers = FIND "Customers"

FOR EACH c IN customers
    data = SELECT SUM(UnitPrice * Quantity) AS Value, 
           MONTH(OrderDate)+'/'+YEAR(OrderDate) 
           FROM billing
           JOIN Customers ON billing.CustomerID = Customers.CustomerID
           GROUP BY MONTH(OrderDate), YEAR(OrderDate)
           WHERE Customers.CustomerID = c.CustomerID

    img = CHART "timeseries", data
    SEND FILE img, "Monthly Consumption"
END FOR

Chart Types

The template supports various chart types:

Type Use Case
timeseries Trends over time (monthly, weekly, daily)
donut Category distribution
bar Comparative analysis
pie Percentage breakdowns

Data Requirements

Orders Table Schema

The template expects a billing/orders data source with:

  • OrderDate - Date of the transaction
  • UnitPrice - Price per unit
  • Quantity - Number of units
  • ProductID - Foreign key to products
  • CustomerID - Foreign key to customers

Products Table Schema

  • ProductID - Primary key
  • CategoryID - Foreign key to categories
  • ProductName - Product name

Categories Table Schema

  • CategoryID - Primary key
  • CategoryName - Category display name

Example Output

Monthly Consumption Report

📊 Monthly Consumption Report
-----------------------------
Generated: 2024-01-15 08:00

[Time Series Chart Image]

Total Revenue: $125,430
Top Month: December ($18,500)
Growth Rate: +12% MoM

Category Breakdown

📊 Product Category Distribution
--------------------------------

[Donut Chart Image]

Electronics: 35%
Clothing: 28%
Home & Garden: 22%
Other: 15%

Customization

Adding New Reports

Create additional .bas files in the bi.gbai folder:

' sales-by-region.bas
SET SCHEDULE "0 9 * * 1"  ' Every Monday at 9 AM

data = SELECT Region, SUM(Amount) as Total 
       FROM Sales 
       GROUP BY Region

img = CHART "bar", data
SEND FILE img, "Weekly Regional Sales"

Customizing Delivery

Send reports to specific users or channels:

' Send to specific user
SEND FILE img TO "manager@company.com", "Weekly Report"

' Send to WhatsApp
SEND FILE img TO "+1234567890", "Your monthly report"

' Send to team channel
TALK TO "sales-team", img

Scheduling Options

Schedule Cron Expression Description
Every minute 1 * * * * * Testing/real-time
Hourly 0 0 * * * * Frequent updates
Daily 8 AM 0 0 8 * * * Morning reports
Weekly Monday 0 0 9 * * 1 Weekly summaries
Monthly 1st 0 0 8 1 * * Monthly reports

Integration

With CRM

' Combine with CRM data
opportunities = FIND "opportunities.csv"
revenue = SELECT stage, SUM(amount) FROM opportunities GROUP BY stage

img = CHART "funnel", revenue
SEND FILE img, "Sales Pipeline"

With ERP

' Inventory analysis
inventory = FIND "inventory.csv"
low_stock = SELECT product, quantity FROM inventory WHERE quantity < reorder_level

img = CHART "bar", low_stock
SEND FILE img, "Low Stock Alert"

Best Practices

  1. Schedule appropriately - Don't run heavy reports too frequently
  2. Filter data - Use date ranges to limit data volume
  3. Cache results - Store computed metrics for faster access
  4. Log activities - Track report generation for auditing
  5. Handle errors - Wrap queries in error handling

Troubleshooting

Issue Solution
Empty charts Verify data source has records
Schedule not running Check cron syntax
Slow reports Add date filters, optimize queries
Missing data Verify JOIN conditions
  • analytics.gbai - Platform analytics
  • talk-to-data.gbai - Natural language data queries
  • crm.gbai - CRM with built-in reporting

License

AGPL-3.0 - Part of General Bots Open Source Platform.


Pragmatismo - General Bots