Generating token attribute values on new public registrations

7 months 2 weeks ago #175181 by rohitparker
Hi all,

We have a project that involves a known list of potential project participants, with email addresses, and so a token-based survey is a good solution. The token table will have one additional attribute (attribute_1) - an external study ID - which will be pre-populated for the known set of participants. The external study IDs are of the form CS-0000001, CS-0000002, CS-0000003, and so on.

We would also like to have the option for public registration, so that additional people can participate. Limesurvey's "allow public registration" option will insert a token into the token table for these new registrants, but we would also like to insert a new external study ID into attribute_1 when the new token is created. The external study ID must be unique, and can simply be an increment of the last attribute value in the token table. The new registrant should not need to input the study ID him/herself at the time of registration.

Does anyone know if this is possible in Limesurvey? This capability will greatly simplify our project and remove the need for two different streams of data handling (those known up-front, and those participating via a wider registration approach).

Any advice would be greatly appreciated!


VidMate AnyDesk

Please Log in or Create an account to join the conversation.

LimeSurvey Partners
7 months 1 week ago #175183 by tpartner
As far as I know, not within LimeSurvey alone.

With a little programming, you should be able to create your own PHP "registration" page that:

- Queries the database for the last attribute_1 value
- Increments that value
- Creates a new token via API
- Redirects the user to the survey

Here is a post that may give inspiration for the latter part of that -

Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner -

Please Log in or Create an account to join the conversation.

7 months 1 week ago - 7 months 1 week ago #175188 by DenisChenu
Alternative solution using API

1st : Use beforeRegister event

2nd : maybe better : in beforeSurveyPage event,
- 1 : get the current token
- 2 : load the token from DB ($oToken)
- 3 test if attribute is set
- 4 if not set : set it and save $oToken

Here : you can se token management in a plugin

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand .
An error happen ? Before make a new topic : remind the Debug mode .
Last edit: 7 months 1 week ago by DenisChenu.

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!