Skip to content

WhatsApp menu

A customer who writes to the business number, +91 95419 10494, gets a list of options and can find a departure, send a booking enquiry, see their booking, pay the balance, send their travellers' passports and photos, or reach the office. Rules: COMM-030 … COMM-036. Switching it on and what staff see: WhatsApp Cloud API → The WhatsApp menu.

It is off until an administrator switches it on in Admin → Integrations → WhatsApp → WhatsApp menu. While it is off, every message waits for a person, as before. Writing "sign up" starts the sign-up form whether the menu is on or off (TRV-017).

Code: supabase/functions/whatsapp-webhook/menu.ts (the conversation), menuText.ts (every word below), menuDeps.ts (the database, Meta, the Drive), media.ts (files); the public page src/pages/pay/PayLink.tsx; the admin card src/components/admin/WhatsAppMenuCard.tsx. Change a text here and in menuText.ts together.

When the menu answers

The customer writes The menu
hi, hello, salam, menu, 0, or anything that is not an answer to its last question sends the menu
a number (1 … 7) right after the menu chooses that option
an answer to the question it just asked goes on
a wrong answer to a question (lots for "how many adults") "Sorry, I didn't get that." and asks again
nothing for 30 minutes forgets the question; the next message gets the menu

It does not answer — the message goes to the office as before — for STOP / START, "sign up", a reaction, a number blocked in the inbox, a business partner's number, a conversation handed to the office, or a photo or file it did not ask for.

The menu

An interactive list. Header Alhuda Travels. Button See options. Footer Type menu at any time to come back here.

Assalamu alaikum! Welcome to Alhuda Travels. How can we help you today?

Option Under it
Groups available Departures open for booking
Booking enquiry Ask us to book a trip for you
My booking status Your bookings with us
Pay balance Payment link or bank details
Documents needed Send passports and photos
Talk to the office A member of our team replies here
Sign up (only when the number has no account) Make your Alhuda account

Groups available

Up to ten departures on sale: active, not cancelled, completed, departed or marked full, departing today or later, with a seat left — the website's rules, less full ones. Each row: the name, and "05/12/2026–20/12/2026 · from ₹1,25,000 · 12 seats left" (from = the published adult price). Body: "Departures open for booking. Tap See groups to choose one."

Tapping one shows:

Umrah December 2026 05/12/2026 – 20/12/2026 (15 nights) Seats left: 12

(the poster's tagline)

Programme: Makkah 8 nights, Madinah 7 nights Includes: Visa, Flights, Hotels

Price per person: Adult ₹1,25,000 Child ₹95,000 Infant ₹25,000

The programme is the hotels allocated to the departure, or else the day plan's titles; the inclusions and tagline only where the office chose to show them on the website poster. Buttons: I'm interested (starts an enquiry for this departure) · Other groups · Back to menu.

No departure on sale: "No departures are open for booking right now. Choose Booking enquiry and our team will tell you when one opens."

Booking enquiry

An enquiry for sales — never a booking, a seat or a payment (COMM-032).

Question How it is answered
Which departure is your enquiry for? a list of up to nine departures and Not sure yet (skipped after I'm interested)
What kind of trip are you looking for? (only after Not sure yet) Umrah, Hajj, Umrah with Ziyarat, Ziyarat, Tour within India, Tour abroad, Not sure / other
How many adults (12 years and above)? 1 … 10 from the list, or typed
How many children (2 to 11 years)? 0 … 9, or typed
How many infants (under 2 years)? 0, 1, 2 buttons, or typed
Which month would you like to travel? the next nine months and Not sure yet, or typed
Please type your full name. only when the number has no single customer record

Then: "Thank you — our team will call you on this number."

The answers become a lead with source WhatsApp in Leads and a WhatsApp enquiry in the Work inbox: the name, the number, the trip type, the group size, the month, the departure, and a message such as "Enquiry from the WhatsApp menu. Group: Umrah Winter (UMR-…, departs 05/12/2026). Adults 2, children 1, infants 0. Month: December 2026." No customer record is made (LC-006).

A fourth enquiry from one number in a day: "We already have three enquiries from this number today. Our team will call you. To add something, choose Talk to the office."

My booking status, Pay balance, Documents needed: who sees what

The number WhatsApp delivered the message from decides (COMM-031): the live bookings where it is the customer's phone, the payer's phone, or a live traveller's own phone.

The number The customer is told
reaches no live booking "We could not find a booking for this WhatsApp number. If you booked with another number, choose Talk to the office."
is on more than one customer's records or bookings "This number is on more than one customer's bookings, so we can't show bookings here. Please choose Talk to the office."
is a business partner's (the agency's or a contact's) "This number belongs to an Alhuda business partner. For bookings, payments and documents please use the partner app or portal: https://alhudatravels.in/partner/auth — Our office will also read your message here." (once a day; the message goes to the office)

Several bookings: "Which booking?" with a list (booking number, departure and date).

My booking status

BK-00123 — Umrah December 2026 Departure 05/12/2026 · Return 20/12/2026 Travellers: Zara Test, Omar Test Status: Confirmed — visa in progress Total ₹2,50,000 · Paid ₹1,00,000 · Due ₹1,50,000

Next: Pay the balance of ₹1,50,000 — choose Pay balance.

Status When
Awaiting approval by our office the booking waits for the sales manager or finance
Being updated by our office sent back for correction
On hold — our office will contact you on hold
Confirmed / Confirmed — visa in progress / Confirmed — visa issued / Confirmed — tickets issued approved, by how far the visas and tickets have gone
Travelling / Completed after departure / after return

(some travellers cancelled) is added when part of the booking is cancelled. Money is the price with GST, what was received and what is still due — the booking e-mails' figures — in the booking's currency. Next step: "Our office is checking your booking. You can pay the ₹… now — choose Pay balance." (something agreed is still unpaid) or "Our office is checking your booking. We will message you when it is confirmed.", "Pay the balance of … — choose Pay balance.", "Send the missing documents — choose Documents needed.", "Have a blessed journey." or "Nothing for you to do now." Buttons: Pay balance (when something is due), Documents needed (when something is missing), Back to menu.

Pay balance

BK-00123 — Umrah December 2026 Total ₹2,50,000 · Paid ₹1,00,000 Due: ₹1,50,000

Pay ₹1,50,000 online (UPI, card or net banking). This link works once, for 30 minutes: https://alhudatravels.in/pay/…

Or pay by bank transfer: (the bank details from the setting)

After paying by bank transfer, send a photo of the receipt here. Our accounts team checks it before it shows as paid.

The link is for the agreed due — the price with GST, less what was received and any cancellation credit — whether or not finance has approved the booking yet (FIN-033, owner 01/10/2026). Before approval the message adds, above the link: "Our office is still confirming this booking. You can pay now — the amount is what you agreed to pay." Until 01/10/2026 such a booking got no link ("Online payment opens once our office confirms your booking.").

Instead of the link, when it cannot be given:

Case Line
Razorpay is not set up "Online payment isn't available at the moment."
The booking is not in rupees "Online payment is in rupees only."
Less than ₹1 is due "Less than ₹1 is due, so it can't be paid online. Please pay it by bank transfer."
Five links in the last hour "You have asked for several payment links in the last hour. Please use the last one, or try again later."
No bank details saved "For our bank details, choose Talk to the office."

Nothing due on any booking: "Nothing is due on your bookings. Thank you!"

The payment page (/pay/…, no login) says Pay your booking balance and has one button, Continue to payment. Opening the page spends nothing; the button spends the link and opens Razorpay. Closing Razorpay offers Pay ₹… for booking BK-… again without a new link. A used, expired or replaced link says so and how to get a new one ("write menu on WhatsApp to Alhuda Travels and choose Pay balance"). After paying: "Thank you — your payment … has gone through. It shows on your booking once Razorpay confirms it to us."

A bank receipt. For a day after Pay balance, a photo or PDF the customer sends is kept as the payer's Payment receipt (Customer 360 → Files), the office gets a Work item, and the customer is told "Thank you — we have your receipt. Our accounts team will check it and confirm. It is not marked as paid until then."

Documents needed

For a booking still to depart, per live traveller:

Part Asked for when
passport front page the passport number or expiry is missing, the passport runs out within six months of return, or the visa has not started
passport back page the visa has not started
passport-size photo the visa has not started

A part already sent and not rejected is not asked for again. First a summary:

For BK-00123 we still need: • Zara Test: passport front page, passport back page, passport-size photo • Omar Test: passport-size photo

We'll ask for them one by one.

Then one at a time, with buttons Skip this one and Later:

(1 of 4) Send the passport front page of Zara Test — a clear photo or a PDF.

The customer sends The menu
a photo or a PDF "Got it ✓. (2 of 4) Send the passport back page of Zara Test …"
text, a voice note, a video "Please send a photo or a PDF of the passport front page of Zara Test, or tap Skip this one."
a file over 10 MB "That file is over 10 MB. Please send a smaller photo or a PDF."
skip / Skip this one the next one
later / Later "OK. Send them any time — type menu and choose Documents needed."
the last one "Got it ✓. That's everything — thank you! Our office will check the documents and tell you if anything needs to be sent again."

Each file goes to the company Shared Drive under Customers/ — the traveller's own customer record when they have one, otherwise the booking's customer — named like Passport front - Zara Test - WhatsApp 01-10-2026.jpg, and is never shared. Staff see it in Customer 360 → Files as From WhatsApp · for Zara Test, Awaiting review, with OK and Reject (customers.edit). A rejected part is asked for again. Nothing is read from the photo and nothing on the traveller changes.

Nothing missing: "We have everything we need from you for now. Thank you!"

Talk to the office

Our office hours are Mon–Sat 10:00–18:00 IST. A member of our team will reply here.

Type menu to go back to the options.

The office hours are the setting. The conversation gets a Work item and is unread in the WhatsApp inbox. From then on the menu stays quiet and every message is the office's, until the customer writes menu, or 30 minutes after a staff reply with the customer quiet too.

Not built

  • Any language but English.
  • Ordering, booking, holding a seat or taking money in the chat — an enquiry only.
  • A partner's bookings — the partner app and portal.
  • Reading the passport from the photo (extract-passport is not run on WhatsApp files).
  • Other documents (visa forms, tickets) and other menus for staff.
  • Messages the menu starts by itself — it only answers.