Collect Data 🠖 fresco
Integration with other survey tools
As with Interviewer, Fresco is not intended to replace existing general purpose survey tools - particularly for ego specific data collection. We suggest that extensive ego-level data collection is done using a general purpose survey tool, and that Fresco is used to collect network data.
To facilitate this, Fresco supports integration with other survey tools via shared tokens, called "participant identifiers", which can be passed from your conventional survey tool into Fresco.
This integration will allow your participants to complete a "conventional" survey and then seamlessly transition to the network portion of the interview in Fresco simply by clicking a link. The data collected in Fresco can then be associated to the survey data using the shared participant identifier when conducting your analysis.
This article explains the process using Qualtrics and Prolific as examples, but the approach is similar for other survey and recruitment tools. Please let us know if you would like to see additional documentation for other tools.
What is a Participant identifier?
In Fresco, every participant in your study must have a unique identifier. When creating participants manually, you must provide this identifier yourself (or use the dedicated button to randomly generate one). When anonymous recruitment is enabled, this identifier will be generated as a participant is created using the anonymous participation URL, or (as we will see later in this tutorial) can be provided as part of the URL.
Take Care!
Participant identifiers are sometimes used in URLs that are shared with participants, and are therefore potentially visible to them. Because of this, they must not contain sensitive information, and must not be easy for other participants to guess (e.g. sequential numbers, or easily guessable strings).
How Integration Works
Good to know:
It is not currently possible to pass data from Fresco back to the survey tool. This is a one-way integration.As mentioned previously, the ultimate aim of integration is to be able to have your participant take a "conventional" survey, and then have them click a link that takes them to the network portion of the interview. By itself this would be simple to implement, but the key is to be able to link the data collected in the survey tool back to the data collected in Fresco.
Put simply, this is achieved by embedding the participant identifier in the URL that is used to link to the Fresco interview. When present in a URL, Fresco will use this identifier to either create a new participant (if anonymous recruitment is enabled) with the given identifier, or will link to an existing participant, before launching the interview.
There are two ways that the identifier can be included in the onboarding URL:
Query Parameters
The participant identifier can be included within what are known as "query parameters". This is a standardized web technology that encodes groups of data and labels in the format label=value, separated by ampersands (&) and added to the end of a URL following a question mark character (?). For example, a search engine may use query parameters to store a search query like this: http://google.com?query=networkcanvas.
In Fresco, the query parameter must be named participantIdentifier (this is case-sensitive!), and should be appended to the onboarding URL for your protocol. An example onboarding URL with the participant identifier included as a query parameter might look like:
https://yourstudy.com/onboard/{protocolID}/?participantIdentifier=12345
Using query parameters is the simplest method, but the participant identifier will be visible in the URL and could be tampered with.
POST Parameters
The participant identifier can also be included in the body of a POST request. This is a more secure method, as the data is not visible in the URL, but it is more complex to implement.
Fresco will look at the body of a POST request and try to parse it as JSON. If it finds a key called participantIdentifier, it will use the value of that key as the participant identifier.
This guide will focus on the query parameter method, as it is simpler to implement and should be sufficient for most use cases.
Example integration with Qualtrics
As an example, we will now discuss how to implement this process in Qualtrics, assuming that you do not have a pre-existing list of participants. The process is similar for other survey tools, but the exact steps may vary.
Good to know:
We will be working on the assumption that you have already set up your Fresco instance and created/uploaded an interview protocol. If you have not done this, please refer to the deployment documentation for instructions on how to do so.
Set up your Fresco instance to allow anonymous recruitment.
Anonymous recruitment will allow participants to join your study without you needing to add them to Fresco in advance. This simplifies the process for the sake of this example, since it means you do not have to synchronize participant lists between Fresco and your survey tool. It is possible to integrate with external tools without anonymous recruitment enabled, but there are no real advantages to doing so.
To turn on the anonymous recruitment feature, log in to your Fresco instance, and go to the "settings" tab in the top navigation bar. Toggle the switch in the anonymous recruitment section to the "on" position.
Navigate to the "protocols" page, and click the button under the "Anonymous Participation URL" column next to the protocol you want to use. This will copy the anonymous participation URL to your clipboard. Paste this into a text editor for referencing later. It should look something like: https://your-fresco-instance.com/onboard/clwak4fc70000pybyrk9rvb98.
Set up your Qualtrics survey to generate or collect an identifier
Create your survey in Qualtrics to your specifications.
You will need to generate a unique identifier for each participant that you want to pass to Fresco. This could be:
- a randomly generated code
- a combination of answers to survey questions (e.g., a participant's initials and date of birth)
- an ID defined in an external data file that you uploaded to Qualtrics
- the Qualtrics Response ID (a unique identifier automatically assigned to each response)
For details on how to generate a unique identifier in Qualtrics, consult the Qualtrics support documentation.
For the purposes of this example, we will use the Qualtrics Response ID, which is a unique identifier automatically assigned to each survey response.
Use piped text to pass the identifier to Fresco
To pass the identifier, we will use the "piped text" feature in Qualtrics. This allows you to insert dynamic data into your survey questions and responses, or as in this case, into the URL that you will use to link to Fresco.
In your survey screen find the "End of Survey" block:

Edit the "End of Survey" block to add a link to your Fresco survey with the "anonymous participation URL" you pasted into your text editor earlier.
Update the link to include the piped text code for your identifier. In this example, we will use the Qualtrics Response ID as the identifier. The Response ID is a unique identifier automatically generated by Qualtrics for each survey response. The piped text code for the Response ID is ${e://Field/ResponseID}. We add this code to the URL as a query parameter named participantIdentifier, which results in the following:
You have completed the first part of the study. Click the link below to proceed
to the next section:
<a
href="https://your-fresco-instance.com/onboard/clwak4fc70000pybyrk9rvb98/?participantIdentifier=${e://Field/ResponseID}"
>
Continue to the next section
</a>
Good to know:
Understanding Qualtrics piped text prefixes: Qualtrics uses different prefixes to access different types of data:
e://- Used to access embedded data fields and built-in response fields likeResponseID. This is the most common prefix for standard survey workflows.l://- Used specifically within "Loop and Merge" contexts to access fields from the current loop iteration.
If you are using Loop and Merge functionality in your survey and need to pass an identifier from within a loop, you would use ${l://FieldName} instead. For most standard survey setups, e:// is the correct choice.
The link must be in the format shown to ensure that the participant identifier is passed correctly. Test the link by clicking on it to ensure that it leads to your Fresco survey, and creates a new participant with the correct identifier.
Good to know:
You can test the Fresco interview link with a dummy participant identifier to ensure that it creates a new participant in your Fresco participants page and a dedicated interview with the passed identifier.
Simply replace the participant identifier in the URL with a test identifier. For example, if your Fresco instance URL is https://your-fresco-instance.com/onboard/clwak4fc70000pybyrk9rvb98 and you want to test the link with the identifier Test123, the URL should look like this:
https://your-fresco-instance.com/onboard/clwak4fc70000pybyrk9rvb98/?participantIdentifier=Test123
Assuming that the test was successful, you can now distribute your survey to participants. When they complete the survey, they will be directed to the Fresco interview with the participant identifier in Fresco corresponding to the Response ID in Qualtrics.
Example integration with Prolific
Prolific is a participant recruitment platform rather than a survey tool, so it plays a slightly different role in your study. Instead of building your survey in Prolific, you use it to recruit participants and send them to your study — either straight into Fresco, or into your survey tool first and then on to Fresco.
Passing a participant identifier works the same way as in the Qualtrics example above: you append it to the Fresco onboarding URL as a participantIdentifier query parameter. The only thing that changes is where the identifier comes from. Prolific automatically replaces special placeholders in your study URL with each participant's details:
{{%PROLIFIC_PID%}}— the participant's unique Prolific ID{{%STUDY_ID%}}— the ID of your Prolific study{{%SESSION_ID%}}— the ID of the participant's individual submission
We recommend using {{%PROLIFIC_PID%}} as the participant identifier, since it uniquely and stably identifies each participant across your study.
Route 1: Recruit directly into Fresco
This is the simplest approach, and closely mirrors the Qualtrics example above — except that Prolific, rather than a survey tool, generates the link to Fresco.
First, enable anonymous recruitment and copy your protocol's "Anonymous Participation URL", exactly as described in the Qualtrics example above.
Then, when setting up your study in Prolific, choose to record Prolific IDs using URL parameters, and set your study's URL to the Fresco onboarding URL with the participantIdentifier query parameter set to the {{%PROLIFIC_PID%}} placeholder:
https://your-fresco-instance.com/onboard/clwak4fc70000pybyrk9rvb98/?participantIdentifier={{%PROLIFIC_PID%}}
When a participant starts your study, Prolific replaces {{%PROLIFIC_PID%}} with their unique Prolific ID. Fresco then creates a participant whose identifier is that Prolific ID, allowing you to link the network data collected in Fresco back to the participant's Prolific record.
Before launching, test the link with a dummy identifier to confirm it creates a participant in Fresco, using the same approach shown in the testing tip in the Qualtrics example above.
Route 2: Recruit via a survey tool, then Fresco
If your study also involves extensive ego-level data collection, you may prefer participants to complete a survey in a tool such as Qualtrics before continuing to the Fresco interview. In this case, Prolific sends participants to your survey tool, and your survey tool links on to Fresco.
Point your Prolific study at your survey tool instead of Fresco, and capture the Prolific ID there. In Qualtrics, for example, you would store {{%PROLIFIC_PID%}} in an embedded data field — see Prolific's Qualtrics integration guide for the details.
Then follow the Qualtrics example above to link from your survey to Fresco, but use the captured Prolific ID as the participantIdentifier rather than the Qualtrics Response ID. If you stored the ID in an embedded data field named PROLIFIC_PID, the piped text code is ${e://Field/PROLIFIC_PID}, giving a link like:
<a
href="https://your-fresco-instance.com/onboard/clwak4fc70000pybyrk9rvb98/?participantIdentifier=${e://Field/PROLIFIC_PID}"
>
Continue to the next section
</a>
This way a single identifier — the participant's Prolific ID — ties together their Prolific record, their survey responses, and their Fresco network data.
Returning participants to Prolific
Take Care!
Prolific requires participants to return to Prolific — using a completion URL or completion code — for their submission to be recorded and for them to be paid. Because Fresco is a one-way integration and cannot automatically redirect participants back to Prolific when the interview ends, you need to plan for this step yourself.
We recommend using Prolific's completion code method rather than a redirect, and making sure participants can only complete on Prolific once their interview data has been submitted. See Prolific's documentation on data collection and study completion for the available options.
Additional Considerations
- You can prevent more than one interview being submitted with the same identifier, using the "LIMIT INTERVIEWS" option in Fresco settings page. This ensures that each participant can only submit one interview per identifier.