Multiple Collector Links for Single Survey

What is the general goal of the feature?

To differentiate between multiple collection sources for a single survey, without needing to duplicate the survey.

What are the most likely user stories for how and when this would be used by someone on your team?

We create a single user experience survey.
Multiple unique collector links are created, one for each of our contracted organisations.
A user at organisation A will fill in link A, while a user at organisation B will fill in link B.
The data from both these links will feed into the same survey, but there will be an additional column to differentiate these unique survey links.
We can download all the data from all links in a single click.
If we need to fix a typo in one of the surveys, we fix it in one place, rather than fixing it in 50 different duplicated surveys.

Can you sketch out graphically how you think this should look/work in practice?

Exactly the way the multiple collectors work in SurveyMonkey

How useful would this feature be to other users or organizations?

Extremely useful at increasing efficiency when multiple links are required for a single survey.

What can you contribute to making this feature a reality?

Feedback, testing.

Hi @davidwales,

Have you gone through our support article Collecting Data through Web Forms. Collecting data in KoBoToolbox is possible using Enketo (web form) which too uses a survey link. Making changes in the survey questionnaire should automatically be updated at the respondents end (in KoBoToolbox when using the web form to collect data). Is this something you are looking for or is it something else.

Kindly please provide some pictorial definitions along with the suggestions you have provided (so that it would be much easier for the community to understand).

Have a great day!

in addition to @Kal_Lam:
Are you using shared projects feature?
What is your exact requirement, not covered? (Why not just use a ID-variable for each organisation?)
Kind regards

Thanks @Kal_Lam and @wroos.
I have looked at the linked document, but it does not describe what I am trying to do.
I am not using the shared projects feature.

What I am trying to do is as follows:

Suppose I have a survey such as:

Imagine I want this survey to be completed by two distinct groups of people, and I want to be able to determine which group of people a given response belongs to.

A simple solution would be to have a question asking which group you belong to at the start of the survey. However this is problematic for two reasons. Firstly it reveals to one group the identity of the other group. Secondly, it makes it possible to pretend to be a member of the other group, which can skew the results.

A better solution is to create a unique URL for each group, which feeds into the same survey and adds a group identifier column which is automatically populated based on the URL used to access the survey.

e.g. Suppose my two groups are ‘Dog People’ and ‘Cat People’.
I would create two URLs (connector links) to the one survey:

I would give one link to one group, and the other link to the other group.
At the end, I would be able to export a data table which looked like:

submissionID collectorID Name Quest
1 CAT_PEOPLE Sam To seek the Holy Grail!
2 DOG_PEOPLE Will To find fetch the ball!

Hi @davidwales,

Much clear now. But i still have a question on my mind.

If you already know Sam belongs to CAT_PEOPLE and Will belongs to DOG_PEOPLE, then why do you need 2 different links for the same survey? You could conduct the survey with a single link and then code the responses to their respective group after the completion of the survey.

Have a great day!

in addition to @Kal_Lam. You could also create a hidden (type) variable where you calculate the information, based on something like survey_username or KoBo metadata deviceid (if you share to different server accounts). or pulldata to get a user to group mapping from a csv table.

You could might create (secret) individual userids or groupids (even barcodes) which you only communicate to the relevant respondents, to be entered and stored in form…

Are you using Enketo?

Kind regards

1 Like

@Kal_Lam, we distribute the survey links to to different organisations. We don’t know ahead of time who will complete the survey, but we want a separate link for each organisation so that we know which organisation each response belongs to.

@wroos, we want this process to be streamlined, without requiring users to login.
We want to be able to simply send the relevant link to each organisation, and collect the responses. If this is possible within Enketo I would be very interested to know.

My organisation is not currently using Enketo or KoBo. We are currently evaluating alternatives to SurveyMonkey which can be self-hosted to better align with our data governance. KoBo / Enketo is the best open source option we have found, but unfortunately the ability to create multiple collector links which feed into a single survey is a hard requirement for us. (This feature is very easy in SurveyMonkey. You just click ‘Add new collector’, then type in the URL you want, and you are done.)

1 Like

Hi @davidwales

As mentioned earlier, there is no way to generate different links for one form. The link will be the same as earlier mentioned.

You can set it up to collect data without requiring a log in, however you will never be able to tell who entered the data if you do not introduce unique identifiers on the form.

Unfortunately this is not currently available within the platform. I however suggest that you make this as a suggestion for future development within the forum. It is unfortunate that this is not provided however you should be able to install KoBoToolbox on your own servers as indicated in the instructions here

All the best

This may not be as elegant as what you’d like, but I think what you’re after is possible using hidden fields and pre-filling Enketo responses via URL.

I can create this XLSForm:

type name label relevant calculation
hidden collectorID Collector ID
note missingCollectorID Sorry: it looks like you’ve accessed this survey through an invalid link. Please check the URL and try again. ${collectorID} = ‘’
calculate validSubmission Submission is valid ${collectorID} != ‘’
begin_group everything ${collectorID} != ‘’
text name What is your name?
text quest What is your quest?

…and then use one of the online-only Enketo options, e.g. “Online-Only (single submission)” combined with a query string that sets the response for the hidden collectorID question, e.g.[collectorID]=CAT_PEOPLE. Perhaps you’d want to obfuscate the question name / response value for the collector ID a little bit to prevent your respondents from manipulating the URLs.

An Excel export of data collected from this form looks like:

Collector ID Sorry: it looks like you’ve accessed this survey through an invalid link. Please check the URL and try again. Submission is valid What is your name? What is your quest? _id _uuid _submission_time _validation_status _index
CAT_PEOPLE true Sam To seek the Holy Grail! 51882509 d8e4bb6d-4bd1-4f4f-aaaa-96a55200d16f 2020-05-01T20:07:52 1

People here with more creativity or time than me could probably make it a little bit prettier, but I think it illustrates the idea.


Thanks @jnm! That’s very helpful.

1 Like