The Goodtill POS application allows third parties to integrate their own customer loyalty system by providing API endpoints where the Goodtill can fetch customer and rewards data which can be used by the POS application.
The third party system would be responsible for maintaining the customer list, points assigned to each customer and list of available rewards.
When a sale is assigned to a customer originating from the third party system, Goodtill will also create a record of this customer allowing the POS to link multiple sales to the customer in the Goodtill backoffice. The customer ID provided by the third party will be stored in the Goodtill customer account_code field for reconciliation when returning sales to the third party upon completion.
POS must be online to fetch customers
In the default configuration, all customers are synced from the backoffice to the POS every 30 seconds. If the POS is offline when a sale is made a customer can still be assigned to the sale because the customer list has been synced to the POS.When Third Party Loyalty is enabled, the POS application will always connect to the backoffice to perform customer lookup in the third party system, therefore it will no longer be possible to assign a customer if the POS does not have an internet connection.
This data would be used on the POS as follows:
- When assigning a sale on the POS, on the operator would either:
- Search by name. This would call the third party API and pass in the search string, allowing the third party to return a list of matching customers.
- Scan a QR code. This would call the third party API and pass in the raw string data decoded from a QR code provided by the third party. The QR code could be shown in a mobile application or printed on a membership card. This would allow the third party to return the matching customer.
- When tapping the customer assigned to the sale, the number of loyalty points and list of available rewards would be returned by the third party for display in the application.
- When a POS sale is completed and synced with our backend, the backend would push a summary of the sale including, total amount spent and list of rewards redeemed, to the third party. This allows the third party to add and subtract loyalty points from their customer record as necessary, using whichever logic they wish (eg awarding points based on amount spent, certain products etc).
Currently the Goodtill POS app offers two types of rewards:
- Money off – A flat amount taken off the total for the sale.
- Free product – Any one of several selected products to be added to the sale at no cost. Products are selected by providing a list of list of SKUs.
If more complex rules are required, you can configure a money off reward without a monetary value and the POS operator can manually apply a sale or product discount. This allows the points to be deducated and reward usage recorded when the sale is returned.
If there is a need to conditionally increase the customers points, this can be achieved by configuring a free product with a specific SKU and adding that product to the sale when points should be awarded. When receiving the sale data, you can then reward the user points if a sale item with that product SKU is present in the sale.
All requests sent to the Third Party API will contain a Goodtill-Verification-Token header. The content will be a key displayed in the backoffice which the third party can check to verify that the request has originated from Goodtill.
Management of customers will have the following differences when Third Party Loyalty is enabled:
- When adding customers in the backoffice, the customer must also exist in the third party system and you must set the “Account Code” field to to the ID in the third party system.
- When viewing customers in the backoffice, you will not be able to perform points adjustments (this must be done in your own loyalty system instead).
- When viewing customers in the backoffice, you will not be able to view or export customer loyalty points (this must be done in your own loyalty system). You will only be able to view the list of rewards that the customer has redeemed.
Documentation for the endpoints the third party would need to implement is available here:
In order to setup Third Party Loyalty:
- Ensure that the loyalty module is enabled on your Goodtill account.
- Go to the Third Party Loyalty integration page in the Backoffice and enter the URL for the webservice, along with a name for the integration.
- Go to the Loyalty settings page in the Backoffice and set the provider to “Third Party”.