Mini Apps

Home Delivery Booking via WhatsApp

Home Delivery Booking via WhatsApp

In this article

Once your customer's order is complete and their items are ready to be returned, you can send them a WhatsApp message to schedule the delivery. This guide will show you how to set up a Home Delivery Booking Flow so your customers can choose their preferred delivery date and time directly through WhatsApp.


Why use a Mini App for your Home Delivery Bookings?

  • Zero Friction: Customers don't need to visit a website or download an app. They can schedule their delivery right from the same WhatsApp chat — keeping the entire experience in one place.
  • Fewer Missed Deliveries: Instead of your team deciding when to deliver, the customer picks a time that works for them — reducing failed deliveries and rescheduling.
  • Automatic Order Updates: When the customer submits their delivery booking, the existing order is automatically updated with a delivery slot, so your team is notified and ready to go.
  • All-in-One Tracking: Pickup and delivery bookings are tied to the same order, giving you a complete view of every job from start to finish.

Before You Start

This guide walks you through setting up a Home Delivery Booking Flow on WhatsApp. The steps covered here follow a standard delivery booking process: Contact, Address, and Date & Time. Depending on your business, you may need to add additional screens or fields to fit your workflow.

Note: This guide assumes you have already set up a pickup booking. Haven't done that yet? Choose your setup guide first:
Laundry Home Pickup Booking via WhatsApp
Bag Service Home Pickup Booking via WhatsApp

Create a new Mini App

To start creating your delivery booking process, you will first need to create a new Mini App.

  • From the top navigation bar, click the Settings icon. Under Sales Channels, click WhatsApp.
  • In the WhatsApp page, you should land on the Mini Apps tab. Click on the + New Mini App button.
  • A pop-up window will appear. Fill in the following:
    • Name: Give your app a clear name based on what it does (e.g., " Home Delivery Booking" or "Delivery Scheduling").
    • Linked To: From the dropdown, select Order. Since this is a delivery booking, it needs to be tied to an existing order. When your team sends this Mini App to the customer, they will need to select the relevant order first — this ensures the delivery is linked to the correct job and pulls in the necessary order details.
  • Click Create. You should now see the newly created Mini App for your delivery booking.

Open the Mini App Editor

Now that you have created a new Mini App, the next thing to do is to create the process that your customers take to schedule the delivery of their items.

Before we start building, here is the flow your customers will follow when they use this Mini App: Contact → Address → Date & Time.

  • Click on the three dots (•••) on the right of the Mini App you just created and select Edit.

You will see two sides to the screen:

  • Left Side: This is where you add contents to the form.
  • Right Side: This is a Live Preview. It shows you exactly what the form looks like on a customer's phone.

Name Your WhatsApp Button

  • Button Text: Enter the text you want the customer to see on the WhatsApp button (e.g., "Schedule Delivery" or "Book Now").
Note: This is the text shown on the button in the chat. Keep it short and action-oriented so customers know exactly what happens when they tap it.

Create your Screens

First, we will create all the pages (screens) needed for your delivery booking form. Think of these as the steps your customer will take to schedule the delivery of their items.

The 3 screens we will build are:

  1. Contact: To get the customer's name and phone number.
  2. Address: To know where to deliver the items.
  3. Date & Time: To let the customer pick their preferred delivery schedule.

How to create them:

  • To make a new screen, click on the Flow Tab and click the + Add New Screen button.
  • A pop-up window will appear. Fill in the following:
    • Screen Title: Type the name of your first screen (e.g., "Contact").This name appears at the top of the form for the customer.
    • Layout Type: Leave this as Default.
  • Click Add. You should now see an empty form in the preview with your Screen Title at the top.
  • Repeat this process for creating each screen.
  • You can now see all your screens listed in the Flow Tab. If you accidentally added a screen in the wrong order, you don't need to delete it. You can simply drag and drop them to change the order your customer sees.
Note: In the video above, we are using a completed version of the form to show you how easy it is to rearrange your flow. Don't worry if your screen looks a bit different right now as we will be building it in the coming sections.

Setup the Contact Screen

This screen collects the customer's basic information. Since the customer already exists in your system from the pickup booking, their details may auto-populate, but this step ensures everything is up to date.

Add Information Fields

We will now add the necessary blocks to capture the customer's identity.

  • From the Flow Tab, click on the Contact Screen to start adding the contact information fields required.
  • In the Screen Tab, click + Add Block and select Text Input.
  • Once selected, the view on the left changes to the Block Tab. This is where you set up the field and set rules to it. Fill in the settings for the Name field as follows:
    • Input Data Field: From the dropdown list, select Customer Name. This tells the system to sync the customer with your database.
    • Label: By default, the label name follows the Input Data Field name. Rename this to something meaningful if needed. This is what the customer sees on the form when they fill up their name.
    • Required: Select Required. A red asterisk (*) will appear, showing it is a must-fill field.
  • To add a new field, head back to the Screen Tab and click on + Add Block.

Repeat the same steps for the Phone number and Email fields:

  1. Select Text Input.
  2. Notice the view switch to the Block Tab again.
  3. Set the Input Data Field to Customer phone number (for Phone number field) and Customer email (for Email field).
  4. Update the Label to a meaningful one such as "Phone number" and "Email" so they are clear for your customers.
  5. Set the Required field to Always Required.
  • Refer to the video below to see a demonstration of how to add these fields for your reference.

Configure the Progress Button

You may notice that there is currently no button for the customer to click to go to the next page. We need to add a Footer Action to link this screen to the next one.

Under the Screen Tab, do the following:

  • Footer Action: Select Save Customer. This ensures that all the info you just collected (Name, Phone number, Email) is saved to your customer database.
  • Next Screen: Leave this as it is. The system automatically knows to go to the next screen you created.
  • Action Label: The name of the button that leads to the next page. Leave as default to show "Continue" for your customers or give it a meaningful name.

Setup the Address Screen

Now we will configure where the customer wants their items delivered to. This may be the same address as the pickup, or somewhere different, so it is important to confirm this with the customer.

Add Information Fields

We will add a mix of input fields and smart links to make entering a delivery address easy for your customers.

  • From the Flow Tab, select your Address Screen.

Postal Code: We use this to store the delivery location in the database so returning customers don't have to re-type it.

  • From Screen Tab, click + Add BlockText Input.
  • Input Data Field: Select Address Postal Code.
  • Label: Give it a meaningful name like "Postal code" or leave it by default.
  • Required: Select Always Required.

Get Address Link: This allows the customer to simply tap a link to auto-fill their street name from the postal code, which prevents typos and speeds up the booking.

  • From Screen Tab, click + Add BlockEmbedded Link.
  • Link Text: Give it a meaningful name such as "Find address by postal code" or something similar that tells the customer what happens when they tap it.
  • Action Type: Select Fetch Address. This pulls the street name based on the postal code entered above.

Address Type (Optional): Knowing the building type helps your delivery team know what to expect — whether they need to clear condo security, find a specific landed house, or head to a particular HDB block. Depending on your country or local operations, building types like HDB, Condo, Landed, or Office may be essential for planning your delivery route.

  • Since this is a custom data field, you will need to set this up first. Head over to Configuring Data Fields to create a new data field. Create a new field called "Address Type" and choose Options as the Data Type. Use the + Add option button to add the options, such as: HDB, Condo, Landed, Office.
Already set up? If you created the Address Type data field while setting up your Home Pickup Booking, you can skip the step below and go straight to adding the Dropdown field. The same data field will be available for you to select.
  • From Screen Tab, click + Add BlockDropdown.
    • Input Data Field: Select your custom Address Type field.
    • Label: Leave as "Address Type" or a name of your choice.
    • Default Value: Set this to your most common type (e.g., "HDB") or leave it blank.
    • Required: Select Always Required.
    • Visibility: Select Conditional. In the pop-up window, set When to Address geo location. This ensures the field only appears once a valid address is generated from the link. Set Operator to Has Value since we want this field to appear when the system successfully finds the location. Click on OK when done.

Address Line 1: This captures the main street and building name generated from the postal code link.

  • From Screen Tab, click + Add BlockText Area.
  • Input Data Field: Select Address Line 1.
  • Label: Leave as "Address Line 1" or a name of your choice.
  • Required: Select Always Required.

Address Line 2 (Optional): This is for specific details like unit numbers or floor levels. Your delivery driver will need this to find the exact door, especially in high-rise buildings. You might want to require this for HDB, Condo and Office addresses but hide it for Landed properties to keep the form clean.

  • From Screen Tab, click + Add Block Text Input.
  • Input Data Field: Select Address Line 2.
  • Label: Leave as "Address Line 2" or a name of your choice.
  • Required & Visibility: To filter this based on the address type we set up earlier, set both to Conditional. From the pop-up window, set When to Address Type, Operator to Is Any Of, and Value to HDB, Condo, and Office. (This hides the field for "Landed" selections since landed houses typically don't have unit numbers). Click OK when done.

Configure the Progress Button

Finally, specify what happens after the customer completes their delivery address.

Under the Screen Tab, do the following:

  • Footer Action: Select Save Address. This remembers the customer's delivery address so it can auto-populate the next time they schedule a delivery.
  • Next Screen & Action Label: Leave these as they are to let the system handle the transition.

Setup the Date & Time Screen

This is the final step where your customer picks when they want their items delivered. Getting this right ensures your delivery team can manage their schedule and the customer knows exactly when to expect their items back.

Add Information Fields

From the Flow Tab, select your Date & Time screen.

Delivery date: This allows the customer to see the available delivery dates and choose one that works for them.

  • From the Screen Tab, click + Add BlockDropdown.
  • Input Data Field: Select Delivery date.
  • Label: Leave it as default or give it a meaningful name like "Delivery date."
  • Required: Select Always Required.

Delivery time: Once the date is chosen, we want to list the available time slots so the customer can pick a specific delivery window that fits their schedule.

  • From the Screen Tab, click + Add BlockRadio Buttons.
  • Input Data Field: Select Delivery time.
  • Label: Leave it as default or give it a meaningful name like "Delivery time."
  • Required: Select Always Required.

Refresh Link: This allows the customer to update the screen to see the most current available delivery slots. This is useful if a slot was just taken by another customer while they were filling out the form.

  • From the Screen Tab, click + Add BlockEmbedded Link.
  • Link Text: Name this "Refresh" or any name that tells the customer this will update the available dates and times when they tap it.
  • Action Type: Select Fetch Booking Options. This will update the Delivery date and Delivery time fields to show the latest availability.

Configure the Progress Button

Now we set the final action to complete the delivery booking.

Under the Screen Tab, do the following:

  • Footer Action: Select Create Job.
    • Why? As this is the final step, when the customer taps this button, the system creates a new delivery job on the existing order. Your team will be notified that a delivery has been scheduled, complete with the customer's delivery address and preferred time.
    • How to find your jobs: You can find the delivery job by heading to the top navigation bar, clicking Sales, and selecting Orders. Open the relevant order and you will see the delivery job linked to it.
  • Action Label: The system will show "Complete" by default, but you can change this to something like "Book Now" or "Schedule Delivery" to make it clear to the customer.

Publish Your Mini App

Once you are happy with how your booking form looks in the preview, you need to Publish it. This makes the form live so your customers can start scheduling their deliveries on WhatsApp.

  1. Click the Publish Button: Look at the top right corner of the editor and click the Publish button.
  1. Confirm the Action: A pop-up window will appear asking you to confirm. Click the Publish button inside that window again.
  1. Check the Status: After a few moments, the system will refresh and take you back to the main Mini Apps page.
  • Look for your Mini App in the list. You should now see a status that says Published.

What does this mean? When your customer's items are ready to be returned, your team can send them this Mini App via WhatsApp to schedule the delivery. Every booking will automatically update the existing order with the delivery details, keeping pickup and delivery information together in one place.

To get started, check out the guide: Sending Your Mini Apps to Customers →

Give feedback

Sending Your Mini Apps to Customers

Up next

Sending Your Mini Apps to Customers

Three ways to send your booking forms to customers through WhatsApp — while chatting, with a saved shortcut, or to customers who haven't messaged you recently.

Read more