Time Zone Pre-Processing
As well as being able to manage the timing of calls based on lower and upper time bounds (for more details, see
For details of how this is used by Softdial Campaign Manager™ to define valid times for calling records based on the called party's time zone and local legislation, see Pre-Processing a Campaign.
If a contact already has call time bounds, then these will not be recalculated, even if the data files are changed. To recalculate all time bounds, the time bound columns must be purged. For information on how to do this, see
Softdial Campaign Manager™ generates the time bound data (in UTC) based on the following information:
- legislatures.xml - a data file that maps state/ country code to time bounds in that time zone (must exist on the server - see Timezone Data Import)
- statecodes.xml - a data file containing postcode, telephone area code, state/ country code, time zone and Daylight Savings (must exist on the server - see Timezone Data Import)
- The postcode of each contact (if the data exists and the column was specified in the configuration)
- The telephone area code of each contact (if the data exists and the number of digits was greater than zero in the configuration)
- The state/ country code of each contact (if the data exists and the column was specified in the configuration)
- The time zone and Daylight Savings state of the server computer
For each contact in the campaign database, the action flow during pre-processing is similar to Fig. 1:
Fig. 1 - Time Zone Pre-Processing Flow Chart

Time bounding aims to restrict calling to the times mandated for a particular territory, state or jurisdiction. But in some cases, a customer record contains entries for post/ZIP code, number area code and state code which conflict, e.g. a New York number area code but a California ZIP code (as in the example below). It may be impossible to deduce whether the customer is actually in New York, California or somewhere else, and therefore which timings should apply.
When these conflicts occur, Softdial Campaign Manager™ sets the time bounding to the entries with the 'least risk', i.e. the latest lowerbound and the earliest upperbound. See the example below.
In cases where either
- no legislatures are matched, or
- no two boundaries' times overlap
...the record is not assigned with lower and upper boundaries and thus not dialed.
Conflicts can occur for a number of reasons, e.g.:
- area and ZIP codes are not perfect, and there are anomalies for both that cross state lines
- with number portability, area and ZIP codes can be entirely conflicting
To ensure the most accurate 'least risk' time bounding, users should
- include as much data for each customer record as possible
- ensure legislatures.xml and statecodes.xml are kept up to date, from publicly available sources

A customer record has a New York number area code (212), but a California ZIP code (95595). To find the 'least risk' time bounds, Softdial Campaign Manager™ performs the following steps:
-
Search for data matches
A query of statecodes.xml results in two matches:
<postcode code="95595" areacode="707" legislature="CA" timezone="-8" DST="Y" />
<!-- Zenia, Trinity -->
<postcode code="10292" areacode="212" legislature="NY" timezone="-5" DST="Y" />
<!-- New York, New York --> -
Retrieve bounding data
Softdial Campaign Manager™ matches CA and NY against legislatures.xml to retrieve lower and upper bounds for each.
<legislature code="CA" lowerbound="0.375" upperbound="0.875" />
// 0.375=9AM , 0.875=9PM
<legislature code="NY" lowerbound="0.375" upperbound="0.875" />
// 0.375=9AM , 0.875=9PM -
Convert times to UTC
Using the data in statecodes.xml, Softdial Campaign Manager™ calculates a timezone and daylight savings offset for each to convert times to UTC.
<!-- 9AM + 8hrs = 0.375 + 0.333 = 0.708,
9PM + 8hrs = 0.875 + 0.333 = 1.208 -->
<legislature code="CA" lowerbound="0.708" upperbound="1.208" />
<!-- 9AM + 5hrs = 0.375 + 0.208 = 0.583,
9PM + 5hrs = 0.875 + 0.208 = 1.083 -->
<legislature code="NY" lowerbound="0.583" upperbound="1.083" /> -
Assign the 'least risk' time bounds
Softdial Campaign Manager™ assigns the latest lowerbound and the earliest upperbound to the record:
lowerbound = 0.708
upperbound = 1.083
After the pre-processing task is completed, the Server Notifications displays a count of
- the number of contacts which were time zone pre-processed, and
- the number that could not be cross-referenced (and so will not be called)