About the Project Llamando Manager is an AI-powered, real-time CRM and workforce management dashboard designed specifically for outbound BPO (Business Process Outsourcing) call centers. It enables supervisors to manage daily lead imports and monitor monthly targets in real-time, while equipping sales agents with an integrated AI Sales Coach powered by Google Gemini. The coach analyzes call notes, suggests objection-handling scripts, and guides agents live during connected calls.
Inspiration Outbound BPO operations are notorious for high agent turnover, slow onboarding times, and low conversion rates. A typical supervisor manages up to 15–20 agents, making it impossible to listen to and coach every live call. Agents often get stuck dealing with complex customer objections, leading to missed opportunities.
I wanted to create a tool that acts as a copilot for every agent and a live cockpit for every supervisor. By placing real-time AI suggestions directly next to the active call controls, we democratize elite sales coaching, enabling new agents to perform like seasoned professionals from day one.
How I Built It I built Llamando Manager using a modern, serverless, and highly scalable stack:
Frontend & Backend API: Next.js (App Router) combined with TypeScript and Tailwind CSS for a responsive, glassmorphic dark-theme UI. AI Integration: Vercel AI SDK coupled with the Amazon Bedrock and Google Gemini API as fallback alternative to generate real-time objection handlers and conversational prompts. Database: Amazon Aurora DSQL (Distributed SQL), providing a serverless, multi-region PostgreSQL-compatible database that scales database connections dynamically. State & Communication: A polling dashboard (refreshing every 5 seconds) to ensure supervisors receive instant notifications and live target updates as soon as calls are updated.
My biggest technical hurdle was adapting a traditional PostgreSQL schema to the unique constraints of Amazon Aurora DSQL:
Distributed Schema Limitations: DSQL is a serverless, highly distributed database. Because of this, it does not support blocking operations like synchronous index creation, expression-based indexes (lower(email)), or foreign key constraints. We had to restructure our database design to handle referential integrity in the application layer and configure asynchronous index creation: sql
CREATE UNIQUE INDEX ASYNC idx_app_users_email ON app_users (email); Transaction Blocks: DSQL does not support multiple DDL statements inside a single transaction. I had to write a custom SQL runner in Node.js that parsed, split, and executed SQL statements sequentially. No Serial Auto-Increments: To maintain multi-region scalability without centralization bottlenecks, DSQL does not support SERIAL columns. We successfully migrated our database primary keys to use UUIDs generated via gen_random_uuid(). Serverless IAM Auth: Setting up the AWS IAM Role-based OIDC federation with Vercel was challenging. We had to migrate our token signing from standard RDS (@aws-sdk/rds-signer) to DSQL (@aws-sdk/dsql-signer) to sign auth tokens specifically for the dsql service.
What I Learned
Serverless Distributed Databases: We gained deep insights into how distributed SQL databases like Aurora DSQL manage transactions, indexes, and constraints, and how to write database-agnostic application code. Context-Aware AI Assistants: We learned how to build context-aware AI interfaces that assist users synchronously, feeding live database state (such as call logs and customer histories) directly into the LLM system prompt. Reactive UI Design: I mastered the implementation of low-latency polling mechanisms and toast notifications in Next.js, creating a zero-lag experience for call center supervisors.
Built With
- aurora
- bedrock
- css
- dsql
- next.js
- tailwind
- typescript

Log in or sign up for Devpost to join the conversation.