We Built a Business Intelligence Agent in a Hackathon (and Somehow Stayed Sane)
Hackathon by WeMakeDevs x Coral. Team mission: turn messy business data into useful answers without making people learn SQL at 2 AM.
We Built a Business Intelligence Agent in a Hackathon (and Somehow Stayed Sane)
Hackathon by WeMakeDevs x Coral. Team mission: turn messy business data into useful answers without making people learn SQL at 2 AM.
There are two kinds of hackathon projects:
-
We built an AI app (translation: a chat box with confidence issues)
-
We built something our users can actually use on Monday morning
We wanted category #2.

Bharat Intelligent Agent Interface
So we built Bharat Intelligence Agent: a conversational BI assistant for Indian SMB workflows that can answer real business questions from connected sources, generate SQL through Coral, and visualize results.
And yes, we made it work with a custom Zoho Books integration through Coral.
The Problem We Actually Cared About

Architecture diagram
Most small teams do not have a data team waiting to write queries. They have Zoho Books data, scattered tools, zero time, and urgent questions.
The pain is not lack of dashboards. The pain is that every new question becomes a mini engineering task.
We wanted to reduce that to: ask in plain language, get answer plus SQL plus chart plus confidence.
What We Built
Our app has three pieces: Frontend (Next.js chat UI), Backend (FastAPI + LangGraph), and Coral as the SQL/data execution layer.
User asks a question. Agent reasons, checks live schemas from Coral, writes SQL, executes it, summarizes, and can return a chart.
Why Coral Was the Hero Layer
Coral gave us unified SQL across sources, source discovery, metadata visibility, and fast iteration for agent-driven SQL workflows.
Instead of hardcoding logic per source, we used Coral as the truth layer and forced the agent to respect live catalog state.
Custom Zoho Books Integration with Coral
We created a custom Coral source spec (zoho_books.yaml) and validated it with Coral tooling.
This let Zoho Books data appear as queryable tables in Coral so natural-language prompts could map to Zoho-backed SQL.
In plain words: Zoho Books felt like normal SQL tables to the agent.
How We Designed the Agent


Agent Flow
We added guardrails: only use tables from live catalog, use schema search/profile tools, retry on SQL errors, and add confidence labels.
So when data is missing, the assistant says so instead of inventing fantasy columns.
UX Decisions
We added query history with SQL visibility, source-health badges, chart download, and markdown-friendly responses.
Transparency helped users trust results and helped judges see this is more than a basic chat demo.
What Was Hard

-
Catalog drift breaks NL-to-SQL quickly.
-
Prompting alone is not enough; tools matter.
-
Error messaging matters for demos and users.
-
Hackathons punish overengineering.
Team Build Story

We split ownership across agent orchestration, frontend UX, and source integration, then all teamed up for debugging.
Our constant check: can a user get value in under 30 seconds? If no, fix flow first.
Sample Flow
Question -> live catalog check -> SQL generation -> Coral execution -> plain-language answer -> chart + SQL + sources.

What We Solved
We made business analytics more accessible: ask naturally, get grounded answers, inspect SQL, and use Zoho Books data in the same flow.
Final Thoughts
Good AI products are mostly systems design, constraints, and usability. Coral reduced source complexity and custom Zoho integration made this useful for real workflows.
Built during WeMakeDevs x Coral Hackathon by our team as Bharat Intelligence Agent.
메타데이터
- post_id
- 9e7bdb0827cf
- slug
- we-built-a-business-intelligence-agent-in-a-hackathon-and-somehow-stayed-sane-9e7bdb0827cf
- url
- https://medium.com/@atheeqsa2647/we-built-a-business-intelligence-agent-in-a-hackathon-and-somehow-stayed-sane-9e7bdb0827cf
- canonical_url
- https://medium.com/@atheeqsa2647/we-built-a-business-intelligence-agent-in-a-hackathon-and-somehow-stayed-sane-9e7bdb0827cf
- author_url
- https://medium.com/@atheeqsa2647
- status
- ok
- fetched_at
- 2026-06-23 03:48:11