Maxxton offers integrated solutions with functionalities such as handling reservations, managing tasks with work orders, scheduling housekeeping, and managing owner statements along with the accommodation's energy bill. Additionally, you can easily and quickly handle your prices, promos, and offers, and automate all your important communication with guests for your vacation rentals.
The integration with Deployteq provides the ability for direct insight into this data, which can be used for segmentation and/or displayed directly in an email, SMS, or push notification.
Installation in the Store
Through the Store, you can easily activate the Maxxton integration, which will introduce a new menu item where the app can be configured.
The wizard consists of only one step, namely providing any financial data.
After confirming the wizard, a new data model is created and a new menu item becomes visible under the "Integrations" section, called "Maxxton". In this new section, the integration can be configured:
Configuration
Setting credentials
To start the configuration, an API account is required from Maxxton consisting of the following information:
Scope
The scope refers to a customer environment at Maxxton and can be requested from them. For example: deployteq
Client ID
This is the client ID of the API user
Client Secret
This is the client secret of the API user
Sandbox
This is a checkbox, and if checked, it refers to a test environment.
Start with a sandbox
We recommend always setting up the integration first in a test environment, both in Deployteq and a Maxxton test environment.
Once all the information has been filled in, it can be tested and saved immediately;
After saving this information, two additional tabs will become visible to configure which data should be retrieved from Maxxton and how this data should be processed within Deployteq.
We have already applied some default settings that can be expanded by the user, as further described below. Additionally, a "Start with Maxxton" campaign object has been made available, and a default data model has been created for Maxxton data. These can be used for building an email and/or profile.
Entity to endpoint mapping
In this tab, you can specify which tables should be retrieved from Maxxton and to which endpoint within Deployteq they should be linked. It also shows when the last synchronization of this data took place;
By default, this tab is empty, but with the plus button, a new link can easily be made between the data from Maxxton and a Deployteq endpoint.
The following entities are available for linking:
ACCOMMODATIONTYPE
This entity contains all accommodations that have been added within Maxxton per resort.
CUSTOMER
This entity contains all new and modified customer records.
DOORLOCK
This entity contains the door locks of the booked accommodations, so that direct access to the accommodation can be provided in the arrival email.
RESERVATION
All new and modified bookings.
RESORT
This entity contains all resorts.
SUBJECT
Subject for the various accommodation types.
UNIT
All accommodations booked by a customer.
Resorts Diagram
Maxxton provides the following diagram to make the relationships between resorts, accommodations, and units clear:
Endpoints & layouts
Managing endpoints
By default, a number of endpoints are predefined, this setup is similar to the Webhook app. This app makes it very easy to create a mapping for the various entities retrieved from the Maxxton API and provides insight into the received datasets.
Below is an overview of the default endpoints, which can be managed and deleted;
With the plus button at the bottom, a new mapping can be created to synchronize other data from Hubspot;
Once an endpoint is linked to an entity, as described in 'Entity to endpoint mapping', the data from this entity will be retrieved every 10 minutes. Once the first dataset is received by the Deployteq endpoint, it can be linked to system fields and/or the data model.
When you edit one of the mappings, you will see the data that was last sent from Maxxton. The fields that have already been mapped to Deployteq fields will have the connected field displayed next to them in the 'Connected fields' column. See the example below of the accommodation details:
Linking a field
If you want to modify a connected field or provide it with a field link, select the field and click the plus button.
Choosing a database field
You will then get an overview of the Deployteq fields on the right side, which can be selected for field linking;
Object: _event
In the mapping, the _event object is defined, which indicates the action that has taken place on the entity: ADD, UPDATE, MERGE, DELETE.
In the case of a DELETE or MERGE, it is advisable to set up a campaign to remove the old customer record. This prevents duplicate records in your brand.
In the overview, customer fields can be linked under the folder "customer". Of course, you can also link your own customer option fields, such as language or source. You can find these under the folder 'customer option':
Gender
The gender field expects the following values: MAN, WOMAN, FAMILY, NONBINARY, or UNKNOWN.
From Maxxton, the following values are provided and translated using a translation plugin:
Opt-in
The opt-in fields expect the following values: Y (Yes) or N (No)
It is also possible to store data in the data model, which can be found under the folder "data model." When this is opened, all tables from the model will be visible, and they can be expanded to link the correct column in the data model table:
Data model select: Yes/No
When there is a Yes/No column defined in the data model, Deployteq expects the following values: 1 (Yes) or 0 (No)
Then, several enrichment options are available, which are intended to retrieve additional information. These enrichments do not relate to the Maxxton App.
Next, a layout can be chosen; see below for more information about managing your layouts under the heading: Managing layouts.
Finally, you can also link it to a campaign environment field; this data will not be stored with the customer but made available in the campaign for determining the correct flow or in the email confirmation. You can specify the name of this environment in the options frame.
When you receive data from an external system, the deduplication options are extremely important! Make sure you always have a deduplication key set for the customer data and any data model data. By default, the email address is marked as a unique field in the Maxxton integration. This can be selected in the second frame on the right under options;
Don't forget to save all changes at the top of the menu; otherwise, all changes will be lost.
Deleted or Renamed Fields
In the event that a data model table or column has been renamed or deleted, this will be shown in the mapping. The linked field will then be displayed in red:
View Logs
If you want insight into the datasets that have been retrieved from Maxxton and offered to the endpoints, what details have been saved, or which campaigns have been triggered, you can view the logs. When you edit an endpoint, you can choose 'View logs' at the top of the menu;
When you enter the logs from the main settings screen, you will see all received requests in chronological order. For each line, it shows whether the data was processed successfully, whether a campaign was started, any customer with the corresponding email address, and the option to save the data again or restart the campaign;
Searching in the Log
You can also search in the log overview by hovering your mouse over the column headers and opening the menu under the black arrow:
With the (information) icon, it is possible to view the data from the log line and gain more insight into which data has been processed:
Managing Layouts
A layout contains a webhook mapping that can be applied to every endpoint. Suppose there are multiple endpoints where the same structure of customer data is offered, you can configure this per endpoint or use a layout. The advantage of this is that if the structure changes, you only need to adjust the layout and not each individual endpoint.
You can create a new layout with the plus sign or directly from a webhook mapping;
Give the layout a name:
This opens a blank mapping, so there are no fields to link directly. The layout requires that a request first comes in on the layout, which is possible by including a layout in an existing endpoint. In the Maxxton mapping, this could be done on the "customer" element in the getreservationdetails endpoint:
After receiving the first dataset, the data can be linked just like in an endpoint;
After saving the mapping, it will be applied to every request received by this layout.
Campaigns
For the Maxxton integration, campaigns can be set up that are executed immediately after receiving data at an endpoint or based on a profile derived from the Maxxton data in the data model. This can be achieved by using the "Start at Maxxton" campaign object at the beginning of your flow.
In this object, the desired endpoint can be selected, and the defined campaign environments will be made visible immediately;
Triggered Campaigns
In this example, we want to act when the getcustomers endpoint is fed with a MERGE or DELETE event from Maxxton; in that case, customer data needs to be merged or deleted. The goal is to transfer data from the old customer record, which is only known in Deployteq, to the new leading customer record during a MERGE event. For example, to save the historical bounce count and opt-in as campaign options in the leading record for support purposes.
Our campaign starts with a "Start at Maxxton" object, for which we choose the endpoint "getcustomers." The data below will be sent in the _event element at the getcustomers endpoint;
Merge Event
"_event": {
"eventId": 1137460,
"entityAction": "MERGE",
"entityId": 1234,
"entityType": "CUSTOMER",
"oldEntityId": 5678,
"eventTimestamp": "2023-01-15T23:48:23.3Z"
} copy
DELETE verzoek
"_event": {
"eventId": 1137461,
"entityAction": "DELETE",
"entityId": 1234,
"entityType": "CUSTOMER",
"oldEntityId": "",
"eventTimestamp": "2023-01-15T23:48:23.3Z"
} copy
Toelichting
"_event": {
"eventId": <unieke ID van het event>
"entityAction": <Het event: ADD/UPDATE/DELETE/MERGE>
"entityId": <Het leidende klantnummer van Maxxton>
"entityType": <Entiteit van Maxxton: CUSTOMER/RESERVATION>
"oldEntityId": <Het oude klantnummer van Maxxton, alleen gevuld bij een MERGE>
"eventTimestamp": <Datum/tijd van het event>
} copy
The mapping in the Maxxton app looks as follows, where all event fields are linked as campaign environment fields;
If the "Start at Maxxton" object in the campaign has chosen the endpoint "getcustomers," we can immediately see the _event data that has been linked above:
Next, the condition object must determine whether it is a MERGE or DELETE event;
In the first flow, we want to respond to the MERGE event and need the oldEntityId to retrieve the data of the customer that is being removed in Deployteq. We can look this up in the campaign using the "Lookup Customer" object:
We can then continue the flow and call a webhook with the HTTP request object, sending the data from the old record to a webhook for processing into the leading record. In this example, we chose to create a webhook with a bearer token;
Define a Webhook
Configure the HTTP Request Object
Did you know?
Did you know you can also use Smarty in the HTTP request object? You can use this to enrich data, for example, to add the already existing bounce count (from previous merges) to the current bounce count in this campaign. This way, you gain even better insight into deliverability at the customer level:
In the configuration of the HTTP request object, the data of the webhook is included, and the customer fields that need to be transferred are selected. It is also important to add the Maxxton leading customer number to the object, as the webhook can use this to look up the leading record again.
Once the first data is received, the mapping can be created in the webhook, where the data can be saved in campaign option fields, for example;
In the DELETE flow, it can be chosen to delete the old record directly:
Campaigns Based on a Profile
The data in Deployteq is refreshed every 10 minutes and stored in the data model. This data can be used to send a confirmation email for the booking, a travel email a few days before arrival, a review email, etc.
In the example below, bookings that are arriving tomorrow are checked daily, and these will receive an email with all the important information regarding their arrival:
See the example profile below, where the correct bookings are first selected based on the arrival date and booking status. For these bookings, it is checked whether the records are emailable and that there are no duplicate email addresses in the selection:
The Right Context
In the profile above, the context is important; in this case, it is set to "MaxxtonReservations," which ensures that the profile shows how many customer records (A) and how many reservations (B) a condition yields;
This also ensures that in the email sending, all reservations per customer are available and can be displayed.
When setting up the email content, the reservation with all fields from the data model can be easily added; just make sure to select "use data from selection." This ensures that only the booking details are shown based on the results from the profile:
This ultimately generates a table using Smarty that you can fully style yourself:
Setting Up HTML
Contact our Campaign Services team to set up or design your (travel) email via 030-698 80 80.
Please log in or register to submit a comment.