WhatsApp booking for ski rental shops

Your guests message.Easyrent books.

Mogul walks your guests through the reservation over WhatsApp — dates, people, gear, measurements — and writes the finished booking into your Easyrent. No app, no customer account, no change to how you work.

API

The guest types, the record fills alongside — the same fields your team would otherwise enter at the counter.

→ Hi, I need ski equipment
← Hello! I’ll set up the reservation. What dates do you need the equipment for?
→ 28 Dec to 3 Jan
← Who is the equipment for? First and last name.
→ Anna Gruber
← And her age?
→ 34
← What do you need?
→ Skis
← Height and weight? That’s what the binding setting is based on.
→ 1.72 m, 64 kg
← Ability?
→ Intermediate
← To confirm: Anna Gruber, 28 Dec to 3 Jan, alpine skis. Shall I book it?
→ Yes, please
← Booked. Your reference: R-24817. See you in Obergurgl!

The guest types, the record fills alongside — the same fields your team would otherwise enter at the counter.

In preparation with Riml Sports, Ötztal

The problem

Saturday, 8:15 am.

The queue runs to the door. Three people at the counter are typing names, dates of birth, heights and weights into Easyrent while everyone else waits. The data is the same every week. It just gets collected at the worst possible moment.

Mogul moves data entry off the counter and onto the guest’s phone — before they arrive.

How it works

From first message to reservation

  1. 01

    The guest messages

    Your shop’s WhatsApp number — from a QR code in the window, a link on your site, or the hotel’s confirmation email. No download, no account, no sign-up.

  2. 02

    Mogul asks

    Dates first, then each person separately: name, age, gear, height, weight, ability. Answers come from buttons and pick lists rather than free text, which keeps the data clean.

  3. 03

    Easyrent receives it

    Mogul creates the customer and the reservation through the Easyrent interface. In your system the booking looks exactly as if someone had typed it at the counter. Nothing about your workflow changes.

What it asks

Enough detail to prep the skis

Per person, depending on the category chosen.

Skis
Ability, model tier, boots, helmet, height, weight
Snowboard
Boots, model, helmet
Cross-country
Classic or skating, boots, height, weight
Touring
Skis, boots, backpack, transceiver, shovel, probe, airbag
Other
Snowshoes, sledge

Children up to 14 automatically get the simplified flow and the kids catalogue.

Build

How it’s built

One backend for every shop. No separate server per rental.

Backend
Node.js 22, TypeScript strict, Express, PostgreSQL
Conversation
State machine across ~30 steps, state stored as JSONB in Postgres
Easyrent
SOAP and REST clients, three retries with exponential backoff
WhatsApp
WhatsApp Business API via Twilio, buttons and pick lists via the Content API
Tenancy
One shop per database row, own credentials, shared backend
Reliability
Message deduplication, durable queue for failed calls, 24-hour session expiry
Operations
Hetzner server, systemd, Caddy with automatic Let’s Encrypt certificates, deploy on git push
Languages
German and English, Italian in progress
Source on GitHub

Built by Nicolás de Prat Gay — product and engineering.

Contact

Ask about a pilot

Mogul is running. I’m looking for shops on Easyrent willing to use it for a season and say what’s missing. Tell me which shop and how many locations.

Send an email
Status
Pilot in preparation: Riml Sports, Ötztal
Requirement
Easyrent by Wintersteiger
What you provide
Credentials and a WhatsApp number