Sales

Automatic Lead Scoring: Every DM Auto-Tagged Hot, Warm, Cold

By Omar Eltak · October 12, 2026 · 12 min read

I built OT1-Pro because I was losing sales I had already earned. DMs poured in from Messenger, Instagram, WhatsApp, and TikTok, and my team worked hard, but we worked the inbox in the wrong order: newest-first. The person who wrote "بكام الشحن للقاهرة؟ عايز 50 قطعة للشركة" at 9 a.m. waited until evening while we chatted with three people who wrote "hi" and disappeared. By the time we got back to the buyer, he had bought elsewhere. The problem was not effort. It was prioritization.

That admission led to automatic lead scoring inside OT1-Pro. Every inbound DM now gets auto-tagged hot, warm, or cold without anyone lifting a finger. A job called ScoreLeadJob fires on every inbound message, reads the conversation, and writes a 0-100 score onto the contact. My agents see hot first. My bulk follow-ups target by score. And the score updates on every single message, so a contact who starts cold can climb to hot when intent changes. This post covers how it works, the 7 signals it watches, the thresholds I chose, the polite-browser failure mode, and the dollar math that made this my highest-ROI feature.

I Used to Work My Inbox Newest-First, and It Cost Me Buyers

For two years I ran sales the way most teams do: one queue sorted by recency. A new message arrived, it went to the top, someone answered it. Our average first-response time looked good, under five minutes. In reality we were fast on the wrong conversations and slow on the ones that mattered. When I pulled 30 days of chats and matched them against closed orders, buyers who used explicit purchase language waited an average of 6 hours for a real answer while casual browsers got answered in 4 minutes. We had optimized for speed and destroyed sequencing.

The worst case still bothers me. A distributor asked about bulk pricing for 200 units on a Tuesday morning. His message arrived during a rush of 40+ Instagram story replies from a giveaway post and sank. Nobody opened it until Thursday. By then he had signed with a competitor. That single lost deal was worth more than a month of ad spend. No human can read 400 inquiries a month and instantly know which 30 hold money. That is a machine job. I wrote about the broader trust journey in my Meta app verification founder guide, but scoring is the piece that converts attention you already have.

What Automatic Lead Scoring Actually Does Inside OT1-Pro

Automatic lead scoring in OT1-Pro works like this. Every time an inbound message lands on any connected channel, the system dispatches ScoreLeadJob. That job loads the full conversation history, the channel, the timestamps, and any prior score, then writes back three things: a 0-100 score, a hot/warm/cold label, and a short reason string the agent can read. No clicks, no forms. Tagging happens in the background within seconds.

Three design choices matter here. First, scoring runs on every inbound message, not just the first one, because intent changes mid-conversation. Second, the score lives on the conversation and the contact record, so every list can sort or filter by it. Third, the reason string is human-readable. An agent opening a chat sees "hot 84: asked price twice + replied in 2 min + repeat contact" instead of a black-box number. That transparency is why my team trusted it. The score also feeds directly into follow-up targeting, covered below and in our lead follow-up software breakdown.

The 0-100 Scale: Why 71+ Means Hot, 31-70 Warm, 1-30 Cold

I picked a 0-100 scale because everyone understands it and it leaves room for movement without fake precision. A 0 means no buying signal at all: a wrong number, a spam ping, a lone emoji. A 100 means explicit intent with urgency, budget, and a request for next steps. Most real conversations land between 15 and 90. The thresholds came from three months of calibration against closed deals:

  1. 71+ is hot. Purchase-intent language, specific fulfillment questions, or repeat visits. Roughly 8 out of 10 of my closed deals touched 71+ at least once. Hot means answer now, within minutes, with a human.
  2. 31-70 is warm. Real interest, incomplete intent. They asked real questions but have not talked money, quantity, or timing. Warm means answer today plus a scheduled follow-up.
  3. 1-30 is cold. Low-effort, vague, or one-and-done. Cold means let the AI handle it politely and do not burn agent hours unless it warms up.

Why 71 and not 70 or 75? Because round numbers lie. I tested all three cutoffs against 1,900 scored conversations with known outcomes. At 70, too many polite browsers leaked into hot and agents stopped trusting the label. At 75, real buyers with short messages got stranded in warm. At 71, hot stayed meaningful and warm stayed actionable. Thresholds are calibration, not philosophy. I re-calibrate quarterly and the numbers have barely moved.

The 7 Buying Signals the Scorer Watches on Every Message

The scorer does not guess. It reads seven concrete signals from each conversation on every message, ranked here by predictive weight:

  1. Purchase-intent words. Explicit buying language in any dialect. In Egypt that includes بكام, عايز اطلب, عايز احجز, السعر كام, عندكم شحن, and in English "how much," "I want to order," "do you deliver." One intent phrase moves the needle. Two moves it a lot.
  2. Reply speed. How fast the contact answers your questions. A buyer who replies in under 3 minutes to "what quantity do you need?" behaves very differently from someone who answers 11 hours later.
  3. Question count and specificity. Buyers interrogate: price, variants, delivery time, warranty, payment, stock. Three specific questions beats one vague "tell me more" every time.
  4. Price objection versus price curiosity. "غالي أوي" alone can mean a brush-off or a negotiation opener. The scorer reads the surroundings. "غالي, عندك تقسيط؟" is curiosity and scores up. "غالي, شكرا" with no follow-up scores down.
  5. Repeat contact. Someone who messages three times across two days wants something. The scorer rewards return visits heavily, because persistence predicts purchase better than eloquence.
  6. Voice-note effort. In MENA inboxes, voice notes are a serious signal. Typing "بكام" takes two seconds. Recording a 40-second note about what your shop needs takes real effort, and effort correlates with intent.
  7. Story, comment, or ad origin. Where the conversation started matters. A DM that began as a reply to a price-story, a product comment, or a click-to-Messenger ad carries more intent than a cold "hello" typed into the page inbox. Origin is the prior probability the rest of the signals update.

None of these signals alone decides anything. A single "بكام" from a one-message visitor is not hot. Three signals firing together is. That combination logic is the whole point of scoring over keyword matching.

Signal Weight Table: What Pushes a Score Up or Down

My team asked for a one-page cheat sheet to pin above their desks. This table is that sheet: each signal, which direction it pushes the score, and a real example.

SignalWeight directionExample
Purchase-intent wordsStrong up (+15 to +30)"بكام الجملة لو هاخد 100 قطعة؟"
Reply speed under 3 minUp (+8 to +15)Answers size question in 90 seconds
Specific question countUp (+5 per question, capped)"عندكم شحن للصعيد؟ الدفع كاش ولا فيزا؟"
Price curiosity with follow-upUp (+10 to +18)"غالي شوية, فيه خصم للكميات؟"
Repeat contact same weekUp (+10 to +20)Third message in 2 days asking stock
Voice-note effortUp (+6 to +14)35-second note describing shop needs
Story / comment / ad originUp (+5 to +12)DM from a price-story reply

Two things to notice. First, downward weights exist and matter. Without them every long conversation drifts hot, which destroys trust in the label. Second, weights are ranges because context modulates them. If you compare vendors here, ask each one to show a weight table with real examples. Most cannot. Our OT1-Pro vs Wati comparison shows where scoring and Arabic-dialect handling actually differ.

How Re-Scoring on Every Message Fixes the Polite Browser Problem

The failure mode that almost killed this feature was the polite browser: lovely people who write full sentences, say thank you, ask thoughtful questions, and never buy. Early versions of my scorer loved them. Long messages, many questions, fast replies, warm tone. They scored 68, 72, even 78, while real buyers writing "بكام؟ محتاج 30 بكرة" scored 55 because the message was short. My agents told me within a week that the labels felt backwards on exactly the conversations that mattered.

The fix was re-scoring on every inbound message with decay built in. Each new message re-runs the full read, but older signals decay. A thoughtful question from Tuesday counts less on Thursday if nothing since has shown intent. A quote with no reply for 72 hours actively pulls the score down. The polite browser who asked five nice questions on Monday and went quiet drifts from 72 back to 48 by Friday on their own. The terse buyer who follows "بكام؟" with "تمام, ابعت اللينك" climbs from 55 to 83 across three messages. No agent corrects anything. The score is a living value, not a first-impression stamp.

This is also why ScoreLeadJob fires on inbound messages specifically. Outbound messages do not re-score, because my reply is not evidence about the customer. Their next answer is. Score the buyer, not yourself.

Where My Agents See the Score (Hot First, Always)

A score nobody looks at is a hobby, not a system. The inbox list shows the hot/warm/cold badge on every row. Sorting defaults to hot-first, so an agent opening their shift sees buyers at the top regardless of who messaged last. Opening a chat shows the numeric score with the reason string beneath it. A supervisor view aggregates hot waiting per agent and flags the oldest waiting hot.

The behavioral change was immediate. Before scoring, agents cherry-picked easy chats because short greetings were easy to clear, while hard buying conversations with quotes sat because they took work. After hot-first sorting, the path of least resistance and the path of most revenue became the same path. New hires ramp faster too, because on day one they can tell a conversation that deserves five careful minutes from one that deserves a polite AI-handled reply. That judgment used to take three months. Now it ships in the interface.

How I Use the Min_Score Filter to Target Bulk Follow-Ups

The second place the score pays rent is bulk sending. OT1-Pro bulk sends support a min_score filter, so I target follow-ups by score band instead of blasting the whole list. A generic blast to 3,000 contacts gets ignored and trains people to ignore me. A nudge to 220 warm contacts who asked real questions in the last 14 days gets replies, because the message matches memory.

My three standard plays are simple. First, hot non-buyers get a human follow-up within 24 hours, never a bulk blast. If someone hit 75 and did not order, something specific stalled them, usually delivery fee, payment method, or timing. Second, warm contacts get a scored bulk sequence: one value message, one objection-handler, one deadline. I set min_score to 31 and cap at 70 to pull only the warm band, excluding anyone contacted in the last 7 days. Third, cold contacts get AI-only reactivation once a month at most. The full campaign mechanics live in the lead follow-up guide, and the zero-cost rerun technique pairs well with this in the 3,000-contact deep analysis post.

The Math: 400 Inquiries a Month and the 27% Who Ghost

Take a typical store at 400 inbound inquiries a month. Scoring usually puts roughly 60 in hot, 160 in warm, and 180 in cold. Before scoring, the team answered in arrival order and closed about 35 deals. After hot-first ordering with same-day warm follow-up, they close about 52 from the same 400. Same ads, same products, same team. The difference is purely who got answered first.

The ghost segment is where the money hides. Across three accounts I measured, about 27% of hot contacts ghost after the first meaningful exchange. They asked price, got a quote, then vanished. Before scoring, those ghosts dissolved into the general inbox because finding them meant scrolling. After scoring, they are a one-click filter: hot, no order, silent 48+ hours. Recovering even a third of that segment at a $45 average order value turns 20 recovered orders into $900 a month from conversations you already paid to acquire. At a $1,200 monthly ad spend producing those 400 inquiries, that recovery alone lifts ROAS without spending another dollar. Check OT1-Pro pricing and you will see the plan pays for itself on ghost recovery alone.

To be honest about limits: scoring does not create demand. If your 400 inquiries are all "hi" from a viral giveaway, scoring will correctly label most of them cold and your close count will stay low. That is the system telling the truth about your traffic. And a hot label with a slow, sloppy answer still loses. What scoring does is aim your existing effort at the conversations most likely to repay it.

How to Turn It On Without Changing How You Reply

Deployment took my team one afternoon because scoring asks agents to learn nothing new. The rollout I recommend:

  1. Connect your channels and let history accumulate. ScoreLeadJob needs conversation text to read. One week of normal inbound volume is enough to start.
  2. Confirm the thresholds fit your close data. Start with 71+ hot, 31-70 warm, 1-30 cold. After 200 scored conversations, check whether your buyers touched hot. Adjust by 2-3 points if needed, then leave it alone.
  3. Switch the inbox sort to hot-first. Do not run scoring in the background while agents keep working newest-first. The sort change is the intervention.
  4. Build one saved filter per band. Hot waiting 15 minutes, warm silent 48 hours, cold untouched 7 days. Supervisors check them hourly, daily, and weekly.
  5. Add min_score to your next bulk send. Pick the warm band for your first scored campaign and compare reply rate against your last unsegmented blast.

Common mistake to avoid: announcing scoring as an employee-monitoring tool. It is not. It scores contacts, not agents. I framed it as air traffic control: the tower sequences landings so nothing crashes, but agents still fly every conversation. If you want to try this on your own inbox, create an OT1-Pro account here and connect one channel first. Watch one week of hot-first sorting before you change anything else.

Stop losing the leads you already earned

OT1-Pro transcribes voice notes, reads customer photos, scores every lead hot/warm/cold, and replies across WhatsApp, Instagram, Messenger, Telegram, and email — in Arabic or English, with every AI credit receipted in a transparent ledger. Free plan, no credit card.

Start free → · Sales follow-up automation · Lead follow-up software · Pricing · vs WATI · Talk to the founder on WhatsApp

Ready to try OT1-Pro?

Connect WhatsApp, Instagram, Facebook & Telegram with AI that sells for you.

Get started free
Keep reading

Related stories