Goodays Survey Technology

Everything happens with a simple url

At Goodays, we always aim for simplicity and effectiveness! This may sound obvious but when it comes to transmitting data between systems, it often get more complicated than this!

There is a single method to transmit information to Goodays to collect participation and it is through a simple url!

Goodays solicitation url format

All Goodays solicitation urls have the same format :

https://gdys.co/z/{token}/
    ?cz_open=send_feedback:<pos_id>
    &cz_user=<first_name|last_name|email|phone|cus_id>
    &cz_answer=<Star rating (from 1 to 5)>
    &cz_extuid=<unique identifier>
    &cz_x_<additional_information_1>=<first additional information>

This may seem complicated but we will go through all those fields in details.

cz_open

This field has the simple job of receiving the Point of Sale id in order to identify the store and attach the participation to it.

cz_user

This field is used to transmit data regarding the solicited end customer. The information here has to respect the following format :

first_name|last_name|email|phone_number|cus_id

🚧

Dissatisfaction Alert

End customer data is important: although optional, cz_user data is necessary to trigger Dissatisfaction Alerts without verbatim. With this in mind, you need to fill in at least the first_name and email of the end customer so that Goodays can trigger them.

👍

Pipe separator

All information have to be separated by a pipe |.

If a data item is empty, leave it empty while retaining the correct number of pipes.

👍

Base 64 encode

As this parameter are specified via an URL, you must encoded in Base64 the entire cz_user string.

📘

What is cus_id ?

This field represents the id of the end customer within your system (CRM for instance). At Goodays, we do not use this information but it will appear in the data you will be able to retrieve from Goodays. It is a pivot key to reconcile with your data.

📘

Phone number format

We recommend using the E.164 standard.

E.164 numbers are formatted [+] [country code] [subscriber number including area code] and can have a maximum of fifteen digits.

An example of a French phone number in the E.164 format is : +33612345678

For your information, a Goodays script normalizes the received phone numbers to the E.164 format. This means that formats such as 0033 or 06 (for French phone numbers) will be transformed in +33xxxxxxxxx.

⚠️ Be careful though, as normalization is not guaranteed in 100% of cases, especially in border areas. A French number is valid as an Italian or Belgian number, but it's 3 different people behind, impossible to know which one it is without a country code.

cz_answer

With this field, you are able to send the answer to the first question of the survey.
We always recommend to place the global satisfaction question in the first place, so the possible values are 1 to 5.
If this field is absent, the end customer will have to answer to this first question.

cz_extuid

The information here implements the unique participation feature. Learn more here!

cz_x_<additional_information_1>

Here is where the real magic occurs!
This type of fields are here to transmit information about the context of the participation.
For example, you can transmit the segmentation code of the current end customer, the amount of the purchase or any information you consider relevant for local users to help them answer in the best way possible or to create statistical filters.
All those information will be attached to the participation, as simply as that!

👍

As these parameters are specified via an URL, you must URL-encode their values.

The importance of end customer data

When an end customer is solicited, it is truly important that its personal information are sent to Goodays using the cz_user field. Having these information in the url allows several things :

  • No anonymous participations. If you know who had an experience with your brand, it makes no sense to not know who gave you a 5-star review or is dissatisfied.
  • Smooth the feedback phase. Asking for a text feedback is asking for a commitment from the end customer. It is an effort and we want to facilitate this step by asking as few information as possible. By having the customer information, we will be able to pre-fill these information and not ask them to the customer. This will ensure a high ratio of verbatim!
  • Answer to dissatisfied end customers. Goodays offers a feature to trigger an alert to the local users when an end customer answers with a low score and so start a discussion. This feature requires to have the information of the end customer so the conversation could happen.

Unique participation

Unique participation is a mechanism to prevent end customers to answer several times to the same questions
It is based on the combination of several information and requires having a unique identifier in the solicitation url : cz_extuid.
This information could be the ID of the solicitation, a timestamp, the ID of the purchase, ...
Then:

  • When an end customer replies to every questions of the survey and clicks again on the solicitation link, Goodays doesn't present the questions (as they already have been answered) but the verbatim interface.
  • If an end customer starts the survey but doesn't answer to all of the questions and clicks again on the solicitation link, Goodays presents the questions and the previous answers are replaced by the new ones.

The shortlink system that make everything simpler

Why is it useful?

You may have notice that, at the beginning of the solicitation urls, there is a token. This token is used to retrieve the destination url in the Goodays database.
The destination url is a little more complex than the starting one. When the request arrives in the shortlink, we add other information to the url and we also add a layer of security.

Data flow

During the process of solicitation and collect of feedbacks, the data inside the solicitation urls go through several steps:

  1. The data is in your CRM
  2. The data is processed by your routing software
  3. The email arrives in the end customer's inbox
  4. The end customer clicks on the solicitation link
  5. The end customer reaches the shortlink
  6. The end customer is redirected to the Goodays widget
  7. The Goodays widget opens and the survey starts

Security

Default security

Given the steps mentioned previously, we discover that all of those steps are secured with the exception of the 6th step, redirection to the Goodays widget!
At this point, the end customer data are present in the url and therefore can be "seen" by end customers and possibly recovered by a malicious person.

With this in mind, we added an extra layer of security to prevent other parties to access these data.

Before redirecting to the destination url, the shortlink will encrypt the cz_user and all the additional cz_x information to make them unreadable by anyone but Goodays.
The data are encrypted with the AES256-CBC Encryption algorithm.

With this step, the data in the url are secured throughout the entire flow!

End-to-end encryption (option)

If you want to further secure all the steps of the data flow, you can directly push the encrypted data to us!

In this case, you must be able to encrypt the cz_user and additional cz_x information using the AES256-CBC encryption algorithm with the encryption key and Initialization Vector (IV) that we will provide.

➡️ Need more details on how to set up end-to-end encryption?