UAL-RE / LD-Cool-P

Python tool to enable data curation
MIT License
4 stars 5 forks source link

Use Qualtrics Q_PopulateResponse to provide customized URL for Deposit Agreement form #37

Closed astrochun closed 4 years ago

astrochun commented 4 years ago

One of Qualtrics features is Embedded Data using Q_PopulateResponse

Information about Embedded Data is available here with more specifics on Q_PopulateResponse here.

The responses to questions can be provided in JSON format.

Here's an example: https://uarizona.co1.qualtrics.com/jfe/form/SV_39rs7lHGLUYFK7P?Q_PopulateResponse={"QID4":{"1":"Depositor Name", "2":"<depositor>@email.arizona.edu"},"QID7":"Title of deposit"}

As it turns out, it is not necessary to provide Embedded Data in the Survey Flow. Providing the responses in the URL will suffice.

For questions with single field, such as QID7, it is fairly straightforward. For multi-field responses, passing another JSON for the question with specification of "1", "2", "3", etc. for the response fields will suffice.

  1. [X] This will be implemented with the Qualtrics API object with a function called generate_url() within feature/qualtrics2 branch

  2. [X] Suggested by @zoidy: We can use hidden embedded data fields to provide an article_id or curation_id. This would be a more stable way to identify deposit agreement for each deposit as information provided in the fields could be different from metadata information that is provided in Figshare (e.g., Name spelling, email address, etc). - Implemented in 44f4061

  3. [X] After embedded article_id, we will need to first search via this before looking at DepositorName info. - implemented in e7dcaef

astrochun commented 4 years ago
  1. [X] One tweak that I forgot is to return the URL within the workflow. This would be implemented in Qualtrics.retrieve_deposit_agreement. It should be implemented when ResponseId is not available and the user does not provide one. [06897dc]