DEV Community

Ujjwal Dubey
Ujjwal Dubey

Posted on

A QR Check-In for Showroom Appointments: Closing the Loop Between a WhatsApp Booking and the Walk-In

Jewellery showrooms that book appointments on WhatsApp usually lose track at the door: the customer walks in, nobody connects them to the booking, and the salesperson who prepared is busy elsewhere. A tiny QR check-in fixes that, and it is a typical small piece of AI automation for jewellery retail India showrooms ask about first.

Flow

  1. Booking confirmed on WhatsApp; the message includes a QR code with a short signed token.
  2. At the showroom, the receptionist scans it on a tablet.
  3. The assigned salesperson gets a WhatsApp alert with the customer's noted preferences.

Signed tokens

import hmac, hashlib, base64, json, time

SECRET = b"rotate-me"  # keep in env, never in code

def make_token(booking_id):
    payload = json.dumps({"b": booking_id, "t": int(time.time())}).encode()
    sig = hmac.new(SECRET, payload, hashlib.sha256).digest()[:12]
    return base64.urlsafe_b64encode(payload + sig).decode()

def read_token(tok, max_age_days=30):
    raw = base64.urlsafe_b64decode(tok.encode())
    payload, sig = raw[:-12], raw[-12:]
    if not hmac.compare_digest(sig, hmac.new(SECRET, payload, hashlib.sha256).digest()[:12]):
        return None
    data = json.loads(payload)
    if time.time() - data["t"] > max_age_days * 86400:
        return None
    return data["b"]
Enter fullscreen mode Exit fullscreen mode

Generate the image with any QR library (for example qrcode) from the token.

Keep personal data out of the QR

The token carries a booking id only. Preferences are looked up on scan, inside your system.

Handle no-shows politely

If nobody scans within the slot, send the salesperson a prompt to follow up personally. Do not auto-send "you missed your appointment".

Walk-ins without a QR

The receptionist searches by phone number. The QR is a convenience, not a gate.

Before you build anything like this, map the current visit flow first, so the QR step solves a real gap.

Disclosure: I co-founded NxFlowAI, a Mumbai-based AI automation agency.

Top comments (0)