Survey participants

=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 survey participants table 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 create a survey participants table first 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 Survey participants table panel, the survey participants will be able to register for your survey by receiving an automatically generated token code.

=How to create a survey participants table?=

To activate a survey participants table, access the survey and click on the Survey Participants button from the Settings menu:



You will be prompted by the following message:



If you initialize a participant table, the survey will be accessible only to those users that provide in the survey registration process a token code (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 confirming the creation of the survey participants table.

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



=The survey participants table management tools=

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




 * Total records: The number of survey participants from the survey participants table;
 * Total with no unique token: It displays the number of users without an assigned token code;
 * Total invitations sent: It shows the number of invitations that have been sent to your survey participants from the Survey participants 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 survey participants table management tools:




 * Display participants: If clicked, a survey participants table with all the current participants will load up. From the browse screen you can edit or delete individual entries from the table as well as perform a number of other useful functions (see the Display participants wiki section below for more details);
 * Create...: This option allows the survey administrator to add respondents into the survey participants 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 survey participants table to store custom participant data;
 * Export: If you wish to export the token tables and use 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 survey participants table to fill out your online survey;
 * Generate tokens: It is a LimeSurvey functionality that allows the survey administrator to quickly allocate a random unique token code to each user from the survey participants table that does not have one;
 * View in CPDB: It's a button that offers quick access to your LimeSurvey installation central participant database (CPDB). You can allocate from there CPDB users as survey participants to any survey you wish.

Display participants
It shows the entries list from the survey participants table. It allows the user to:
 * sort the survey participants;
 * filter the survey participants;
 * perform certain actions to an individual entry;
 * perform certain actions to more than one entry.



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 survey participants 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, choose the column according to which you want to filter the participant. Type in below the first row the values/strings according to which the filtering should be done:



For example, type in the email status field "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 (e.g.,: >, <, >=, <=, = ).

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 the respective user to complete the survey;
 * 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;
 * View this person in the central participant database: An icon will be displayed if the respective entry can also be found in the central participant database.

Perform a specific actions to 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:




 * Send email invitations: Send email invitations to the selected survey participants;
 * Send email reminder: Send email reminders to the selected survey participants;
 * 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 participant 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 page.

Create...
To have more participants listed in the survey participants 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 an integer 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 completed. No invitations or reminders will be sent to the respective users if this is enabled. It gets automatically enabled if the respective survey participant completed the survey by using his or her assigned token code;
 * 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 updates 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 the 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.

Note 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, students receive during class evaluations of a paper with an invitation code to be introduced at the beginning of the online 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 a number of dummy variables you wish to add to your survey participants 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 table:



Import participants from a CSV file
The import function permits you to import information from a CSV file or LDAP query.




 * 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!

The other fields are optional: ''emailstatus, token, language, validfrom, validuntil, attribute_1, attribute_2, attribute_3, usesleft, ... .''


 * 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 address will not be imported into your survey participants 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 import of survey participants
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 email 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-colons as comma separator, while a standard CSV file uses commas  as separators. If you do not know which one you use, open the file with a standard text editor and check what separator was used.

Recommended free raw text editors are: PSPad, NotePad2 or Notepad++ for Windows, and TextWrangler for Macintosh.

Import participants from a LDAP query
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 of your survey participantst table. The extra fields are used to store custom survey participants 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 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 respondent cannot be registered into the survey participants table;
 * Show during registration?: If the survey participants have to register before completing a survey, certain details will be requested 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:; Maps the attribute in order to connect it to its correspondent attribute from the central participant database;
 * 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.

Detailed instructions on how to add additional attribute fields and use conditions based on these values can be found on this blog post: "Conditions based on token attributes".

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 survey participants list, select the desired export options:




 * Survey status:
 * All tokens: It exports all the survey participants from the survey participants 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: It helps export the users according to the invitation status: all, invited, and not invited;
 * Reminder status: It helps export the users according to the reminder status: all, Reminder(s) sent, No reminder(s) sent;
 * Filter by language: When you create a survey, you can add additional languages besides the base language. Those additional languages can be used to export survey participants according to the language they are assigned to;
 * Filter by email address: It exports entries which contain the string in the respective email address. For example, you can use it if some of your survey participants use the work email addresses from "Company A". Type @companya.com and export only the users that have received a work email address from the respective company;
 * Delete exported participants: If enabled, the exported users will be deleted from your survey participants table.

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

When you export your survey participants, the fields are exported in the following order:

Invitations & reminders
This functionality allows you to manage the LimeSurvey invitations system. You can send invitations or reminders to those participants 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 respondents from the survey participants table who have not been already sent an invitation.



You can skip the survey participants 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 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 survey participants 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 table 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 the participants from the survey participants 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 turned off (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 the 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.

If you don't want this message to be sent, just deactivate this functionality from the general settings of your survey.

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 that is sent through 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 survey participants table.

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 LimeSurvey installation global settings, 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
With the help of this function, unique tokens can be created for all the individual entries from the survey participants table that have not yet received a token code:



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 the central participant database and survey participants list.

For example, we have the following survey participants list:



The users with ID 1 and 2 have been shared from the central participant database. To check this, go to the survey participants table 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 & tips=

Feel free to add any hints and tips below. The ones below were posted by the members of our community:
 * Allowing public registration
 * Captchas in public registration
 * Can a survey using tokens ensure anonymous responses?
 * A tip for generating a large number of fake e-mail addresses
 * Spam problems
 * Pseudonymised participation

Allowing public registration
You may want to open your survey to the public but utilize the sort of respondent control available when using tokens. To do this, if you initialize your survey participants table and choose to allow public registration in the main survey setup (this setting can be later changed from the participant settings section that is located in the settings menu of the survey), 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 database, an entry in the survey participants table will be created and they will be emailed an invitation containing their unique token code. All tokens provided to "registering" visitors will begin with the letter "R".

Captchas in public registration
To protect your survey from robot registrations, a CAPTCHA feature can be activated for all the registrations, save, and load forms. For more details, read our wiki on participant settings.

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 respondents from the survey participants table and their corresponding answers.

To enable or disable anonymized responses, check the participant settings wiki section.

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 of addresses in a form: 1@test.com, 2@test.com, 3@test.com, and so on. Type "1" in A1. Insert function =A1+1 in A2, then copy A2 down as many times as you need so that you obtain a list of consecutive numbers. In B1 use the concatenation function to join A1 and "@test.com", which is =CONCATENATE(A1;"@test.com"). Then copy B1 down so that each A cell has a correspondent (you can also generate similarly fake names). Finally, save the file as CSV in order to import it to LimeSurvey.

With the launch of LimeSurvey 1.91, you can use the "Generate dummy token" functionality. However, the dummy entries do not contain any email address.

Spam problems
Users often complain about not receiving invitations or reminder emails because their email spam filters treated the message from LimeSurvey as spam.

The fact that an email is treated as spam depends mostly 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 messages from LimeSurvey.

Some possible issues and solutions are listed in the following limesurvey-consulting.com blog post.

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.

For more details on how to edit the configuration file of your LimeSurvey installation, read our wiki on LimeSurvey optional settings.

Regarding the source of the problem, LimeSurvey tried to determine the domain from the server PHP variable: $_SERVER [ 'HTTP_HOST'] or $_SERVER [ 'SERVER_NAME'].

Some web server software do not properly seem to provide this information or are misconfigured.

Pseudonymised participation
With the dummy tokens you may create a form of pseudonymised participation by exporting the created dummy tokens and then combining them with your participant list externally. That way, LimeSurvey can be used as a survey platform without putting personal information of your participants into the system.

The only downside is, that you will have to distribute the participation tokens yourself.