---
title: "Contactless Self-Registration"
canonical: "https://red-ant-documentation.refined.site/space/RET/553385997/Contactless%20Self-Registration"
format: markdown
---
> Macro (toc)

## Overview

We’re introducing a powerful new feature that streamlines the customer registration process and enhances the customer's shopping experience. This feature enables sales associates to offer customers a convenient way to self-register themselves, eliminating the need for handling the sales associate's device. 

Here's how it works:

1. Sales associate accesses unique in-app QR code
2. Customer scans code using their device
3. The customer is redirected to the public-facing, self-registration page
4. The customers enters their required details and submits the form
5. Sales associate is able to look up the newly registered customer within RetailOS

### Feature Benefits

This feature provides several benefits to both the customer and the retailer: 

**Convenience**: Self-registration offers customers the convenience of quickly and easily entering their information without having to wait in line or fill out paper forms. They can do this at their own pace, making the process more comfortable for them.

**Time Efficiency**: For both customers and sales associates, self-registration reduces the time spent on administrative tasks. It streamlines the registration process and allows sales associates to focus on providing better service and assistance to customers.

**Reduced Errors**: Manual data entry can lead to errors, but when customers enter their information themselves, the chances of inaccuracies are minimised. This ensures that the data collected is more reliable and reduces the need for later corrections.

**Data Security**: Customers may feel more secure when inputting their personal information directly into their own device, as they have control over their data. This can help build trust between the customer and the business.

**Contactless Interaction**: Especially in a post-pandemic world, contactless options are valued by customers. Self-registration eliminates the need for customers and sales associates to exchange pens and paper, reducing physical contact.

**Language Preference**: Customers can view the registration page in their preferred language. This ensures that the registration process is accessible and comfortable for a diverse range of customers, enhancing their overall experience and satisfaction.

## 1. Accessing the QR Code

From the customer look-up screen, sales associates can generate a QR code, which is embedded with a unique, one-time-use registration link.

> ℹ️ The QR code conforms to industry standards and can be scanned by commonly used QR code reader applications on customers devices, including smartphones and tablets.


![Screenshot 2024-04-29 at 09.36.45.png](media://df4d99f1-5ae8-4ea4-a8bb-dce045dc9769)

![Screenshot 2024-01-18 at 13.26.37.png](media://a27fff04-83e3-4c09-ab12-fa7cc01ca074)

> 📝 The option to generate the ‘Self-Register’ QR code is available from the customer look-up screen when initiated from:
> 📝 
> 📝 - The ‘Customers’ app
> 📝 - Selecting ‘Checkout’ from the side basket (assuming a customer isn’t already associated with the basket)
> 📝 - Selecting ‘Email Basket’ from the side basket (assuming a customer isn’t already associated with the basket)
> 📝 - Starting an ad-hoc consultation from the Appointments Dashboard
> 📝 - Creating/scheduling an appointment
> 📝 
> 📝 Sales associates can also generate the ‘Self-Register’ QR Code from the Assisted Registration form.

### Static, printed QR code

We understand that some retailers may prefer to use static, printed QR codes in their stores for customer self-registration, especially during busy periods.

In addition to the dynamically generated QR Code, our feature also supports the scanning of static QR codes using a URL location parameter mechanism. This alternative approach provides flexibility for retailers to use QR codes with fixed locations while still enabling convenient customer self-registration. 

> ℹ️ This location parameter can specify which store location the customer is registering from.
> ℹ️ 
> ℹ️ Example URL format: `https://your-registration-page.com/register?location=example_store_name`
> ℹ️ 
> ℹ️ The self-registration page validates the location parameter to ensure it matches a legitimate store within the database. If the locate parameter is invalid the customer will be presented with an error informing them that the link is invalid and encourages them to speak with a sales associate.

> ⚠️ It is the responsibility of the retailer to generate, print and display the static QR code within each of its stores. To generated the static QR codes for each store the steps are:
> ⚠️ 
> ⚠️ - Copy the registration page URL for a store (see above)
> ⚠️ - Use a free online QR generator (e.g. [QR.io](http://qr.io/)) and paste the URL into the 'Submit URL' field
> ⚠️ - This will generate a QR code with the registration URL embedded into it
> ⚠️ - Download the QR code, print and display in-store
> ⚠️ 
> ⚠️ These steps will need to be repeated for each store.

## 2. Scanning the QR Code

Using their device’s built-in camera, the customer can scan the QR code which will automatically open their default browser, directing them to the public-facing self-registration page.

![Self Registration.mp4](media://fd5efcfb-c20f-49dd-85a7-4c3ad03f487b)

## 3. Registration page

The public-facing self-registration page has been thoughtfully designed in two distinct parts to provide a seamless and customised experience for your customers:

1. **Form Theme **- This component is responsible for the visual appearance of the self-registration page. It governs the branding elements, such as your logo, primary brand color, form background colour, and font choices
2. **Form Schema **- The form schema defines the structure and content of the registration form itself. It outlines the specific fields and information you wish to collect from your customers during the registration process.

### Form Theme

We've taken great care to ensure a consistent and customisable branding experience for both the customer registration form accessible by sales associates and the public-facing self-registration form. We believe that branding should remain seamless, whether initiated by store staff or customers themselves. Here's how we've achieved this:

**Brand Logo:**

Our self-registration form supports the inclusion of your brand's logo, just like the customer registration form used by sales associates. This means that when customers access the self-registration page, they'll immediately recognise and connect with your brand through its logo prominently displayed on the form.

**Primary Brand Color:**

The self-registration form seamlessly integrates your primary brand color, providing a visually cohesive experience. Whether accessed by sales associates or customers, the form's color scheme aligns with your brand's identity, reinforcing brand recognition.

**Customisable Form Background:**

Our platform allows you to set the form's background colour, ensuring it aligns with your brand's aesthetics. This consistency creates a polished and professional look across all customer touchpoints, whether initiated by staff or customers themselves.

**Consistent Font Usage:**

We maintain font consistency across both the customer registration form for sales associates and the self-registration form. This means that your brand's chosen font remains intact, promoting brand cohesion and recognition.

> ℹ️ The form theme is derived from the store (and therefore the brand) that the QR code was generated in.

![image](media://0828a628-ca43-406e-b3b4-89e4ab684175)

### Form Schema

The public-facing self-registration page is capable of supporting the same form schema as the customer registration form accessible by sales associates, ensuring consistency and data continuity.

However, we've also recognised the importance of adaptability. The self-registration form is not tightly coupled to the sales associate's registration form, allowing for the addition of extra fields that can be managed separately. This means that while both forms can share a core set of fields for consistency, you have the freedom to include additional data collection points on the self-registration form, tailoring it to gather specific information that may be unique to self-registered customers.

This approach strikes a balance between consistency and customisation, enabling your business to maintain data coherence across both registration processes while still accommodating any specialised data requirements that may arise. It empowers you to offer a seamless and personalised registration experience to your customers while staying responsive to evolving business needs.

### Link Expiration

The customer registration link which is embedded into the QR code is designed to expire after 24hrs or if the customer has already used the link to register themselves.

This is to enhance the security of the public-facing, self-registration page and prevent unauthorised access to RetailOS.

> ℹ️ The expiration timeframe can be configured based on the needs of the retailer.

#### Link expiration behaviour

- When the registration link expires, attempting to use the expired link should result in an error message indicating that the link is no longer valid
- If a customer has already successfully registered using the link, subsequent attempts to use the same link for registration should also result in an error message indicating that the link is no longer valid
- If a customer attempts to submit the registration form after the link has expired an error message indicating that the link is no longer valid should be displayed

> ⚠️ The concept of link expiration is not applicable to the static, printed QR codes. They do not rely on time-based link expiration, instead, they function based on the location parameter, which directs the customer to the correct self-registration page associated with the specific store.

### Language Selection

By default, the form will be translated into the language of the region where the store is located. However, if translations for other languages are available, customers will have the option to select an alternative language. 

## 3. Form Submission

Once the customer has completed all required registration fields correctly they will be able to submit the form. Upon submission, the customer will be displayed confirmation that their registration was successful.

In the event the customer already has an account they will be displayed an appropriate error message, instructing them to reach out to a sales associate.

> ℹ️ The confirmation message is configurable for each retailer.

> 📝 The following information will be recorded against the newly created customer record:
> 📝 
> 📝 - `registeredAtId` - the registering store ID
> 📝 - `registeredById` - the registering user ID (this information cannot be recorded for registrations that were created via a static, printed QR code)
> 📝 - `territoryId` - the registering territory ID (based on the region of the store)
> 📝 - `registrationSource` - used to differentiate customers who registered using the self-registration form (dynamic / static), from those who were registered in-app by the sales associates (assisted)

## 4. Look up Registered Customer

Once the customer has completed registration, the sales associate will be able to locate the newly registered customer record using the customer look-up functionality within RetailOS.

Depending on the type of interaction the sales associate is having with the customer, they can then associate them with the basket, order, or appointment.

![image](media://87d08cd8-5c00-4220-a892-3c11f87400d2)

## FAQs

<details>
<summary>Can the registration page be hosted on a custom domain?</summary>

By default the registration page will be hosted on a RetailOS domain, however, a custom domain can be configured for retailers who authorise RetailOS to serve the website on their domain.
</details>

<details>
<summary>Can the registration page be viewed in different languages?</summary>

Yes, by default, the form will be translated into the language of the region where the store is located. However, if translations for other languages are available, customers will have the option to select an alternative language.
</details>

<details>
<summary>Rate limiting for static, store QR Code self-registrations</summary>

**Q1. What is the rate limit for the public customer registration endpoint when a customer scans a static, store QR code?**

A1. The rate limit for the public customer registration endpoint, specifically used when a customer scans a static, printed store QR code, is set at 100 requests per minute, per IP address.

**Q2. Why is there a rate limit in place for this registration method?**

A2. The rate limit is implemented to ensure the stability, security, and optimal performance of our self-registration process via static, store QR codes. By limiting the number of registration requests to 100 per minute, we prevent potential misuse or excessive load on the registration system, which can impact the experience for both customers and retailers.

By limiting the number of requests within a short timeframe, we reduce the risk of unauthorised access and maintain data integrity while providing a secure self-registration experience.

**Q3. How does the rate limit affect the customer experience when using static, store QR codes?**

A3. The rate limit should have minimal impact on the customer experience. It is designed to maintain the integrity of the self-registration process and protect against any potential abuse while still allowing for a smooth and efficient registration experience.

**Q4. Is there a way for retailers to adjust the rate limit to suit their specific needs?**

A4. Yes, the rate limit can be configured based on the specific requirements and preferences of the retailer. Our system allows for flexibility in adjusting the rate limit to better align with your store's unique operational needs.

**Q5. What happens if a customer exceeds the rate limit for self-registration attempts within a minute?**

A5. If a customer exceeds the rate limit of 100 requests per minute, they may encounter an error message indicating that their registration failed. 

**Q6. Does the rate limit apply to token-based self-registration as well, or is it specific to the location parameter mechanism used with store QR codes?**

A6. The rate limit is specific to the public customer registration endpoint when a customer scans a static, store QR code that utilises the location parameter mechanism. Token-based self-registration, initiated by sales associates, generates a single-use link where rate limiting is not required.
</details>

<details>
<summary>Can I identify which method of registration was used for each customer?</summary>

Yes - we record the method of registration via the dedicated `registrationSource` column on the customer record.

- `assisted` = the customer was registered in-app
- `dynamic` = the customer registered via the dynamically generated QR code
- `static` = the customer registered via the static, printed QR code
</details>

<details>
<summary>I want to print and display a static QR code within a store, what is the URL that I need to use to generate the QR code?</summary>

To generate a static QR code for in-store display, we will provide you with the URL format. For example, `https://your-registration-page.com/register?location=example_store_name` -"example_store_name" should be replaced with the specific store name you wish to associate with the QR code.

Please note, the store names must use `externalStoreID` recorded within the database.
</details>

<details>
<summary>Have you applied any measures to avoid bots from crawling the registration page and potentially indexing it within search results?</summary>

We have a robots.txt file set-up which explicitly disallows the page from being crawled.
</details>

<details>
<summary>Does the page place third-party cookies and/or collect data for the purpose of adverting or retargeting?</summary>

We explicitly block all third-party and non-essential cookies, therefore the page does not need to request customer consent.
</details>