The words token and survey participant are used interchangeably in this wiki section.

Introduction

On many occasions you will want to invite a group of people to participate in your survey, keep track of who has completed the survey, and ensure that each person can only participate once. The tokens feature allows you to do the following:

Import a list of names and email addresses for participants from a CSV file or a LDAP query;

Generate a unique token code for each participant (invitation code);

Send an email invitation to each person in your list (by group or individually);

Send a reminder email to each person in your list who has not yet responded (by group or individually);

Track who has responded from your survey participants list;

Restrict access against people who have not got a token, and those with a token who have already responded;

Edit/change any details in your list;

Create email templates for invitations & reminders.

Once the survey is switched to Closed-access mode (you need to enable tokens for the respective survey), only the people that provide a unique token code (that has not been already used) can access the survey.

If you enable the Allow public registration option from the Participant tokens panel, the survey participants will be able to register for your survey by receiving an automatically generated token code.

How to activate a tokens table?

To activate the tokens functionality of LimeSurvey, access the survey and click on the Survey Participants button located in the Settings menu. You will be prompted by the following message:

If you initialize participant table, the survey will be accessible only to those users that provide in the survey registration process a token (either manually or by URL). In this way, the survey will be switched to the closed-access mode.

Once initialized, a window will load up with the confirmation of the participant/token table creation.

Reactivate a token table

When you delete a survey participant table, a backup is created. It can be later reactivated if you wish to use that specific survey participant table for another survey:

The token management tools

A survey participant summary will load up if the token/participant table was previously created. This is the default screen:

[[File:]]

Total records: The number of survey participants from the tokens table;

Total with no unique token: It displays the number of users without an assigned token id;

Total invitations sent: It shows the number of invitations that have been sent to your survey participants from the tokens table by using the Invitations option from the Invitations & reminders menu;

Total opted out: It displays the total number of survey participants that have decided to opt out from the survey;

Total screened out:

Total surveys completed: It shows the number of the surveys that have been completed by those users who have been allocated a token code.

Above the Survey participant summary table, you may find the token management tools:

Display participants: If clicked, a tokens table with all the current participants will load up. From the browse screen you can edit or delete individual entries in the token table as well as perform a number of other useful functions (see the Display participants wiki section below for more details)

Create...: This options allows the survey administrator to add participants into the tokens table either via the Add participant option or via the Import participants function;

Manage attributes: It allows the survey administrator to add additional fields to the tokens table to store custom participant data;

Export: If you wish to export the token tables and used them in other surveys, use this function. The file will be saved in the .CSV format;

Survey participants: Use this option in order to quickly invite or remind your participants from the tokens table to fill in your online survey;

Generate tokens: It is a LimeSurvey functionality that allows the survey adminstrator to quickly allocate a random unique token id to each user from the tokens table;

Sort the survey participants

The second row of the table includes various criteria that can help the survey administrator sort the entries. If you click on any of the columns/criteria from the table, the screen will be refreshed, showing the tokens ordered in accordance to the criterion you just clicked on. Click twice on it to get the results displayed in a descending order.

Filter the survey participants

If you wish to filter the survey participants, chose the column according to which you want to filter the participant and type in the values/strings according to which the filtering should be done:

For example, type in the email status "OK" in order to let LimeSurvey return only those users that use a good email address.

Hint: You can also use operators when filtering the survey participants (eg: >, <, >=, <=, = ).

Perform a specific action to an individual entry

The second column is the Action column where you can find all the actions that are available for each individual entry from the survey participants table. The possible actions that can be performed are:

View response details: If the survey is a "tracked" (ie: not anonymous) survey, another button will appear, allowing you to view the response from this individual entry;

Launch the survey with this token: It is used if you wish to execute a survey by using the generated token code;

Send email invitation: Use this option to send an email invitation to complete the survey to the respective user;

Edit the survey participant: Click on this button if you would like to change some survey participant data;

Delete survey participant: Click on this button if you want to delete that particular entry.

Perform a specific actions for more than one entry

On the bottom-left part of the table, you may find the Selected participant(s)... button that allows you to perform certain actions at a macro level:

Add participants to central database: In the case in which you would like to use some of the token entries into another survey, add the selected participants to the central participants database. From there, you have the option to add the participants to any survey you wish. For more details, continue reading the Share this participant wiki section.

Before executing any of the functions mentioned above, do not forget to select the survey participants upon which the action will be performed.

Create...

To have more participants listed in the tokens table, you can either add new ones or import them from a CSV file or LDAP query.

Add participant

A typical token entry contains the following fields:

ID: It represents a number that is automatically assigned to each survey participant;

Completed?: It is disabled by default. If enabled, it would contain the date when the survey was was completed;

First name: The first name of the survey participant;

Last name: The last name of the survey participant;

Token: This is the invitation code. It can be manually or automatically generated (via the Generate tokens button);

Language: You can select here the default language of the survey for the respective participant;

Email: the email address of the participant;

Email status: This field helps you track the bad email addresses. For instance, if the survey administrator received email error notifications from this email, then he can set this field to anything other than "OK" (for instance "user unknown" or "mailbox quota exceeded"). Marking this field with an email status other than "OK", will help skip this entry when sending invitation or reminder emails. Note that this is completely manual, unless you decide to implement a script which does update this field automatically;

Invitation sent?: If enabled, it would contain the date when the invitation email was sent;

Reminder sent?: If enabled. it would contain the date when the reminder email was sent;

Uses left: A counter of number of times the token can be used. Note: When increasing this value (default = 1) for a user who has already filled out the survey (which sets uses left to 0), you also have to switch the Completed field from "Yes" to "No";

Valid from: & Until: You can set a date/time range when this token would be allowed to use. You can leave these empty if you don't want to limit participation time frame for certain users. If the user is answering the survey and the participation time ends then the user is locked out immediately and won't be able to finish the survey.

Please that the Add survey participant panel is made of two tabs: the General tab and the Additional attributes tab. The additional attributes tab offers you access to your custom attributes - read the following wiki section for more details.

Create dummy participants

A dummy participant can be used when you do not want to send emails with the token code to each participant, but to give him or her the token code by other means. For example, during class evaluations, students receive a paper with an identification code to be introduced at the beginning of survey. In this way, the likelihood to receive more responses and feedback increases.

If you click on the button, the following page will load up:

The Number of participants field allows you to introduce the number of dummy variables you wish to be introduced in your tokens table. The explanation of the other fields can be found in the Add participant wiki subsection.

After completing the fields, press the Save button located in the upper-right part of the screen to save the dummy variables.

To check whether they were added or not, visit again the Survey participants list:

Import participants from a CSV file

Choose the CSV file to upload: Pick the CSV file you wish to import. To eliminate any possible errors, it is recommended to import a standard CSV (comma delimited) file with optional double quotes around values (default for OpenOffice and Excel).

The first line must contain the field names. It must also contain the following fields: firstname, lastname, email.

They have to contain at least one character. Simply adding double quotes and no characters between them will not work!

Hint: The date format for the "validfrom" and "validuntil" fields in the CSV token inport file is "YYYY-MM-DD HH:MM".

Character set of the file: Select the option that fits the characters used in the CSV file;

Separator used: You can let LimeSurvey automatically discover the used separator in your CSV or select either the comma separator or the semicolon one;

Filter blank email addresses: If enabled, the survey participants without an email addresses will not be imported into your tokens table;

Allow invalid email addresses: If disabled, this function will look into the email addresses fields and check whether the addresses have the structure of an email or not (e.g.: a@a.net);

Display attribute warnings: If enabled, after the importing process warnings will be displayed in the case in which something is wrong with the fields. For example. you might get an attribute warning if nothing is provided in any of the mandatory fields or if an email is wrongly introduced in the CSV file.

Filter duplicate records: If enabled, you can set which fields are used to identify duplicates. By default First name, Last name & Email-address are preselected. If a duplicate is found while importing, the related line is omitted.

Duplicates are determined by: Select the fields according to which you would like to see the filtering process happening.

You can also import customized attributes when importing a CSV file. You will just have to define what attributes will be added. You can do it like this:

Once you are done choosing the desired importing settings, do not forget to click on the Upload button.

Troubleshooting the token import

A common error when users try to import tokens is an invalid CSV file. This is often caused by Microsoft Excel. Many users have a list of e-mail addresses saved as an XLS document. A file can be saved as CSV in Excel, however, depending on the locale of the OS, Microsoft Excel may use semi-colon (;) as comma separator, while a standard CSV file uses comma (,) as the separator. If you do not know, open the file with a standard text editor and check what separator was used.

LimeSurvey should also detect semicolons as separators. However, in the case in which the import process is not properly working, replace the semicolons with commas. Double quotes should be also added around values.

Import participants from a LDAP query

Attention : Use this option only if you have advanced knowledge of LimeSurvey.

This import function allows you to import information from an LDAP query (tested on openLdap, but should work in any LDAP compliant directory including ActiveDirectory). Once accessed, the following options are available:

Queries are manually defined by the system administrator in the config-ldap.php file;

Duplicates are identified by First Name, Last Name & Email-Address. If a duplicate is found while importing, the related line is omitted (unless you have unchecked the Filter Duplicates checkbox).

Manage attributes

This option allows you to add/edit the additional fields that were added to the tokens table to store custom survey participant data:

Type in the number of new attribute fields you wish to add to your survey participants table. Click on the Add fields button. The following page will load up:

The attribute fields table contain the following fields:

Attribute field: the value that will be typed in here can be used when you wish to do different operations with the respective custom attribute field such as: applying conditions based on attribute fields or when exporting results for non-anonymous surveys;

Field description: Used in to replace the attribute field name. By giving a custom name to each attribute field, they will look nicer in the administration panel, when you browse tokens, when creating conditions based on attribute fields or when you export results for non-anonymous surveys;

Mandatory?: If enabled, the respective attribute field will have to be filled in by the survey administrator. Otherwise, the survey participant cannot be registered into the tokens table;

Show during registration?: If the survey participants have to register before completing a survey, certain details will be required from them. If disabled, the respective attribute field won't appear in the survey registration page;

Field caption: Use this fields to add further explanations about the role/usage of the respective attribute field.

CPDB mapping:;

Example data: It contains string examples from different fields. For example, if you wish to ask for the gender of the survey participant, then you will observe in the Example data field examples such as male, female, no answer etc.

Once you finish filling in the boxes, do not forget to click on the Save button that is located in the bottom-left part of the screen.

To add more fields, go to the bottom of the page, and type in the Number of attribute fields to add box the desired number and click on the Add fields button.

If you wish to delete a custom attribute, go to the bottom of the page and select from the drop-down list situated under the Delete this attribute field the attribute you wish to delete. Once selected, click on Delete attribute and confirm the deletion.

Export

If you wish to export a survey participants table, click on the "Export" button located on the token management tools toolbar. Before exporting the tokens table, select the desired export options:

Survey status:

All tokens: It exports all the survey participants from the tokens table;

Completed: It exports only those survey participants that completed the survey;

Not completed: It exports the survey participants that have not yet completed the survey;

Not started: It exports the survey participants that have not yet started the survey;

Started but not yet completed: It exports the survey participants that have already started the survey, but did not complete it.

Invitation status: Export the users according to the invitation status;

Reminder status: Export the users according to the reminder status;

Filter by language: When you create a survey, you can add additional languages beside the base language. Those additional languages can be used to;

Filter by email address: It exports entries which contain the set of characters in the respective email address. For example, you can use it if your survey participants use the work email addresses from "Company A". Type @companya.com and export only the users that have a work email address at that company;

Delete exported participants: If enabled, the exported users will be deleted from your survey participants table.

One you have selected the exporting options, click on the Download CSV file button located in the upper right part of the screen.

Invitations & reminders

This functionality allows you to manage the LimeSurvey invitations system. You can send invitations or reminders to the users that are displayed in your survey participants table. An email bounce tracking system can be used in order to help you track down and mark the emails that were not delivered to the recipients (survey participants).

Send email invitation

You can send through this option email invitations in bulk to all the survey participants from the tokens table who have not been already sent an invitation.

You can skip tokens for which the email status field is different from "OK" by enabling the Bypass token with failing email addresses option.

If you wish to overcome the validity settings of all of your entries, enable the Bypass date control before sending email function. In this way, the LimeSurvey email function will not take into account the date/time range when a token would be allowed to be used.

Resending invitations

Sometimes you might want to send invitations again to certain token entries/survey participants. When you use the send invitations function, only email addresses that has not previously received an invitation will get one. This means that if you add new addresses to the token list after the first time you sent invitations, only these new addresses will receive an invitation the second time you send invitations.

This means that you can also edit an email in a particular token entry from where you got a bounce from and then send to only this edited address. Just turn off the Invitation sent field and then click send invitations again.

Send email reminder

Sends bulk email reminders to all participants in the tokens table who have not yet responded, but have been sent their first invitation.

When sending reminders you can:

Bypass tokens with failing email addresses: those entries with a failing email address will be skipped - they won't receive any email;

Min days between reminders: skip tokens for which a reminder has been "recently" sent;

Max reminders:skip tokens for which a given number of reminders have already been sent;

Bypass date control before sending email: skip those entries that are not in the time-frame within which they can be used.

Note: A reminder will be sent only to those participants where the "completed" field is disabled (this means the respondent has either not taken or completed the survey).

Sending emails by batch

When you have to send a lot of emails at the same time, LimeSurvey will only send a first batch of N emails (this threshold is set by the administrator from the email settings, located in the global settings of your LimeSurvey installation).

Confirmation email

If you are using tokens and a participant fills out the survey, a confirmation email is sent to his/her email address.

Start bounce processing

When sending an email, the LimeSurvey email bounce tracking system automatically adds a survey-id and token-id to the mail header without the notice of the survey administrator.. These "custom headers" are added to each invitation email send via your LimeSurvey installation to the survey participants. When the email is bounced back, the original header along with the "Delivery notification" header is received. Then, the system checks for new emails and parses the emails that have these custom headers and mark the wrong email address in the red font color in the tokens table - has to be rechecked.

Bounce settings

The following options are available:

For a short description of each field, check the following wiki section. If you wish to use the global settings of the LimeSurvey installation, go to the Used bounce settings and select the Use global settings option.

Click on the following link for more information on how to correctly configure this feature.

Edit email templates

To find out more about what placeholders you can use or how you can edit the LimeSurvey email templates, read our wiki section on email templates.

Generate tokens

Creates unique tokens for all individual entries in the tokens table that do not yet !g have one:

View in CPDB

The last option located on the tokens management toolbar is the View in CPDB option. This allows the survey administrator to see the common users that exist in both central participants database and survey participants list.

For example, we have the following survey participants list:

Users with id 1 and 2 have been shared from the central participants database. To check this, go to the tokens management toolbar and click on View in CPDB

As you can see, the View in CPDB function basically applies a filter in order to determine which users from the CPDB are present in the respective survey.

Delete table

If you would like to delete your survey participants table, click on the Display participants button and look for the Delete participants table button located in the upper-right part of the screen.

A window will pop up, asking for the final confirmation:

Please note that this will not delete the table from your LimeSurvey installation. A backup will be created. In order to access it, you need system administrator rights.

If you do wish to completely remove it, use the check data integrity option that is located in the Configuration dialog.

Additional hints

Allowing public registration

You may want to open your survey to the public, but utilize the sort of respondent control available when using tokens. This is possible: If you initialize your tokens table, and have chosen to Allow Public Registration in the main survey setup, people who visit your survey's URL without a token, will be given the opportunity to register. If they provide an email address that is not already in the current survey's tokens table, an entry in the tokens table will be created, and they will be emailed an invitation containing their unique Token. All tokens provided to "registering" visitors will begin with the letter "R".

Captchas in public registration

To protect your survey from robot registration there is a captcha feature on all Registration, Save and Load forms. (starting from version 1.48) This feature is only available if you have GD-support activated in your PHP configuration. (see Installation Requirements)

Can a survey using tokens ensure anonymous responses?

The answer to this question is yes. Tokens can be used both for anonymous and non-anonymous surveys. This is determined when creating a survey. If a survey is not anonymous (or 'tracked') then the token list can be used to find the responses that an individual has made to the survey. If the survey is anonymous, then no link (technically: foreign key relationship) is available between the tokens table and the responses.

A tip for generating a large number of fake e-mail addresses

Sometimes you may need a large number of fake e-mail addresses and tokens. You can use functions in a spreadsheet (e.g. OpenOffice Calc) to generate them. Let's assume you want thousands addresses in a form: 1@test.com, 2@test.com, 3@test.com... Put consecutive numbers in column A: 1 in the A1, then insert function =A1+1 in A2, then copy A2 down as many times as you need. In B1 use concatenation function to join A1 and "@test.com", which is =CONCATENATE(A1;"@test.com"). Then copy B1 down for each copied A. You may generate fake names in a similar way. Finally, save the file as CSV for import in LS.

With the 1.91, you can use "Generate dummy token" functionnality

A tip for generating a large number of individual links which include the token already

Second column: {TOKEN} (put your tokens here, of course they must be individual)

Third column: use the CONCATENATE function to join the first column with the second column.

Spam problems

Often users complain not having received an invitation or reminder email because the user's spam filter treated the email as spam.

The fact that an email is treated as spam mostly depends on the spam filter being used and its settings. A spam filter usually checks the sender address, and the email subject and content. Changing its settings could solve the way in which the users' email providers treat the LimeSurvey invitations.

At this blog post on limesurvey-consulting.com a lot of possible issues and solutions are listed.

LimeSurvey automatically tries to determine the URL for the invitation link by looking at the URL by which you logged in to the LimeSurvey administration. However with some server (mis-)configurations this might not work properly and you will have to set this manually.

You can edit application/config/config.php to change the default base URL value. Add a hostInfo property like this to the existing 'components' array.