Rescheduling appointments in the client portal

Nicolas Audet
Nicolas Audet
  • Updated

Overview

Customers can reschedule their own technician appointments from the client portal. They open the appointment, pick a new date and time from your live technician availability, and the new appointment is confirmed right away. No dispatcher has to step in.

Self-serve rescheduling uses auto-assign to find a technician for the new time. When auto-assign is not turned on for rescheduling, customers can still send you a reschedule request from the portal, and your team assigns it.

This article explains how rescheduling works, how to turn it on, how to set the rescheduling timeframe, when a customer cannot reschedule, and how to adjust your confirmation messages so customers know their appointment was moved.

portal-view.png

 

How rescheduling works

Two settings decide what a customer can do with an existing appointment in the client portal.

Settings What the customer can do
Enable reschedule is off The customer cannot reschedule from the portal.
Enable reschedule is on, auto-assign Reschedule is off The customer submits a reschedule request with their preferred time slots. Your team assigns the new appointment.
Enable reschedule is on, auto-assign Reschedule is on The customer picks a new time slot and auto-assign books a technician immediately. This is self-serve rescheduling.

A few rules apply to every reschedule:

  1. An appointment can only move to a later time slot, never to an earlier one.
  2. Customers must be signed in to the client portal to reschedule.
  3. Customers cannot cancel an appointment from the client portal.
  4. The available slots follow the same rules as a new booking: your scheduling windows, technician availability, and the work type's qualifications.

 

Turning on self-serve rescheduling

Rescheduling settings can only be changed by users with the Settings > Appointments > Edit permission enabled.

Self-serve rescheduling needs both settings below. Turn on rescheduling first: the auto-assign Reschedule option stays off until Enable reschedule is selected.

A. Allow customers to reschedule

  1. Go to Settings > Appointments.
  2. Open the Customers tab.
  3. Under Reschedule, select Enable reschedule.
  4. Set the Rescheduling timeframe. See Setting the rescheduling timeframe.
  5. Click Save.
     

    customers-tab.png

B. Let auto-assign book the new time

  1. In Settings > Appointments, open the Assignment tab.
  2. Select Enable auto-assign if it is not already on.
  3. Under Configure auto-assign, check Client Portal, then check Reschedule.

    Schedule and Reschedule are separate options. Schedule covers new appointments booked in the portal, Reschedule covers existing appointments being moved.

  4. Click Save.
     

    assignment-tab.png

For more on how auto-assign chooses a technician, see Workforce - Automatically assigning technicians.

 

Setting the rescheduling timeframe

The rescheduling timeframe limits when an appointment can be moved, and how far out it can go. It starts with the same values as your Scheduling timeframe, and you can change it separately.

Field What it controls
Minimum days before appointment How many days before the appointment the customer must reschedule. Once the appointment is closer than this, the customer can no longer move it from the portal.
Maximum days ahead How far out the customer can move the appointment, counted in days from the day they reschedule (not from the original appointment).

Keep in mind:

  1. Minimum days before appointment can be 0. Customers can then reschedule on the day of the appointment, to a later time slot that same day or another day.
  2. Minimum days before appointment must be lower than Maximum days ahead.
  3. Days are counted in the service address time zone, or in your appointment settings time zone when the address has none.

For example, with a minimum of 1 and a maximum of 30, a customer with an appointment on Friday can reschedule it until Thursday, and can pick any later slot up to 30 days from the day they reschedule.

 

When a customer cannot reschedule

Even with rescheduling turned on, the portal does not let a customer move an appointment in these cases:

Situation What the customer sees
The appointment is closer than the Minimum days before appointment A notice that the appointment is outside the rescheduling window, asking them to contact you.
The appointment is already further out than the Maximum days ahead The same notice. There is no later day left to move to.
The work order is in progress, or the technician has started the visit The same notice.
The work order is closed or completed Rescheduling is no longer offered for that appointment.
More than one technician is assigned to the work order The reschedule request form. Self-serve rescheduling does not apply, so your team assigns the new time.

 

Notifications sent after a reschedule

A rescheduled appointment triggers the same confirmation message as a first booking:

  • Work order auto-assigned when the customer rescheduled in the portal and auto-assign booked the technician.
  • Work order assigned to account when a dispatcher assigned the new time by hand.

The gaiia default versions of both messages now include a link to the client portal so customers can reschedule. If you use your own version of these messages, add that link and some rescheduling wording yourself. Your existing confirmation emails are the easiest way to tell customers they can reschedule.

 

Customizing confirmation messages with isRescheduled

Because a reschedule sends the regular confirmation message, a customer may read it as a second, new appointment. The workOrder.isRescheduled variable lets you change the wording when the appointment was moved.

  • true when the work order already had a technician assigned and was assigned again. This covers a reschedule from the client portal, a reschedule by a dispatcher, and a dispatcher swapping the technician on the same time slot.
  • false for a first booking, and for an assignment that follows a manual unassign.

If you do not use the variable, nothing changes. Your templates keep working exactly as before.

Where the variable is available

workOrder.isRescheduled is available in the Work order auto-assigned and Work order assigned to account system messages, in the email subject, any email text block, and the SMS. It is not available in other system messages, such as Technician on the way.

If you customize one of the two messages, customize the other one the same way. Customers who reschedule in the portal receive Work order auto-assigned. Customers whose appointment a dispatcher moved receive Work order assigned to account.

Writing the condition

Use an if / else block to show one text or the other:

{% if workOrder.isRescheduled %}Text shown when rescheduled{% else %}Text shown for a first booking{% endif %}
  1. Always include the else part. Without it, first bookings show an empty space.
  2. Always close with endif. A missing endif stops the whole template from rendering, and the preview shows an error.
  3. Other variables, such as tenant.name or workOrder.date, work inside either part.
  4. Spell the variable exactly workOrder.isRescheduled, with a capital O and a capital R.

Adding it to your templates

  1. Go to Settings > Communication.
  2. Under System messages, open Work order auto-assigned.
  3. Pick the language to edit. If you have never customized this message, click Copy default email or Copy default SMS to start from the gaiia default.
  4. Edit the subject, text blocks or SMS. You can use the examples below.
  5. In the preview, switch the isRescheduled example value between true and false to check both versions.
  6. Click Save.
  7. Repeat steps 2 to 6 for Work order assigned to account, and for each language you support.

Examples

  • Email subject

    {% if workOrder.isRescheduled %}Appointment rescheduled successfully{% else %}Your technician appointment is confirmed{% endif %}

    Email heading

    {% if workOrder.isRescheduled %}Your appointment has been rescheduled!{% else %}Your technician appointment with {{tenant.name}} is confirmed.{% endif %}

    New appointment label above the date (shown only when rescheduled)

    {% if workOrder.isRescheduled %}<div style="color: #717171; font-size: 16px; font-weight: 600; line-height: 24px;">New appointment</div>{% endif %}<div>{{workOrder.date}}</div>

    SMS

    Your technician appointment with {{ tenant.name }} {% if workOrder.isRescheduled %}has been rescheduled to{% else %}is confirmed for{% endif %} {{ workOrder.date }}, from {{ workOrder.startTime }} - {{ workOrder.endTime }}.

A reschedule cannot send a completely different email. It uses the same system message as a first booking, and workOrder.isRescheduled changes the wording inside it.

 

Related to

Was this article helpful?

Have more questions? Submit a request