Skip to main content

Redo Appointments data model

When a guest is not entirely pleased with how a service is performed, the business can offer to perform either the same service or another service for free or at a discounted price. Zenoti’s Redo Appointment functionality enables a service to be marked as a redo service which results in a reversal of the initial service provider’s commission.

While the Appointments data source brings in both redo and re-done appointments, it does not provide the mapping between the two. This data source bridges that gap. It brings in redo appointments, re-done appointments, the mapping between them, as well as additional details about each appointment.

Example use cases

  • Number of redo appointments

  • Total discount given on redo appointments

  • Commission factors for employees for redo appointments

Granularity of the data

At the most granular level, we have a unique identifier ‘appointment id’ for each appointment. Further, if a single appointment has segments or was serviced by multiple employees, the rows get split out to accommodate this granularity. In the example below, a 45-min massage is a redo appointment with appointment id 'abc123'. Mary serviced this guest and a discount of $70 was provided for this massage. The source appointment for this redo is a 30-min massage with appointment id 'abc'. This original appointment was serviced by two employees - Sarah and Anna.

httpreportszenoticomwp-contentuploads202008redoappointments_datamodel_granularityjpg.jpeg

Note

Say an appointment is created and later a redo appointment is also created. This data source will have two records corresponding to the redone (source) appointment and redo appointment. If the redo appointment gets deleted/voided later, that record gets deleted from the data source, but the redone (source) appointment remains. However, if the redone (source) appointment gets deleted/voided while the redo appointment is valid, the redone (source) appointment record does NOT get deleted from the data source. This record is maintained to show the details of the source appointment. If the redone (source) appointment gets deleted/voided after the redo appointment is deleted/voided, the redone (source) appointment record also gets deleted from the data source.

Group

Description

Field

New Definition

Examples/Notes

Data Type

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

organization name

The formal name of the organization.

'Massage Spa Express' is the formal name of an organization.

varchar(512)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

organization account name

The domain name of the organization in Zenoti.

If you use this URL to log in to Zenoti 'https://massagespa.zenoti.com', then "massagespa" is your account name. The formal name and domain name may be different.

varchar(256)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

center name

The center where the appointment is scheduled to be serviced.

varchar(128)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

zone name

The zone to which the center belongs.

varchar(800)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

center city

The city where the center is located.

varchar(128)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

center zip

The zipcode of the center's location.

varchar(32)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

center state name

The state where the center is located.

varchar(4096)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

country name

The country where the center is located.

varchar(4096)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

operating center

A flag that indicates whether the center is operational. - True: Indicates operational - False: Indicates not operational

boolean

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

center code

A unique identifier for the center.

varchar(40)

Center, Zone, Organization

An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center where the appointment is scheduled to be serviced.

minutes to add

The number of minutes that need to be added to UTC time to get the current time at the center. Timestamps that are generated by Tableau [E.g. if you use filters such as Today, Tomorrow, etc.] are in UTC, hence this field is needed to arrive at the center time. This is not needed for timestamps that are in the datasource directly, they are already in the center time zone.

int

Appointment

This group of fields describes the attributes of the appointment.

appointment id

A unique identifier for each appointment. If the appointment is a segment, this is the segment id.

varchar(36)

Appointment

This group of fields describes the attributes of the appointment.

appointment pk

A unique identifier for each appointment. If the appointment is a segment, this is the segment pk. This is generated within Analytics.

int

Appointment

This group of fields describes the attributes of the appointment.

fact appointment redo wid

Unique identifier for each appointment. This is generated in analytics, it does not exist in the core system.

bigint

Appointment

This group of fields describes the attributes of the appointment.

invoice id

A unique identifier for the invoice. It is unique within the organization.

varchar(36)

Appointment

This group of fields describes the attributes of the appointment.

InvoiceNo

Invoice number that helps in identifying and tracking the invoice.

Appointment

This group of fields describes the attributes of the appointment.

invoice item id

A unique identifier for each line item within the invoice.

varchar(36)

Appointment

This group of fields describes the attributes of the appointment.

is redo

A flag indicating whether the corresponding appointment is a redo appointment or not. - True: Indicates that the appointment is a redo appointment - False: Indicates that the appointment is not a redo appointment

boolean

Appointment

This group of fields describes the attributes of the appointment.

source appointment id

If the appointment is a redo appointment, this field is filled. This field populates the appointment id of the source appointment corresponding to the redo appointment.

varchar(36)

Appointment

This group of fields describes the attributes of the appointment.

source appointment pk

If the appointment is a redo appointment, this field is filled. This field populates the appointment pk of the source appointment corresponding to the redo appointment.

int

Appointment

This group of fields describes the attributes of the appointment.

is segment

A flag indicating whether the corresponding appointment is a segment or not. - True: Indicates that the appointment is a segment - False: Indicates that the appointment is not a segment

boolean

Appointment

This group of fields describes the attributes of the appointment.

parent appointment id

If the appointment is a segment, this field is filled. This field populates the appointment id of the parent appointment corresponding to the segment.

varchar(36)

Appointment

This group of fields describes the attributes of the appointment.

parent appointment pk

If the appointment is a segment, this field is filled. This field populates the appointment pk of the parent appointment corresponding to the segment.

int

Appointment

This group of fields describes the attributes of the appointment.

item name

The name of the service in the appointment.

varchar(512)

Appointment

This group of fields describes the attributes of the appointment.

item code

The unique code associated with that service.

varchar(256)

Appointment

This group of fields describes the attributes of the appointment.

businessunit

The business unit to which the service belongs.

varchar(65535)

Appointment

This group of fields describes the attributes of the appointment.

is item inactive

A flag indicating whether the service is inactive. A service is considered inactive if it has been removed from the system. - True: Indicates that the service is inactive - False: Indicates that the service is active

boolean

Appointment

This group of fields describes the attributes of the appointment.

item tags

The tags associated with the service.

Tags can be created for a service in the Organization view. These will be comma separated values if there are multiple tags.

varchar(65535)

Appointment

This group of fields describes the attributes of the appointment.

appointment status

The current status of the appointment. Possible values: - Cancel - Checkin - Closed - Confirmed - Noshow - Open

varchar(100)

Appointment

This group of fields describes the attributes of the appointment.

start time in center

The date and time at which the appointment is scheduled to start.

If any changes are made to the appointment start time, this column will have the latest start time of the appointment.

timestamp

Appointment

This group of fields describes the attributes of the appointment.

end time in center

The date and time at which the appointment is scheduled to end.

If any changes are made to the appointment end time, this column will have the latest end time of the appointment.

timestamp

Appointment

This group of fields describes the attributes of the appointment.

invoice status

This field indicates whether the invoice is open or closed.

Possible values: Closed Invoice Open Invoice

varchar(100)

Appointment

This group of fields describes the attributes of the appointment.

invoice discount

The total discount applied to the corresponding invoice item id.

float

Employee

This group of fields describes the attributes of the appointment.

employee first name

First name of the employee as per employee profile.

varchar(160)

Employee

This group of fields describes the attributes of the appointment.

employee last name

Last name of the employee as per employee profile.

varchar(256)

Employee

This group of fields describes the attributes of the appointment.

employee middle name

Middle name of the employee as per employee profile.

varchar(128)

Employee

This group of fields describes the attributes of the appointment.

employee mobile phone

Mobile number of the employee as per employee profile.

varchar(64)

Employee

This group of fields describes the attributes of the appointment.

employee - code

Unique code of the employee. This is the code taken from the employee's profile in Zenoti.

varchar(128)

Employee

This group of fields describes the attributes of the appointment.

employee gender

The gender of the employee.

Possible values: - Male - Female

varchar(14)

Employee

This group of fields describes the attributes of the appointment.

employee job name

Job name associated with the employee.

Therapist, Manager, Aesthetician etc.

varchar(1020)

Employee

This group of fields describes the attributes of the appointment.

employee job code

Unique code associated with the Job of the employee.

varchar(2000)

Employee

This group of fields describes the attributes of the appointment.

is employee inactive

A flag indicating whether the employee is inactive. An employee is considered inactive if they have been removed from the system. - True: Employee is inactive - False: Employee is active

boolean

Employee

This group of fields describes the attributes of the appointment.

employee tags

Tags associated with the employee

varchar(65535)

Employee

This group of fields describes the attributes of the appointment.

employee start date

The date on which the corresponding employee started working for the organization.

timestamp

Employee

This group of fields describes the attributes of the appointment.

employee last date

The date on which the corresponding employee stopped working for the organization.

timestamp

Employee

This group of fields describes the attributes of the appointment.

is primary employee

A flag indicating whether the corresponding employee is the primary employee to service the guest.

boolean

Employee

This group of fields describes the attributes of the appointment.

commission factor

The commission factor or adjustment applicable for the corresponding employee. For example, if this is 200%, the employee earns double the configured commission. If this is 50%, the employee earns half the configured commission.

float