In this article
You may wish to schedule return calls so that they are made by the same interviewing agent who originally made the appointment. However this can cause problems if for example the interviewing agent is unavailable when the appointment is due (they might not be working/logged in or they might be busy on another call). To help overcome this it is possible to set the expiration logic so that the system can take into account the logged-in status of the assigned interviewer. If the interviewer assigned to the appointment is not logged in, then the call can be re-assigned to other interviewers who are for example working on the same survey. Alternatively, if the interviewer is logged in but busy, then the assignment can be held to the agent for longer.
A worked example is shown below. In this case three separate sub-rules are defined for calls with the "Appointment" status.
Note: It is important that the appointment sub-rules are defined in the same order as shown in the image.
Figure 1 - Example of a scheduling script used to set up the expiration time for an appointment
The three sub-rules in the image above are used to process calls with the "Appointment" extended status. Sub rules 1.1 and 1.2 use filters, so if the appointment does not meet the conditions set by these filters it is processed by sub rule 1.3.
- Sub-Rule 1.1 handles expired appointments in the event the assigned interviewing agent is logged in but is busy with another job. To this end the "IsCallExpiredWithResourceLoggedIn" function is used in this sub rule as a filter. The function argument with the value of "15" in this example extends the appointment expiration time for another 15 minutes. During this time the system continuously checks if the status of the interviewer has changed, and if the agent becomes free then the appointed call is delivered immediately. If the extended timeout completes and the interviewer has still not picked up the appointment, then expiration sub rule 1.2 will take effect and the call will be re-assigned.
- Sub-Rule 1.2 uses the function "IsCallExpired" as a filter. This means that if the interviewer who created the appointment is logged out at the time when the appointment expires, the system will re-assign the expired appointment so another interviewer can work with it.
- An action “Assign user/group” with a parameter value of “-3” within the appointment sub-rule removes the appointment lock for the currently assigned user/group. Ensure that this action has the property “Filter enabled” activated.
- The subrule should also contain two additional actions, one to set a high priority (with a value of "999" in this example) and another to make the call due with immediate effect ("Set Time to NOW" with a value of "0"). The “Filter enabled” property must also be activated for these actions.
- Sub-Rule 1.3 sets up the appointment to be assigned to the interviewer with a short expiration of one minute. This means the appointment will expire if it is one minute overdue and the interviewer is not logged in. An action “Assign user/group” with a parameter value of “-2” within the appointment sub rule locks the call to the user/group. Other actions set the expiration period:
- Set Call Expiration Timeout - this is the time in minutes that the system will wait for the assigned interviewing agent to pick up the appointment.
- Additional actions are used to give the appointment a high priority value (1000 in this example) and to attempt to deliver the appointment directly on time (0 minutes before the due time).
Important
When working with a survey in Predictive dialing mode it is essential to ensure that any call that are assigned directly to an Interviewer are not scheduled to be dialed predictively. For any calls assigned to Interviewers explicitly it is therefore essential to set the dialing mode for the calls to Preview using a Set Dialing Mode action.
Once the rules have been configured, click Save and Launch on the tab's toolbar to activate the changes for any survey projects currently using this set of scheduling rules. The launch process will automatically save the scheduling rules in the current state without the need to perform a separate save step.