Guides

Creating a Vertical

How to configure Binexia for a new business domain.

Binexia uses a template pattern: the same code serves every vertical. Only the semantic model configuration and seed data change. This guide covers what you need to create a new vertical.

The Template Pattern

Same codebase (Laravel + Nuxt + Agno)
  └─ Different configuration per vertical:
       ├─ Semantic model (entities, metrics, dimensions, vocabulary)
       ├─ Seed data (demo records)
       ├─ Dashboard templates (widgets, layouts)
       ├─ Goals (scheduled agent configurations)
       └─ LLM routing defaults (provider/model per agent)

Checklist

1. Domain Tables (tenant_data schema)

Create the business tables for your vertical. Examples:

IntelliTravelManufacturingLegal
customersclientsclients
bookingsorderscases
destinationsproductspractice_areas
supplierssuppliersattorneys
contact_historyquality_reportstime_entries

2. Semantic Entities

Map each domain table to a natural language entity with description and active_filter_sql.

3. Metrics

Define the key performance indicators:

IntelliTravelManufacturingLegal
Total BookingsTotal OrdersTotal Cases
RevenueRevenueBillable Hours
Avg Booking ValueAvg Order ValueAvg Case Value
Cancellation RateDefect RateCase Dismissal Rate
Active CustomersActive ClientsActive Clients
Repeat Booking RateRepeat Order RateClient Retention Rate

4. Dimensions

Time: booking date, travel date → order date, delivery date → case filed date, case closed date Categorical: destination, channel, segment → product line, region, priority → practice area, attorney, court

5. Vocabulary

Domain-specific business terms. This is the most important part — it's where domain expertise gets encoded:

IntelliTravelManufacturingLegal
"high-value customer""enterprise client""major client"
"at-risk customer""churn-risk client""at-risk client"
"seasonal booking""seasonal order""seasonal case volume"
"supplier SLA breach""supplier quality issue""attorney response delay"

6. Goals

Configure scheduled agent goals:

{
  "name": "cancellation_rate_alert",
  "agent_type": "anomaly",
  "agent_schedule": "0 8 * * *",
  "alert_threshold": { "above": 20.0, "window_days": 7 }
}

7. Seed Data

Create a seeder class (like UbiosDemoSeeder) that populates:

  • Users with roles
  • Semantic model tables (entities, metrics, dimensions, vocabulary)
  • Goals
  • Dashboard templates with widgets
  • Sample agent outputs for demo purposes
  • LLM routing defaults

8. Test

  1. Run the seeder
  2. Log in and verify dashboards render correctly
  3. Test natural language queries against the semantic model
  4. Verify vocabulary terms trigger correctly
  5. Check scheduled agent configurations

Example: Manufacturing Vertical

Info

The code is identical to IntelliTravel. Only the configuration below changes.

Entities: client, order, product, supplier, quality_report Key metrics: Total Orders, Revenue, Avg Order Value, Defect Rate, Active Clients, Repeat Order Rate Key dimensions: order_date, delivery_date, product_line, region, supplier Vocabulary: "enterprise client" (order value greater than $50K), "defect" (quality_score below 80), "on-time delivery" (delivery_date on or before promised_date) Goals: Defect Rate Alert (anomaly, daily), Client Churn Risk (behavioral, weekly), Monthly Revenue Forecast (forecast, monthly)