8.8.19 Enhancements

Below is the list of enhancements by program for version 8.8.19

Click Here to go to the Release Notes/Bug Fixes for Version 8.8

Release of version 10.1 and deprecation of features

Version 10.1 is scheduled for release early in 2020 and with it will come some exciting new features along with the ability to add other new features in a more timely manner. You will be hearing more about version 10.1 in the upcoming months. Along with the new version we are planning to deprecate archaic, duplicate, and/or very rarely used features as to improve the overall code structure. In version 8.8.19 you will start receiving warning messages if you are still using any of these features.

List of deprecated features

Category questions
Loop questions
Field questions, sub-type Rotate
Rotate,s must be 10 columns (deprecate the 6 which is currently allowed)
Card/Column notation
Phone sub-type R
Remove 1 character language code
Mixing syntax on the Num question.   Must use keywords if any keyword is used (Range= required if any keywords used, deprecate the implicit Range=)
Study header option: test_only
Sound_server function
block/endblock compiler directives
highpoint compiler directive
allow_retake compiler directive
Phone Header option: cluster_location in fonefile
Phone Header option: cluster_active_callback_minutes
Phone Header option: use_bucket_order
Phone Header option: bucket_order
Phone Header option: invert_bucket_list
Phone Header option: exact_timed_calls
Phone Header option: dialer_userdata_location_width

List of features that are changing defaults
\:: to \: and vice-versa – \: will start showing the current answer to the question. If you want to show the original answer, you will have to use \::
The default setting for the parmfile keyword “FONEUTIL_AUTO_CREATE_HEADER_FILES” will be No. If you want to continue, getting the automatically created header when you convert or delete records, you can set this to Yes in your parmfile.


There is a new ~Set option MISSING_INPUT_FILES that allows you to control what Mentor will do when one of the files is missing on the Input Files= option.
The set option MISSING_INPUT_FILES= allows you to control how Mentor will treat a missing file, when multiple files are trying to be read.   The option can be set to Error, Warn, or Ok.  The default behavior is Error, so if one of the files is missing, then it is an error and no files are processed.   If you set it to Warn, it will print a warning, but process the rest of the files.  If you set it to Ok (not recommended), it will silently ignore missing files and process the rest of the files.   NOTE: The default behavior has changed. Previously if one of the files was missing, Mentor would get an error, but process the remaining files. If you want to continue with similar behavior, add the warn option to the mentinit file.

EX:  ~Set Missing_Input_Files=Warn



Survent extended function  “PHONE_HEADER_OPTION” returns the daypart and shop open and shut times from the phone file header.
The extended function Phone_Header_Option allows the user to get the daypart and shop open and shut times in the survey so you can do your own manual assignment and/or checking of callback times.   The function returns the 4 digit military time of the setting.


For the list of valid keywords or more information on this function, please see the section on functions.

EX: {Shop_Shut_Sunday: .4
!Expression,,XF(Phone_Header_Option(Shut_Sunday)) }

Survent extended function SURVENT_COUNT returns the current number of CATI interviewers or number of respondents waiting to be transferred from the IVR.
The extended function returns the current number of CATI interviewers on the study or the current number of respondents who are in the “heldin” queue waiting to be transferred from the IVR to a live interviewer.  This function is useful when doing “blended” studies where respondents are initially connected to the IVR (inbound or outbound) and then want to be transferred to a live agent.  This allows you to better manage the respondent experience, for instance, if there are no CATI interviewers currently on the study you likely would not want to even give the respondent the option to transfer out of the IVR.  The keyword CATI_interviewers returns the number of CATI interviewers and the keyword Waiting_Respondents returns the number of respondents in the wait queue.

EX:  {Current_Number_Interviewers: .4
!Expression,,XF(Survent_Count(CATI_Interviewers)) }

You can put records in the NAMED_HIDE stack directly from Survent.
The status codes used to Hide records (188 with a status and 213 without a status) will now take an optional argument which can be the Name of the named_hide that the record will be hidden under.  This can be useful for hiding records that you do not want easily revealed by other reveal statements.

EX:  !Phone,Set_Call_Status,188,Storm_Hide

The default for the parmfile keyword Allow_Hide_Reveal_Bad_Records is now Yes. 
Since almost all users want this Hide/Reveal runs to continue even when they encounter a bad record, we have changed the default to be Yes.  If you already have Yes in your parmfile, there is nothing to change.   If you do not have the keyword in your parmfile and want it to continue to stop when an error record is encountered, you will need to put “allow_hide_reveal_bad_records: No” in your parmfile.

You can add the option “NO_DAYLIGHT_SAVINGS_TIME”   to the timezone setting in the parmfile for those areas of the world that do not observe daylight savings time.
If you are in part of the world (for example, Arizona) that does not observe daylight savings time, you can add the option “NO_DAYLIGHT_SAVINGS_TIME” after your timezone setting and the system will automatically adjust how it handles the phone system when the rest of the world changes their clocks, but your shop does not.   You no longer have to manually change the timezone setting in the parmfile.   Note, we still recommend though that you reset the study server on the mornings when the rest of the world changes their clocks.

EX:  Timezone: 7, no_daylight_savings_time

There is a now a new log file that records all of the results from sample background processes that the study server runs.
There is a file called sample_operations_history.<yyyymmdd> that is stored in the super/logs sub-directory.  It records one line for every background process (hide, reveal, phonezap, etc) that the study server runs.  This is useful for seeing what was actually done by users.  There is a standard report that can seen in the Console (See the page ########).  The layout of the file is a fixed format, pipe delimited.

 Header Name  | Location| Description
 Operation    |   1-15  | Type of operation that was performed, hide, reveal, zap, etc.
 StudyCode    |  17-46  | 30 character studyname
 SupervisorID |  48-67  | Station number if terminal mode, user ID if run from the Console
 Start_time   |  69-82  | When process started in the format YYYYMMDDHHMMSS
 Stop_time    |  84-97  | When process stopped in the format YYYYMMDDHHMMSS
 Select       |  99-148 | First 50 characters of the select statement that was used
 Seq          | 151-155 | Sequence number of the operation since the study server started
 Read         | 157-166 | Total number of records record
 Selected     | 168-177 | Number of records that met the selection criteria
 Used         | 179-188 | Number of records that were actually used
 Total        | 190-199 | Total number of records in the file (this can be less than the records read if the process was stopped)
 Added        | 201-210 | Number of records added if operation was a phoneadd
 Rejected     | 212-221 | Number of records rejected if operation was a phoneadd
 Duplicate    | 223-232 | Number of records not added because they were duplicates if operation was a phoneadd
 Dnc          | 234-243 | Number of records not added because they were in the dnclist if operation was a phoneadd
 Status       | 245-254 | Status of the run, usually FINISHED, but can be STOPPED if run was halted for some reason
 Options      | 256-300 | For any of the operations that have options (like the phone status for phone_kill)

The Supervisor keyword ALLOW_QUIT_WHILE_BACKGROUND_PROCESSES_ARE_ACTIVE allows the process to quit even though a background process (hide/reveal/etc) started by this process is still running.  
The Supervisor keyword ALLOW_QUIT_while_BACKGROUND_processes_are_active allows the process to quit even though a background process started in this session is still running.  This is  so that shell scripts that are running the Supervisor in the background do not have to wait around for the background process to finish.   This is mainly for Console applications, but can be put into custom scripts as well.   Note, that is you are running command line now and try to quit while a background process is running it will prompt you if you want to quit rather than hanging waiting for the process to quit.   You still cannot quit though if interviewers are assigned to the Supervisor process. They still must be stopped or cleared.

The Supervisor keyword SHOW_SAMPLE_OPERATIONS_QUEUE shows the status of the currently running background process plus all of the others that are queued up.
The Supervisor keyword Show_Sample_Operations_Queue shows the status of the currently running background process along with all the other background processes that are queue up for the study server.  This is useful when you have a lot of large background processes to run and you want to know about how much longer the current one will take or about how long it will be to others you have issued commands before will start.   Also, it can be used in conjunction with the STOP_SAMPLE_OPERATIONS keyword to remove less important processes from the queue.


 Start Sample Operations Queue Status
 Active: (36) 18:15 HIDE station:373 study2
 Select: ([17#4])
 Status: Read:8978 Total:719100 Selected:0 Used:0
 Queue: (37) 18:14 ZAP station:293 study1
 Select: ([55#7])
 Queue: (38) 18:14 HIDE station:373 study1
 Select: ([405#7])
 Queue: (39) 18:14 HIDE station:293 study2
 Select: ([210.3#98])
 End Sample Operations Queue Status

The Supervisor keyword STOP_SAMPLE_OPERATION allows you to stop either the currently running sample_operation or any queued up one that was started by this user. 
The Supervisor keyword STOP_SAMPLE_OPERATION takes a parameter which can be either the keyword “current” to stop the currently active one or the sequence number to remove a queued up operation.   User can only stop an operation they initiated.   If you try to stop an operation that is not yours, you get a message you cannot stop that process because it was started by a different user.  This can be useful if the wrong command or incorrect select statement was given and you want to stop the process from continuing.   You can get the queue number by using the

EX:  Stop_Sample_Operation Current


Enhancements/Changes to the hand-dial phone option
The !Phone,Hand_dial option has changed such that it no longer waits for the interviewer to enter the number.  It just moves on in the interview and whatever number the interviewer dials is the number that is dialed.  If you want to maintain the old behavior such that Survent waits for the number to be entered on the hand set and then confirms they dialed the correct number, use the new !phone,verify_dial option.

EX:  {Verify_dial:
     !Phone,Verify_Dial }

Play a recorded message when an answering machine is detected
There is now a third setting for answering machine detection that allows the dialer to play a sound file when an answering machine is detected.

have_ans_machine: recording= <filename>

Example: have_ans_machine: recording=notavailable

As you can see when you supply the filename you only include the base name not the file type. The audio file to be played must be uploaded to the dialer, this can be done either via the Survox Dialer Upload option in the Project Setup menu and then choose Playback Files as the location to upload to.   The file type to upload can be wav or mp3 and the system will convert it appropriately.

Clearing a study on the dialer
You can now clear a study on the dialer.  On a rare occasion a study can get into a “limbo” state such that you cannot start it up again because the dialer thinks the study is loaded, while the study server does not.  You can now clear the study using the CLEAR_STUDY_ON_DIALER command to clear that study.

CLEAR_STUDY_ON_DIALER #<dialernumber>   <studyname>

#<dialernumber> is optional if only 1 dialer is currently operating

IVR no longer immediately shuts the study down when it is out of numbers
When an IVR study is out of number, it now goes to “sleep” for at least a minute (longer if you set the Out of Numbers Delay value higher) and then tries again. It remains in this state until the study is either manually shutdown or the study hits the “shop” close time for that day. You will still need to make sure the study is brought back up the next day.

Manual Dial and Dialer Basic Audio Monitoring
An enhancement has been made to allow monitoring of manual dialed and dialer based calls using any soft-phone that is registered to the Survox Dialer.  You do not need to have access to a computer to do this type of monitoring.   See the section on audio monitoring on the dialer for more information.

IVR Multi-language support
IVR now supports switching languages within the survey using the !system,set_language function.


You can now archive multiple studies at one time.
The menu that allows you to choose which studies to archive has been enhanced to allow for multiple choice so you can archive as many studies as you want assigned to a single client at one time.  See the section on archiving studies in the Console for more information.

You can now directly output converted data sets to an SPSS .sav file
There is now an option when you reformat data to create an SPSS .sav file without having to run a second process to convert it. However, the PSPP utility must be installed in the system and be in the search path for the Console to find the conversion utility. See the section on data-conversion in the Console for more information.

You can now directly read in a Microsoft EXCEL .xlsx as input for sample
There is now an option that allows you to upload a .xlsx file directly into the Console and it will automatically convert it to a delimited file that then can be imported as sample. See the  section on importing sample in the Console for more information

You can now track the progress of background processes directly in the Console
There is a new page under manage sample “Sample Task Queue” that allows you to monitor where your current background task is at or if it is queued up behind other tasks. You can also get a history of the last 7 days to tasks that have been run against a particular study. See the section on Sample Task Queue in the Console for more information.

The Console now supports LDAP authentication for logins
You can now set up a company such that it can use LDAP authentication for logins. Support for LDAP allows users to have a unified single login/authentication process for the software programs they use. See the section on adding/editing a company in the Console for more information.

You can now directly audio monitor a station from the visual monitoring page
From the visual monitoring page, you can click on the interviewer you want to audio monitor as long as you are connected to the same dialer they are.