<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sabbaq</title>
    <description>The latest articles on DEV Community by Sabbaq (@getsabbaq).</description>
    <link>https://dev.to/getsabbaq</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4188004%2Ff8031b9b-a250-4961-adaa-6134c69942ce.png</url>
      <title>DEV Community: Sabbaq</title>
      <link>https://dev.to/getsabbaq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/getsabbaq"/>
    <language>en</language>
    <item>
      <title>How to Answer Property Finder and Bayut Leads on WhatsApp in Arabic and English, 24/7</title>
      <dc:creator>Sabbaq</dc:creator>
      <pubDate>Sat, 17 Oct 2026 06:29:27 +0000</pubDate>
      <link>https://dev.to/getsabbaq/how-to-answer-property-finder-and-bayut-leads-on-whatsapp-in-arabic-and-english-247-56cb</link>
      <guid>https://dev.to/getsabbaq/how-to-answer-property-finder-and-bayut-leads-on-whatsapp-in-arabic-and-english-247-56cb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Canonical note: this article was first published by Sabbaq at &lt;a href="https://getsabbaq.com/en?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=bilingual-24-7" rel="noopener noreferrer"&gt;getsabbaq.com&lt;/a&gt;. If you republish it, please point the canonical link there.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dubai is a bilingual market that never really sleeps. A tenant in Al Nahda writes in Gulf Arabic at 1 am. An investor in London writes in English during his morning coffee, which is lunchtime in Dubai. A family relocating from Riyadh switches between both languages in the same chat.&lt;/p&gt;

&lt;p&gt;If your brokerage only replies well in one language, or only during office hours, you are leaving portal leads on the table. This guide walks through a practical setup for answering every Property Finder and Bayut lead on WhatsApp, in Arabic and English, around the clock.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Decide which number leads land on
&lt;/h2&gt;

&lt;p&gt;Start with the plumbing. Each agent's portal profile lists a WhatsApp number. Whatever number is on that profile is where the lead's message goes.&lt;/p&gt;

&lt;p&gt;For a 24/7 setup, those leads need to land on a WhatsApp Business account that your brokerage controls, not on an agent's personal phone. That gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One place where every conversation is visible&lt;/li&gt;
&lt;li&gt;Continuity when an agent is on leave or leaves the company&lt;/li&gt;
&lt;li&gt;The ability to connect an assistant that can reply when nobody is free&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep the number in your own Meta account. You stay the owner, and you can revoke any app's access from Meta at any time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Don't rely on WhatsApp alone, forward the lead emails too
&lt;/h2&gt;

&lt;p&gt;Portals also send lead notification emails. These are useful because they carry the portal name and the listing. Set up a rule to forward Property Finder, Bayut and Dubizzle lead emails to one inbox your system can read. That way, even a lead who called or filled a form gets a quick WhatsApp intro, and you know which portal it came from.&lt;/p&gt;

&lt;p&gt;(Note: from a plain WhatsApp message alone, you generally can't tell which portal sent the lead. The email route fills that gap.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Answer in the lead's language, properly
&lt;/h2&gt;

&lt;p&gt;"Bilingual" often means an English template run through a translator. Arabic-speaking leads notice immediately. Good Arabic replies for Dubai real estate should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Match the lead's language&lt;/strong&gt;: reply in Arabic when they write in Arabic, English when they write in English.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sound Gulf, not textbook.&lt;/strong&gt; Short, warm, respectful. Not a translated legal notice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep numbers clean.&lt;/strong&gt; Prices, unit references and phone numbers should render correctly inside right-to-left text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the right terms&lt;/strong&gt;: neighbourhood names, "off-plan", "service charge", "title deed" (سند الملكية) should be what locals actually say.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your agents need this too. An inbox that shows Arabic messages right-to-left, bubble by bubble, makes it far easier for an English-first agent to follow a conversation they're handed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Cover nights and weekends with an assistant, not a night shift
&lt;/h2&gt;

&lt;p&gt;Hiring people to watch WhatsApp at 2 am is expensive and hard to sustain. The practical alternative is your brokerage's own WhatsApp assistant, which replies instantly at any hour and passes the conversation to an agent in the morning.&lt;/p&gt;

&lt;p&gt;What it should do on a lead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reply in seconds&lt;/strong&gt; and disclose that it's an AI assistant on the first message.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Answer from your data only&lt;/strong&gt;: your listings and your knowledge base. If something isn't there, it should say it will check with the agent instead of making it up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qualify&lt;/strong&gt; one question at a time: buy or rent, budget, area, bedrooms, timing, cash or mortgage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offer a viewing&lt;/strong&gt;, with an agent confirming every viewing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hand off with a summary&lt;/strong&gt;, routed to the right agent by area, language or listing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 5: Set clear guardrails
&lt;/h2&gt;

&lt;p&gt;Speed is worthless if the assistant says the wrong thing. Write down what it must never handle on its own and must always hand to a person. A sensible list for Dubai real estate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Price negotiation and discounts&lt;/li&gt;
&lt;li&gt;Legal matters: contracts, SPA, title deeds, power of attorney&lt;/li&gt;
&lt;li&gt;Mortgage advice&lt;/li&gt;
&lt;li&gt;Any time the lead asks for a human (for example, typing "AGENT" or «وكيل»)&lt;/li&gt;
&lt;li&gt;Viewing confirmation&lt;/li&gt;
&lt;li&gt;ID or card numbers (the assistant should tell the lead not to send them)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also make sure opt-outs are respected automatically: a lead who sends STOP or «إيقاف» should not get further messages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Make sure humans actually pick up
&lt;/h2&gt;

&lt;p&gt;An assistant that hands off to an agent who never responds just moves the delay. Put a timer on every handed-off lead. If the agent doesn't acknowledge it within a few minutes, alert the manager by WhatsApp and reassign the lead by area, language or round-robin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Test in shadow mode before going live
&lt;/h2&gt;

&lt;p&gt;Don't flip the switch on day one. Run in &lt;strong&gt;shadow mode&lt;/strong&gt; first: the assistant drafts a reply to every real lead, and your agents approve or edit before it's sent. Within a few days you'll see whether the Arabic sounds right, whether the answers match your listings, and where your knowledge base has gaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Measure one honest number
&lt;/h2&gt;

&lt;p&gt;Track your &lt;strong&gt;median time to first reply&lt;/strong&gt;, from lead arrival, whoever sends that reply. Alongside it, track after-hours leads, replies under 5 minutes, leads never answered, and viewings confirmed. Review it weekly.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Sabbaq does this
&lt;/h2&gt;

&lt;p&gt;Sabbaq packages this whole setup for Dubai brokerages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every Property Finder and Bayut lead answered in seconds, in Arabic or English, on your existing WhatsApp number. Median under 5 minutes, or your month back.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works on your own WhatsApp Business account; your number stays in your Meta account&lt;/li&gt;
&lt;li&gt;Arabic and English replies, with a right-to-left Arabic inbox for your agents&lt;/li&gt;
&lt;li&gt;Lead email forwarding for Property Finder, Bayut and Dubizzle, tagged by portal&lt;/li&gt;
&lt;li&gt;The guardrails above, plus manager alerts and automatic reassignment&lt;/li&gt;
&lt;li&gt;Shadow mode first, then we set up your plan with you when you're ready&lt;/li&gt;
&lt;li&gt;A Lead Leak report in the dashboard: median first reply, after-hours leads and viewings&lt;/li&gt;
&lt;li&gt;Every feature on every plan; plans differ only by agents, numbers and monthly conversations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the median first reply in your first paid month isn't under 5 minutes, that month is refunded. Every plan has a 7-day trial: subscribe with a card and nothing is charged for 7 days (1 number, 5 agents, 100 conversations, soft cap). Meta bills its own WhatsApp fees.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getsabbaq.com/en?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=bilingual-24-7" rel="noopener noreferrer"&gt;Start answering every lead in Arabic and English: getsabbaq.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>ai</category>
      <category>realestate</category>
      <category>automation</category>
    </item>
    <item>
      <title>Building a WhatsApp Business AI Assistant for Real Estate: An Architecture Overview</title>
      <dc:creator>Sabbaq</dc:creator>
      <pubDate>Fri, 16 Oct 2026 06:31:55 +0000</pubDate>
      <link>https://dev.to/getsabbaq/building-a-whatsapp-business-ai-assistant-for-real-estate-an-architecture-overview-2hj6</link>
      <guid>https://dev.to/getsabbaq/building-a-whatsapp-business-ai-assistant-for-real-estate-an-architecture-overview-2hj6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Canonical note: this is a technical companion to &lt;a href="https://getsabbaq.com/en?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=architecture" rel="noopener noreferrer"&gt;Sabbaq&lt;/a&gt;. No credentials, keys or internal endpoints are included.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sabbaq is a WhatsApp-first lead desk for Dubai real estate brokerages. The product promise is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every Property Finder and Bayut lead answered in seconds, in Arabic or English, on your existing WhatsApp number. Median under 5 minutes, or your month back.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Putting money behind a reply-time number forces some interesting engineering decisions. This post walks through the architecture at a high level: ingestion, the conversation engine, guardrails, human handoff, tenancy and metrics.&lt;/p&gt;

&lt;h2&gt;
  
  
  The constraints
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Channel:&lt;/strong&gt; the WhatsApp Business Platform (Cloud API) on the &lt;em&gt;customer's own&lt;/em&gt; WhatsApp Business account. The brokerage keeps its number in its own Meta account and can revoke access at any time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Languages:&lt;/strong&gt; English and Gulf Arabic, often mixed in one chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency:&lt;/strong&gt; first reply in seconds; the business metric is the &lt;em&gt;median&lt;/em&gt; time to first reply from lead arrival.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety:&lt;/strong&gt; the assistant must never invent a price, give legal or mortgage advice, or negotiate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenant:&lt;/strong&gt; many brokerages, strictly separated data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No portal API:&lt;/strong&gt; we don't pull from portal APIs. Leads come in through channels the brokerage already controls.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Ingestion: two lead sources
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; WhatsApp Cloud API webhook ──┐
                              ├──► Lead normaliser ──► Conversation engine
 Inbound lead email (parsed) ─┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;WhatsApp.&lt;/strong&gt; Any inbound message to the connected number becomes (or updates) a lead. The webhook handler verifies the Meta signature, de-duplicates on message ID (Meta retries), persists the raw event, and enqueues work, returning 200 fast. Keep webhook handlers thin; do the slow work async.&lt;/p&gt;

&lt;p&gt;One honest limitation: a plain WhatsApp message doesn't tell you which portal the lead came from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Email.&lt;/strong&gt; Portals send lead notification emails. Each workspace gets a unique inbound address; brokerages forward Property Finder, Bayut and Dubizzle lead emails there. A parser per portal extracts name, phone, listing reference and message, tags the lead with its portal, and triggers a WhatsApp intro using a Meta-approved template (business-initiated messages outside the 24-hour window need templates).&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The conversation engine
&lt;/h2&gt;

&lt;p&gt;Each inbound message runs through a pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Load context:&lt;/strong&gt; workspace settings, the lead's history, the brokerage's listings and knowledge base.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language detection:&lt;/strong&gt; reply in the lead's language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrail pre-check:&lt;/strong&gt; classify for handoff topics before generating anything (see §3).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate:&lt;/strong&gt; an LLM call grounded in retrieved listings and knowledge only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrail post-check:&lt;/strong&gt; validate the draft against the source data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act:&lt;/strong&gt; send live, or store as a draft in shadow mode.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Qualification is deliberately one question at a time: buy or rent, budget, area, bedrooms, timing, cash or mortgage. Each answer is written to structured lead fields, not just left in the transcript, so routing and reporting can use it.&lt;/p&gt;

&lt;p&gt;The very first message discloses that it's an AI assistant. That's a product decision and good practice under Meta's policies. We position it as the brokerage's own assistant for its own leads, not a general-purpose bot.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Guardrails: trust nothing the model says about facts
&lt;/h2&gt;

&lt;p&gt;The biggest risk in real estate is a confident wrong number. Our rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Grounding check.&lt;/strong&gt; Any fact in a draft (price, size, availability) must match the listings or knowledge base. Prices must fall within a tight tolerance (2%) of the source. If they don't, the draft is replaced with "I'll check with the agent."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fixed-reply handoffs&lt;/strong&gt; (in English and Gulf Arabic) for: price negotiation and discounts; legal topics (contracts, SPA, title deed, POA); mortgage advice; explicit human requests ("AGENT", «وكيل»); viewing confirmation; and ID or card numbers, where the lead is told not to send them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output filters.&lt;/strong&gt; Do-not-say phrases and fabricated links are blocked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alerts.&lt;/strong&gt; Complaints, scam-like wording and very high budgets notify the manager.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consent.&lt;/strong&gt; STOP / «إيقاف» and START / «ابدأ» are handled automatically and logged. Manual sends are blocked after an opt-out or outside the 24-hour window.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The lesson: treat the LLM as a draft writer, and put deterministic checks on both sides of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Shadow mode as a first-class state
&lt;/h2&gt;

&lt;p&gt;Every workspace starts in &lt;strong&gt;shadow mode&lt;/strong&gt;: the engine runs end to end, but output lands as a draft that an agent approves (with inline edits) or discards. This was the single best decision we made:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Owners see real answers to real leads before anything is sent.&lt;/li&gt;
&lt;li&gt;Edits are a signal for gaps in the knowledge base.&lt;/li&gt;
&lt;li&gt;It's the safe fallback: when a trial ends, the workspace drops back to shadow mode and data is kept.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation-wise, "send" is a strategy chosen per workspace and per chat. A take-over/hand-back toggle pauses the assistant for a single conversation when an agent steps in.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Handoff and the SLA alarm
&lt;/h2&gt;

&lt;p&gt;When a conversation needs a human, it's routed with a summary by area, language or listing. Handing off moves the latency risk from the model to people, so:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each handed-off lead gets a countdown in the inbox.&lt;/li&gt;
&lt;li&gt;If no one acknowledges it in time (default 5 minutes), the manager gets a WhatsApp alert and the lead is auto-reassigned (area, language, then round-robin).&lt;/li&gt;
&lt;li&gt;The alarm fires once per unacknowledged lead to avoid alert fatigue.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Multi-tenancy
&lt;/h2&gt;

&lt;p&gt;Each brokerage is a workspace. The workspace is bound in a signed session, membership is rechecked on every request, and the query layer refuses tenant-table queries without a workspace scope. Tests cover the isolation. In short: each brokerage's data is logically separated by workspace and enforced on every request.&lt;/p&gt;

&lt;p&gt;Roles are layered: &lt;strong&gt;Agent&lt;/strong&gt; (inbox, replies, approvals, viewings), &lt;strong&gt;Admin&lt;/strong&gt; (plus settings, listings, knowledge, metrics), and &lt;strong&gt;Owner&lt;/strong&gt; (plus billing, WhatsApp connection and users).&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Integrations
&lt;/h2&gt;

&lt;p&gt;An outbound, signed webhook POSTs on events like &lt;em&gt;lead qualified&lt;/em&gt; and &lt;em&gt;viewing confirmed&lt;/em&gt;, so brokerages can push into any CRM. Lead and consent CSV exports are self-serve.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Metrics: measuring the promise
&lt;/h2&gt;

&lt;p&gt;The metric we guarantee is the &lt;strong&gt;median time to first reply from lead arrival, whoever replies&lt;/strong&gt; (assistant or agent). Median beats mean: one stuck chat can't hide behind fast ones, and one fast reply can't flatter a bad week.&lt;/p&gt;

&lt;p&gt;The weekly report (Monday to Sunday, Dubai time) covers leads, after-hours leads, replied, median first reply, replies under 5 minutes, qualified, viewings requested and confirmed, handoffs, opt-outs and leaked leads. Owners and admins see the median view on every plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Bilingual UI details
&lt;/h2&gt;

&lt;p&gt;Arabic support isn't just the model. The agent inbox renders direction per message bubble, and numbers, prices and listing references are isolated so they don't flip inside right-to-left text. Small thing, huge difference for agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep webhooks thin and idempotent; process async.&lt;/li&gt;
&lt;li&gt;Ground every fact, and put deterministic checks before and after the model.&lt;/li&gt;
&lt;li&gt;Make "draft, don't send" a first-class mode, not a debug flag.&lt;/li&gt;
&lt;li&gt;Put timers on human handoffs, because that's where latency hides.&lt;/li&gt;
&lt;li&gt;Pick one honest metric and build the product around it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're running a brokerage in Dubai, or you're just curious how it behaves on real leads, see &lt;strong&gt;&lt;a href="https://getsabbaq.com/en?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=architecture" rel="noopener noreferrer"&gt;Sabbaq at getsabbaq.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>ai</category>
      <category>architecture</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
