Inspiration

Dubai attracts property buyers from around the world, but enquiries often span different languages, time zones and disconnected tools. Buyers need clear answers, while agents need enough context to understand who is ready to take the next step.

We built Sahar to connect those steps: understand a buyer's requirements, explain matching properties, obtain explicit consent for an intent deposit and pass the conversation to an agent with its payment status attached.

What it does

Sahar is a multilingual property enquiry assistant available through web chat and Telegram.

Buyers describe their preferred area, budget, bedroom count and purchase timeline. Sahar recommends matches from a controlled catalogue and explains why they fit. Conversations support English, Arabic, Simplified Chinese, Traditional Chinese, French and German.

When a buyer asks about an intent deposit, Sahar explains the amount and terms. Asking for information does not itself authorize payment. After explicit confirmation, Sahar creates a PayPal Sandbox checkout. The buyer accepts the terms, approves payment through PayPal and returns to complete capture.

A completed payment updates the order to Paid and flags the conversation for agent follow-up.

The web workspace includes email-code sign-in, saved conversations, search, renaming and deletion. New accounts receive 50 trial credits, with one credit used for each successful AI reply. Administrators can grant additional credits with a required note and review credit and sign-in history.

How I built it

The interface uses React, TypeScript, Ant Design and i18next. It supports six interface languages, including right-to-left layout for Arabic.

The backend uses Hono on Cloudflare Workers. Cloudflare D1 stores accounts, conversations, listings, orders, credit transactions and delivery records. Sign-in combines email verification codes, server sessions and Cloudflare Turnstile.

Both web chat and Telegram use deepseek/deepseek-v4.1-flash-1017 through Qiniu's OpenAI-compatible API. The model receives relevant conversation history and catalogue data, then returns structured reply text, a response language, an intent score and a constrained workflow action.

The server validates the action and selected listing. Prices and deposit amounts come from stored catalogue records; model-generated text cannot set the amount charged or grant account permissions.

PayPal Sandbox integration covers order creation, buyer approval, server-side capture and webhook signature verification. Persisted jobs and scheduled processing support Telegram message delivery and retries.

Challenges I ran into

Connecting natural conversation to payments required a clear distinction between asking a question, expressing interest and authorizing the next step. We needed flexible replies without allowing ambiguous language to trigger an order.

Money representation was another challenge. Amounts are stored as integer minor units, while the model receives explicit major-unit amounts and currencies. This avoids confusing a USD 100 deposit with its stored value of 10,000 cents.

Multilingual support also required more than translating the interface. We adjusted response-language selection so a buyer writing in Chinese receives a Chinese reply even when the website interface is English.

We addressed duplicate requests, concurrent credit changes, provider failures and expired checkout approvals. Credit reservations distinguish in-progress requests from successful replies, while payment state checks help prevent repeated processing.

Accomplishments that I'm proud of

We completed real AI conversations and PayPal Sandbox buyer approval and capture through the deployed application.

We connected Telegram and web chat to the same conversation and payment services, added multilingual responses and built an operator view for orders and handoff status.

We also implemented email sign-in and credit administration with recorded grant notes and transaction history. The source is publicly available under the MIT License, with deployment instructions and third-party notices.

The strongest result is a working flow from a buyer's first question to a completed Sandbox payment and an agent handoff state.

What I learned

An AI payment experience depends on the controls surrounding the model: trusted data, validated actions, explicit consent and reliable reconciliation.

We learned to separate conversational suggestions from authoritative state. The model can explain a property and suggest a next step, while the server remains responsible for permissions, balances, order amounts and payment completion.

We also learned that language continuity and visible feedback matter throughout the workflow. Buyers need to understand what the assistant is doing, whether a request failed and what happens after payment.

What's next for Sahar — AI Property Concierge

We plan to add brokerage-managed listing feeds, richer agent assignment and notifications, and a clearer operational view of enquiries awaiting follow-up.

We also want to improve catalogue freshness and give agents better tools to review the buyer's requirements before continuing the conversation.

Any move to live property payments would require verified listings, approved commercial terms and the appropriate legal and payment arrangements.

Current scope

Sahar is a working hackathon application using real AI and PayPal Sandbox test funds. Its supported channels are web chat and Telegram.

The three catalogue properties and their images are illustrative. Availability, ownership and legal clearance are not verified. Sandbox payments do not reserve real property or establish escrow or ownership rights.

An agent handoff means the conversation is flagged for operator follow-up; it does not guarantee that a human agent is immediately online.

Built With

Share this project:

Updates

Submission history