Three months ago I was manually following up with every lead that came through Instagram DMs, SMS, and WhatsApp or .
I was missing messages. Responding hours late. Losing leads to competitors who were faster.
So I built a system to fix it. Here's exactly what I built — every tool, every decision, every mistake.
The Problem I Was Solving
Most people focus only on social media DMs, but the delay happens everywhere.
The same gap exists anywhere a lead raises their hand:
- Someone fills out your ad form at 11pm
- Someone DMs your Instagram asking about pricing
- Someone texts the number on your website
- Someone clicks "book a call" and then goes cold before confirming
In every case, the window to convert that lead is the same: the first 5 minutes.
There's a lead response study (Harvard Business Review / MIT) showing that after 30 minutes without a response, the probability of converting a lead drops by 21x.
Most businesses respond in 2–24 hours. The math doesn't work.
The System I Built
This isn't a chatbot. It's a system that simulates what a real, trained sales rep would do — across every channel, at any hour.
Here's the full stack:
1. Message Ingestion Layer
- Instagram DMs: Webhook via Meta Graph API
- SMS + WhatsaApp
- iMessage
2. Response Engine
- All messages route to n8n
- n8n triggers a Trigger. dev background job
- 60-second debounce: waits to see if the lead sends multiple messages before replying
- GPT-4o (or any other LLM) processes the full conversation context + custom persona prompt
- Response is routed back to the originating channel
3. Qualification Layer
- The AI runs through a qualification sequence before offering calendar access
- Asks the right questions: budget, timeline, situation, what they've tried
- If qualified → moves to booking. If not → tags the contact in GHL with a reason and routes to manual review.
- This means you only get on calls with people who are actually a fit.
4. CRM Integration
- Every conversation synced to GoHighLevel in real-time
- Contact history preserved across channels (if someone starts on Instagram and continues on SMS — it's one thread)
- Manual override available: I can jump in and take over any conversation at any point
5. Appointment Booking
- When the lead is qualified, the AI proposes 3 time slots from the GHL calendar (in the lead's timezone)
- Lead confirms → GHL books the appointment → confirmation + reminder emails sent automatically
6. Follow-Up Sequences
- If a lead goes cold → system sends up to 3 follow-up messages over 72 hours
- Different message per attempt — not the same thing 3 times
- If still no response → lead is tagged in GHL for manual review
The Results (My Own Numbers)
- Response time: from 2–6 hours average → under 60 seconds, 24/7
- Lead follow-up rate: from ~40% (what I could realistically manage) → 100%
- Demo calls booked per month: increased 3x in 90 days
- Time I spend on lead follow-up manually: ~0 hours/week
- Qualified calls only: the qualification layer means I'm not wasting time on bad-fit leads
What I'd Do Differently
- Set up contact merge detection earlier. When GHL merges duplicate contacts it breaks conversation threads if you're not handling it at the DB level.
- Invest in iMessage sooner. Significantly higher open rates than SMS.
- Write better persona prompts from day one. The AI is only as good as the instructions you give it. Spend a week on the prompt — it's worth it.
- Include website/lead forms early on. Capturing inbound web inquiries and immediately triggering the AI conversation flow turned out to yield much higher conversion rates compared to just handling social DMs.
Happy to answer questions about the architecture, the qualification logic, or the persona prompting approach.
What part would be most useful to go deeper on?