Restrict user to resubmit the survey based on an embedded data value | XM Community
Skip to main content

We are using Salesforce. We are able to get the surveys via email. From email the user launches the Qualtrics survey and on submission it creates a record in Salesforce. We are using same survey for all the Cases. We therefore want to restrict the user not to resubmit the same survey for the same case again. 

Survey->Security->Prevent Multiple Submission: this option won’t work as it restricts the survey for other cases as well. 

We have the SF Case ID as an embedded data. Is there a way to check if the particular Case Id already has the survey submitted? So that we can conditionally show the survey.

@soellmtt You could work with some kind of “reverse” authenticator element and a mailing list.

  1. Create a workflow which creates an entry in a mailing list (e.g., via Qualtrics API) for each recorded response. The mailing list contact should contain the case ID as external reference (extRef property of the API). The mailing list is your summary of all case IDs for which the survey was already executed in the path. It must be automatically updated with the workflow when a new case ID is added.
  2. Add an authenticator element in your survey flow at some step where the case ID is available as embedded data. Prefill the authenticator with the case ID mapped to the external reference of the mailing list. In the options of the authenticator, the max auth attempts must be set to 1. 
  3. Within the authenticator, place some “End of Survey” message which shows a custom text like “Sorry, but this case was already processed” and check the end of survey option to not record this response. The workflow should also not be executed for this case. This should automatically be the case if you do not record the response at all. 
  4. Below the authenticator element, place your regular questionnaire for case IDs that were not yet processed.

So the workflow should somehow look like this: 

And you would need the workflow to be implemented.

Another option could be to regularly update some supplemental data, use this in the survey flow and search it by the case ID. If the resulting embedded data is e.g., empty it would mean that there is no entry for the case within the file and you could continue the survey. If an entry is found, the response should not be recorded. However, this has a huge disadvantage as you need to regularly update the file with new cases. No automated process.

Best
Christian 


Thank you, it is much helpful. We have successfully created a Webservice in Workflow to update the mailing list with caseid. It now looks like below:

 

 

However, the authentication part is not working as expected. And it always shows the survey, if we use either “caseid” or “dummycase” as Pre-fill value in Authenticator. Here the maximum auth. attempts is set to “1”

 

 

 

 

 

 


We have resolved this issue by creating two webserices. One in a Workflow to save the caseid in a mailing list (same as your point “1”), and another in Survey Flow to query the caseid from mailing list, like below:

 

 

Thank you very much on providing the guidelines. 


@soellmtt The issue could have been because of setting „ALLOW AUTHENTICATING RESPONDENTS TO RETAKE AUTHENTICATED SECTION“ in the authenticator element which needs to be enabled as well. But good you found some solution.


Leave a Reply