B2B WhatsApp sales agent
Handles salons on WhatsApp, qualifies them in conversation and hands the ready lead to the sales team.
- 41.33x
- ROAS
- S/34,571
- sales
- 262
- conversations
- Built by me
- In-house · AI Automation & Digital Marketing
- In production

The problem
Every WhatsApp lead consumed human time before anyone knew whether it deserved a call.
My role
I built, in n8n, the agent that answers with real technical material, qualifies in conversation, stores state and hands the record to the advisor. When a person steps in, it goes quiet.
The close is done by Davines Perú’s commercial team. My system qualifies, structures and hands off the lead.
How it works
Meta Ads
Team campaigns, with my support
WhatsApp
The conversation comes in
AI conversation
Agent with RAG and memory
Resources
PDFs, technical material and videos
Qualification
Captures and saves the profile
CRM + state
Record ready to call
Advisor
Receives the lead and closes the sale
What I builtAnother team layer
What the person receives
Behind the scenes


Structured state and CRM
sesiones_bot
- chat_idtext
- fase_actualtext
- estado_conversacionvarchar
- tipotext
- salontext
- ciudadtext
- distritotext
- estilistastext
- marcatext
- drivertext
- lineastext
- lineas_pendientestext
- multimedia_enviadotext
- reminder_enviadobool
- bot_pausadobool
- asesor_solicitadobool
- updated_attimestamptz
Current CRM state519 records
- Initial interest294
- Complete lead133
- Ready to contact58
- Partial lead32
- Qualified lead2
CRM states, not a sequential funnel.
CRM sheet · columns
- ChatID
- Timestamp
- Usuario
- TipoPerfil
- EstadoLead
- Nombre Salon
- Distrito
- Ciudad
- Telefono
- Correo
- Lineas
- Prioridad
- mensajeAsesor
Lead contact data is not published.
Ready to contact — Davines B2B
- TypeSalon
- Stylists3
- Current brandAlfaparf
- Driverdifferentiation and profitability
- Lines of interestNaturaltech, Essential, OI
- ChannelCall
- Score85% → MEDIA
Evolution: from open conversation to buttons


Team resultMay 2026 · internal Davines Perú report
- 41.33xROAS
- S/34,571sales
- 262conversations
- 3 → 10account openings, April → May
- 28B2B leads
- S/836.38Meta spend
Result of the full commercial system: ads, creative, agent and sales. My contribution is detailed below.
Team resultMay–July 2026 · verified in the same report
- 878conversations
- 18account openings
- S/57,921sales
- S/2,348.65spend
- ~24.66xcombined ROAS
My contribution to the system
- Meta Ads
- I supported campaign execution, monitoring and optimization together with my manager.
- Creative
- I took part in creating and editing campaign assets, including video and AI-assisted content.
- B2B conversational system
- I designed and implemented the conversational system.
- Qualification + state + CRM + handoff
- I designed and implemented these automation layers.
- QA and iteration
- I tested conversations, found failures, fixed logic and iterated on the system.
- Commercial close
- The close was done by Davines Perú’s commercial team; my system qualified, structured and handed off the lead.
What I changed
The first version was open conversation and some prospects got lost explaining what they wanted. Phase 2 added buttons on top of the same agent.
Stack
- n8n
- WhatsApp Business
- YCloud
- OpenAI
- Supabase
- Vector Store
- PostgreSQL
- Google Drive
- Google Sheets
Technical detail and decisions
How the knowledge gets in
The brand's technical and commercial PDFs are downloaded, extracted, split into chunks, turned into *embeddings* and stored in a vector store that the agent queries when it answers.
What each conversation stores
| Field | What it is for |
|---|---|
fase_actual · estado_conversacion | Where the conversation is in the journey |
tipo · salon · ciudad · distrito · estilistas | Business profile |
lineas · lineas_pendientes · driver | Commercial interest |
multimedia_enviado · reminder_enviado | What was already sent, to avoid repeating |
bot_pausado · asesor_solicitado | Handoff to a person |



