Red Moon
Back to work

Custom CRM with a virtual setter for a sales team

A CRM with an AI setter that answers every lead within minutes, qualifies them and books the sales call. Plus a proposed voice agent to talk to leads and handle support.

Industry
Sales and lead generation
Engagement
Client project
My role
Product, architecture and development
Stack
Python, FastAPI, LangGraph, PostgreSQL, Next.js, WhatsApp Business API

The problem

The sales team tracked leads across spreadsheets, each rep’s WhatsApp and several calendars. Leads waited hours for a reply, and nobody could see at a glance where each one stood.

What I built

  • A CRM with a staged pipeline. Every lead has a record with its source, conversation history, pending tasks and assigned rep.
  • Automatic lead intake from forms and campaigns, with no manual copying.
  • A virtual setter on WhatsApp. It replies within minutes at any hour, asks the qualification questions, checks the team’s calendar and books the call. If the lead asks for a person or the setter isn’t sure what to say, it hands the conversation to a rep with the full context.
  • Automatic reminders before every appointment to cut no-shows.
  • A pipeline dashboard: new leads, qualified leads, booked calls and completed calls.

What else I proposed

I designed two more modules that the client chose to leave out of this phase:

  • A voice agent for leads. It calls every new lead within the first minute, holds the qualification conversation in a natural Spanish voice and books the appointment in the same CRM calendar.
  • The same agent for support. It answers customer calls using the company’s knowledge base and, when it can’t solve something, opens a ticket in the CRM and alerts the team.

Both run on top of the existing CRM. If they fit your project, I’ll show you how they work on a call.

Result

The team works from one place, every lead gets a reply within minutes even out of hours, and the sales reps spend their time on calls that are already booked.

Tell me about your project

A 30-minute call, no strings attached. If I'm not the right fit, I'll tell you.