Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

Redirecting Incomplete-status and Respondent Number

I am looking for a possibility to redirect the status 'Incomplete' (when a respondent dropped out or closed down before finishing the questionnaire) and the respondent internal number to another database.
It works with Qualified/ Complete and Disqualified of course after passing Terminate but I dont see how to redirect 'Incompletes'. Is there any Script or something to send the two response information status and number stored in the Admin module)?
Thanks!
Andrew
asked Feb 29, 2012 by Andrew Bronze (1,335 points)
edited Mar 1, 2012 by Andrew

1 Answer

0 votes
One possibility is to set every record in your database to INCOMPLETE before the survey commences. Those respondents who complete the survey or are disqualified will updated the database accordingly.

One of the problems with incomplete surveys is that you never know when or if the respondent will come back to the suspended survey.

This maybe a simple solution to your problem?
answered Feb 29, 2012 by Paul Moon Platinum (101,405 points)
All respondents in the database are marked as incomplete until they are marked as something else.  So you don't need to mark them at all.
Agree Mike but Andy is passing the information out to another database which isn't aware of this.
Then you would have to run a script on the second page that copies the info to the other database just like the disqualifieds and completes.
I think it is not the problem not to know whether a respondent comes back or not to finish the survey or to start over again. Every respondent has a unique id and the external database could be updated with new information concerning status (Disqualified --> Completed). The problem is when a respondent drops out before reaching a terminate question and the termination status can not be redirected somewhere else in this moment (but to the admin module). So maybe there is a possibility to pass out the information from the admin module and redirect it to another database.
If a respondent just closes their browser and suspends the survey, your database will never be updated. If you were just wanting a database to be updated, that's why I thought you could set everyone as an incomplete status before the survey commences because all disqualified and completed surveys will update the database without any problems, hence, leaving the remaining respondents as incomplete (or not started).

If you are wanting a respondent to see another screen if they close down their browser (because they are suspending the survey), that's a trick Sawtooth are best to answer. It would be nice to have a respondent who intends to stop the survey be presented with a suspension page and from there you can update your database.

I'd love to see a suspend button in between the forward and back buttons. The suspend button takes you to a page (like a terminate screen) which enables you to update a database (as you do) and remind the respondent of the closing information for the survey.
External database would be updated when a respondent (assuming that he comes back) finishes an suspended questionnaire (first from incomplete to complete in admin module). Provided I could pass termination status from the admin module. Complete/ qualified/ disqualified can be passed right away. Only status 'incomplete' in external database is missing so far.
A 3rd-party needs this information in realtime so I thought there is a way (or a script to grap the information from admin module) to send it automatically just like termination status.
Thanks so far!
You can use unverified perl to do this when the respondent enters the survey.

You will need the same information to connect the external database as the one for SSI Web (database name, user name, password, remote address, port).

So for page 2 of the survey you could have code that looks like this.

[% Begin Unverified Perl
#Assuming MYSQL connection
my $strConnectInfo = "dbi:mysql:database_name:database_address:database_port_if_needed";

my $Dbh = DBI->connect($strConnectInfo, "database_username", "database_password");

my $strSQL = "INSERT INTO `external_dbtable` (`respondent_field_name`) VALUES (?)";

my $sth = $Dbh->prepare($strSQL);
$sth->execute(RESPNUM());
$sth->commit();
$Dbh->disconnect();

End Unverified %]
Thanks, sounds good, I will try this!
...