Methods and system for optimizing a campaign6954731Abstract Methods and a system of optimizing campaigns are provided. A campaign is identified and associated with a campaign contact list. Moreover, factors which indicate whether a contact during the campaign is a business success or a failure are provided. Further, each contact is associated with one or more demographic attributes. Each completed contact is maintained in a completed contact list and determined to be associated with the success factor or the failure factor of the campaign. A correlation is determined based on at least one of the success factor or the failure factor and one or more of the demographic attributes. A remaining contact list including non completed contacts from the campaign contact list may be sorted based on the determined correlation or logically retrieved and provided to a Call Service Representative. Claims 1. A computer-implemented method for optimizing a campaign, using said computer to perform the steps comprising: Description FIELD OF THE INVENTION
Where the newly added field for the Success column is used to identify a successful contact and the Failure column identifies a failed contact. Success and failure conditions are evaluated by conditional expressions, or by manual indications made by the CSR via automated display screens popped to the CSR's display screen (discussed below). The Skip column is added to identify a particular contact record where a success or failure condition could not be ascertained and is used by the success correlator (discussed below). The Non-sort column is added to be used by a sorter set of executable instructions (discussed below). Predicted-success column is also used by the sorter (discussed below). The Tables column will contain a variable length string which identifies the table and column names associated with fields in one or more data stores where one or more demographic attributes associated with a particular contact may be acquired. The CTI package will provide a contact id which is operative to uniquely locate from one or more data stores the column values associated with the column names of the Tables column. Demographic attributes include, by way of example only, such things as age, occupation, address, city, state, gender, size of family, income, ethnic origin, and others. Once the CTI package is augmented with the above additional columns in the contact record, a global record maintained by a campaign optimizer set of executable instructions may be used to optimize each campaign. The campaign optimizer may be singly deployed for a plurality of campaigns being simultaneously managed and optimized, each campaign uniquely managed by a single global record with the following fields, by way of example only:
Where the. Campaign-id identifies uniquely the campaign being managed, this is the primary key used to access the global campaign record. The Success-vars and Failure-vars are varying length strings which are used by a success analyzer set of executable instructions to evaluate whether a contact made is a business success or a failure. The string information embedded in these fields may be provided by an analyst equipped with an appropriate API which will translate the various conditions into computer readable and computer evaluatable conditional expressions or automated dialogue boxes for the CSR to manually identify successes or failures. These two fields each contain a string representing a conditional statement which is itself comprised of multiple boolean expressions connected by AND or OR logical connectors (which have equal precedence, the statement being evaluated left to right). Each boolean expression relates constants and/or variables with any of the standard boolean operators (like =, <, >, <=, >=, <>) to obtain a boolean answer (True, False)). There are two types of variables: TABLE variables, those obtained from database tables, and DIALOG variables, values obtained from a CSR's response to a pop-up dialog box. Variables are defined with the following fields:
Where the Type field holds a string value of either "Table" or "Dialogue." A "Table" value indicates that the variable must be fetched from a database table identified by the Location information (specifying all location information down to a data store table and column) in a row identified by using the Customer-key (e.g. passed by the CTI package as contact-id). A "Dialog" value indicates that the variable value is to be determined by the CSR's choice of a response in a dialog box constructed from the Dialog Info. The Success Analyzer parses the Dialog Info into a dialog box containing a query and two or more mutually exclusive responses. The result is a number. The CSR will not be able to proceed to the next contact until the dialogue window(s) is(are) addressed. In this way, a manual determination of success or failure may be identified by an automatically constructed dialogue window and used by the success analyzer. Although as one skilled in the art will appreciate, a variety of different techniques my be employed to achieve a CSR driven determination of a contact's success or failure. In this way, the Success and Failure fields of the global campaign record are evaluated by the success analyzer set of executable instructions yielding a True or False result for the just completed contact. This result may be derived from one or more table values (like the amount of the order taken during the contact) or one or more dialog box results or a mixture of both. As described above, the Success and Failure fields of the global campaign record may be used by the success analyzer at the close of each contact to either automatically determine success or failure or to manually (although in an automated fashion) permit the CSR to select an option via a dialogue window wherein success or failure may be determined. Once the success analyzer determines success or failure the augmented contact record being maintained by the CTI package may be modified so that either the Success or Failure boolean columns have their values set to either "1" for true or "0" for false as is appropriate. Moreover, once the contact record is identified as either a success or a failure it is correspondingly known to have been a completed contact. Continuing with the description of the fields associated with the global campaign record, the Interval column is used by an optimization manager set of executable instructions to determine how often a correlator set of executable instructions should be initiated, described below. Furthermore, the optimization manager may alter this interval period if the success ratio per interval associated with the campaign is not improving sufficiently well enough. For example, if the Interval field value for a campaign is initially set to 15 (an indication that the interval is 15 minutes) and the optimization manager detects that the success ratio for the interval periods (contacts in the interval identified as success versus the total number of contacts during the interval) are not improving (e.g. remaining at 25%), then the optimization manager may switch the period within which a success correlation is to be determined from 15 to 30. In this way, the optimization manager is capable of automatically determining the optimal level within which a success correlation is to be determined. Finally, the Dem-vars column is comprised of a series of fields which identify the demographic attributes associated with the contacts of the campaign, these fields are similar to the variable definitions in the Success and Failure sub-fields, as described above, but will have Type values of "Table," additionally, a count field is provided since the Dem-vars are one to many demographic attributes, the count field permits parsing of the Dem-vars string for each individual demographic attribute. With the above discussion examples depicting one embodiment, of a structure and a layout of the present invention as a foundation, the methods and system of the present invention will be discussed. FIG. 1 illustrates a flow diagram of one embodiment of a method for optimizing a campaign. In step 10 a campaign is received, the campaign is associated with, by way of example only, a contact list (managed within a CTI package), and conditional expressions or text which are operable to be embodied in a computer readable medium which when evaluated may determine whether a particular contact within the contact list may be associated with a campaign success or a campaign failure. As discussed above, the CTI package is augmented using the existing CTI's API so that additional fields of a contact record associated with each contact within the campaign includes a success field and a failure field. Moreover, a campaign optimizer for managing one to many campaigns maintains information for each campaign, and is capable of identifying each campaign uniquely by a campaign id. Typically, the CTI package will provide the campaign id for each contact list being used within a campaign. However, as one skilled in the art will appreciate it is possible to augment the CTI contact record so as to include an additional field where the campaign id is hardcoded. In this way, the campaign optimizer is capable of identifying and receiving the campaign and the contact list (step 30). Individual contacts will have provided CTI contact ids which correspond to customer ids and permit access to the appropriate data store records where necessary. Moreover, the CTI contact records are augmented to include a field which permits one to many demographic attributes associated with a contact to be directly associated with the contact (discussed above). Again, any particular contact may have its demographic variables referenced by using the contact id as a key along with the fields parsed from the Tables field which augments the contact record. Any demographic attributes which are to be used to determine a success or failure condition for the campaign will need to have non null values, if a particular contact has a null value for a demographic attribute associated with a success or failure condition or if any other anomalous condition precludes grading a contact as a success or failure, then the augmented field of the contact record identified as Skip is set to "1" or true. In this way, records which contain these types of error conditions will not be evaluated for purposes of determining any correlation associated with the demographic attributes. Once a CSR completes a contact, the contact may be logically assigned to a list associated with completed contacts (step 20) and before the CSR may continue to the next contact within the contact list (remaining list, step 40), a trap is raised and the success analyzer is called. Further, the campaign optimizer's unique campaign information includes Success and Failure fields which are associated with the campaign (discussed above). These fields are retrieved by the success analyzer at the completion of each contact within the campaign and the conditional expression evaluated in light of the values associated with the referenced demographic attributes. Once a determination is made as to success or failure, the appropriate value of the contact record is set (step 70). Further, if a conditional expression is not available but, rather, the success or failure is to be determined by the CSR using a dialogue window, then the appropriate dialogue box is popped on the CSR's desktop and a selection made (process discussed above). After the selection, the appropriate value of the contact record is set for success or failure (step 70). The success analyzer has access to the contact record via the campaign id and the contact id where modification to the augmented records may be readily made. Once success or failure is determined, the campaign optimizer checks the campaign interval field to determine if a new interval has occurred. If an interval has expired the campaign optimizer passes to the optimization manager the current interval field value along with a sequential interval number. The optimization manager maintains information relating to the campaign's intervals and records, associated with previous success ratios from prior intervals. Moreover, the optimization manager initiates a call to the correlator and the sorter. At the end of an interval period, the optimization manager calls the correlator. The correlator will process all records in the completed contact list which were completed during the last interval period. By way of example only, processing only contact records which were completed during the last interval may be accomplished by having the optimization manager pass to the correlator the sequential interval number and the ID of the last contact record processed, the correlator then simply scans up the list marking each contact record with the sequential interval number until it detects a contact record which already has an interval number (indicating that contact record begins a previous interval which has been previously processed). Next, the correlator (step 80) will proceed to process the contact records identified as completed and belonging to the current interval. Records with a skip flag set are not processed, similarly records with no success or failure flag set are not processed. Having, identified only those contact records which need to be used to have a correlation established, the correlator proceeds to process the set of contact record's from the just completed time interval, mathematically correlating each individual demographic attribute against either the success fields or the failure fields from the call records. Each correlation derives a correlation coefficient for the demographic being evaluated. The correlation coefficient is a number between 0 and 1. When the correlation coefficient is greater than some threshold (for example 0.65) it is deemed to be significant. There may be more than one significant correlation in which case each significant demographic is given a weight associated with predicative value of success for that particular demographic. The weight is a decimal number from 0 to 1 with the sum of all weighting factors equaling 1. The correlation process also determines the range of values the demographic must have to be significant. Although as one skilled in the art will appreciate, the particular weighting factor for any demographic attribute being compared against either the success or failure fields may take on a range of values depending upon the campaign and decisions of a business analyst and correspondingly what determines a significant weighting factor is adjustable and modifiable and may be provided to the correlator so as to be configurable. Determining the statistical correlation between a series of variables is readily knowable to those skilled in the art, and standard techniques may be deployed to account for discrete variables (e.g. gender) versus continuous variables (e.g. income level), which are associated with the demographic attributes. Moreover, a multi-variance (multi-dimensional) statistical algorithm may be deployed to account for the dependence among all the demographic attributes in relation to the success or failure field, rather, than accounting for each demographic variable in isolation. Upon completion of the correlator, each demographic variable will have a weight associated with it indicating its probability of either being a successful or unsuccessful contact. The correlation results which include the identity of the demographics which have been found to correlate with success (or failure) together with the value ranges that demographics must have to be predictors of success (or failure) and the weighting factor for each demographic are passed to the campaign list sorter via the campaign optimizer manager. The list sorter then uses this information to find call records that predict to be successes. Once the correlator is completed the optimization manager receives a total number of completed records processed along with the number of successful records and then uses information this to assign a success ratio to the current interval being evaluated. As previously stated, the optimization manager may check the various success ratios with prior intervals and determine that an interval length change needs to be made, or the optimization manager may detect that the highest correlation weighting factor associated with any one demographic attribute is not significant (this is configurable), if this occurs the interval length is adjusted by the optimization manager by modifying the Interval field for this particular campaign (using the campaign id) in the campaign optimizer. This modification to the interval length will result in an automatic adjustment (step 120) to the correlation upon the next call to the correlator. Next, the sorter is called receiving the contact list, the demographic weighting factors, significant demographic identities and the value ranges they should have, and the interval length acquired from the campaign optimizer. Also, the sorter will be passed the number of records needed to accommodate calls that are needed to fill the next optimization interval. Further, the sorter will receive an adjustable and configurable number which is indicative of a percentage of contact records which are to be sorted into the remaining contact list (e.g. those contacts not yet processed by the correlator or without a skip flag set) without regard for the demographic weighting factors determined by the correlator. This sorting of the remaining contacts without regard to the correlation is referred to as seeding the remaining contact list, step 100. This ensures that some contacts made during the next interval period by the CSR are to contacts which are randomly placed before the CSR and not predetermined by sorting the list based on the correlation weighting factors (step 110). In this way, the sorter, ensures that the correlator is able to detect during its next cycle new patterns or correlations occurring during the campaign. Moreover, any contact which was determined to be seeded randomly, will have its no sort flag set, in this way a standard statistical algorithm deployed in the correlator may give a higher weighted factor to demographics associated with non sort records, thereby, permitting the correlator to detect environmental changes occurring during execution of the contact campaign list. For example, if during the first interval of the campaign a correlation factor for a demographic attribute of gender was determined to be statistically significant in that no males were successful contacts and 30% of the females contacted were successful. Then, assuming an environmental change occurs outside the scope of the campaign, for example, the super bowl ends, if in the next interval a certain percentage of men were not randomly seeded into the remaining contact list for the CSR to contact, the system would not detect that in fact men were now likely to be successful contacts. In this way, the contact list is continuously improved and modified so that individuals are contacted at times which they are most likely to be receptive to the contact campaign. The seeding of the remaining contact list with random contacts without regard to the determined demographic correlation will also result in an adjustment to the correlations (step 120) during the next interval calculation. By way of example only, the sorter may randomly seed the remaining contact list by maintaining a counter which is initially set to 0, each time a contact is bubbled to the top of the remaining list, because it has a significant demographic correlation associated with one of its demographic attributes, the counter is incremented. Once the counter reaches a set number (percentage which is configurable and adjustable), the current record being processed in the remaining contact list is bubbled to the top of the list. This bubble sort algorithm is one of many sorting algorithms well known to those skilled in the art, and a variety of other sorting techniques both standard and ad hoc may be developed to randomly seed and sort the list. Finally, the sorter is configured to know the number of calls which a CSR may make in a certain time interval and correspondingly only sorts and seeds the appropriate number of contacts to the top of the remaining contact list for a given interval length. This number is calculated using recent operational statistics obtained from the CTI system. Further, any sorted remaining contact has its Predicted-success field set to a boolean value such as true where initially all contacts have a Predicted-success field value of false. Although, the average weighted correlation factors for each remaining contact in the contact list may be written to the contact records Predicted-success field as a percentage value as opposed to a boolean value. Moreover, it may be desirable to remove contacts all together from the contact list based on extremely low correlation values, this may be done in step 90. Likewise, contacts not originally in the list could be mined from the data stores using the correlation value to acquire new contacts not originally associated with the contact list in step 50. Further, as one skilled in the art will appreciate, the correlator could after determining the correlations insert a Predicted-success value for each of the remaining contacts in the remaining contact list and in this case the sorter would simply sort on the Predic-success field of the remaining contact records and randomly sort records without regard to the Predicted-success value. Moreover, as one skilled in the art will appreciate, no sort is needed at all since standard database queries using the Predict-success field and other fields could retrieve for a CSR records identified as potential successes without the need to actually alter the remaining contact list. By way of example only, the correlator could alter the Predict-success field and a database query could search the contact list for remaining contacts with the Predict-success field set to "1" or true, then only the number of calls which a CSR could handle during the next interval are provided to the CSR. Further, no Predict-success field is needed at all, since the demographic and their relationship to success or failure could be directly provided in a database query which is tasked for retrieving contacts which are potential successes. In this way, the contact list is not altered at all but, rather, logically provided to the CSR in an ordered manner. Logging information about each interval may be tracked and recorded, such that a reporter set of executable instructions may read each interval along with the success ratio associated therewith and produce a graphic user interface (GUI) display for business analysts to review or monitor, such that manual interval modification could be interjected by an analyst who is detecting trends visually on a GUI presented graph. Various information could be presented such as, by way of example only, predicted success rates versus actual success rates per interval, multiple windows displaying simultaneously occurring campaigns, and the like. Moreover, third party report generators could be provided the logging information and, thereby, generating customized reports (e.g. Acuate, Crystal Reports, and others). Reports displayed visually on a display screen may also be printed in a hard copy format. FIG. 2 illustrates one embodiment of a system 130 for optimizing a campaign. Architecturally, a single contact campaign may be optimized, by way of example only, the system 130 depicted in FIG. 2. Although, as one skilled in the art will appreciate alternative structures are possible without departing from the invention herein disclosed. Each campaign 160 is comprised of completed and remaining contacts 170 with each contact being identified, at some point during the campaign 160, as a success or a failure 180. Identifying completed and remaining contacts may be accomplished logically by flagging contact records with the appropriate values for fields contained within the record, as discussed above. A campaign success identification and a campaign failure identification, may be made upon the completion of the contact via an automated evaluation of a conditional expression or via automated screen dialogue boxes presented to the CSR for manual resolution, as discussed above. Information regarding the campaign being managed and the success and/or failure evaluation is managed by a campaign optimizer 150. Individual contact success or failure evaluations is determined by an outcome analyzer 140. Moreover, a single instance of a campaign optimizer 150 may be used to manage more than one campaign 160. Contacts 210 are acquired from one or more data stores 200 wherein each contact is associated with one or more demographic attributes 220. A particular campaign 160 is associated with a subset of all available contacts 210 and identified as campaign contacts 190. As one skilled in the art will appreciate, a single contact may be associated with one to many demographic attributes 220 were each attribute originates from one to many different data stores 200. Access to the information contained in the data stores is achieved using standard data store queries, where a contact id and a campaign id provide primary access to desired records, as previously presented. By way of example only, standard CTI packages are augmented so that contact records associated with a campaign are associated with one or more demographic attributes 220. At configurable intervals, an optimization manager 250 will initiate a correlator 240 wherein completed records are evaluated. Completed contacts 170 associated with the campaign contacts 190 which have been flagged as a success or a failure 180 are evaluated using standard statistical methods well known in the industry against demographic attributes 220 to establish success or failure correlations. Selection of the statistical computation is based upon whether the demographic attribute is associated with a discrete (distinct) versus a continuous (indistinct) variable. Moreover, the relationship between success or failure may be accomplished so as to determine the dependency among all the demographic attributes 220 by using multi-variance statistical computations, also well known in the art. Once a success or failure correlation is established, a contact sorter 230 is initiated by the optimization manager 250. The contact sorter 230 receives a configurable interval period associated with the campaign optimizer 150 which identifies the interval length within which correlations are currently being made. Moreover, the contact sorter 230 is configured to know how many contacts a CSR may handle in a given interval. Further, the contact sorter 230 may be configured to determine a significant weighting factor and a seeding factor. Once initiated or provided access to the above information, the contact sorter 230 proceeds to sort contact records into the CSR's remaining contact list 170 for the next integral contact period, contact records identified as potential successes by using the correlation established by the correlator 240. Moreover, some records will be sorted in the next interval period without regard to the correlation determined by the correlator 240. As previously discussed, this seeding of the remaining contact list will ensure automatic adjustment to the correlation determined by the correlator 240 in the next interval period of the campaign 160. In this way, contacts are contacted by a CSR at time periods within which they are more statistically likely to positively receive any sale's pitch or promotional offer being conveyed by the CSR. FIG. 3 illustrates another embodiment of a system for optimizing a campaign. In FIG. 3 a campaign is initially generated in step 270 and a campaign list acquired in step 280 from one or more data stores 300. Next, a CTI package provides for managing individual contacts in the campaign list in step 290. Once a CSR completes a contact a trap is raised causing an analyzer 320 to evaluate the completed contact to determine if the contact was a success or a failure. The success or failure of the completed contact is recorded with the contact record. At configurable intervals, an optimization manger 260 initiates the calling of a correlator 330 where completed contacts in the contact list are evaluated using standard statistical correlation which determine correlations between a contact's success or failure and each of a contact's associated demographic attributes, as previously discussed. Further, the optimization manager 260 initiates a sorter 340 upon completion of the correlator 330 wherein the remaining contacts which are to be presented to the CSR during the next campaign interval are sorted based upon any correlation determined by the correlator 330. A configurable percentage of records presented in the next campaign interval will be sorted without regard to the correlation determined so as to identify in the next determined interval period changes with respect to the correlation which are occurring within the contact population based upon outside environmental factors, as discussed above. Lastly, additional data stores 350 provided to the analyzer 320, the correlator 330, and the sorter 340, through a standard data interface mechanism, demographics that are not stored in the campaign call list. FIG. 4 illustrates a flow diagram of one embodiment for a method of optimizing a contact list during a campaign. Initially, a campaign is identified in step 360 and a contact list associated with the campaign is received in step 370, along with data references which permit access to one or more additional data fields associated with each contact in the list. Access to these additional fields is achieved using a contact id and acquired from one or more data stores. Moreover, some of these additional data references identify demographic attributes associated with any particular contact. As the campaign ensues, completed contacts in the contact list are logically identifiable in step 380 as are remaining contacts in step 430. Each completed contact is determined to either be a successful contact or not. At adjustable intervals, a check is made in step 390 to determine if a correlation is to be established in step 400. Using the data references associated with demographic attributes of the contacts, a standard statistical correlation is determined (step 400), and the remaining contact list is sorted in step 410 and seeded in step 420 with an adjustable percentage of remaining contacts without regard to any predictive success value identified by the demographic attributes. The remaining contact list is traversed by the CTI software and checked in step 440 to determine if all contacts have been made in the campaign and if all contacts are completed in step 450 the campaign terminates and reports are generated, as appropriate. The foregoing description of an exemplary embodiment of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive nor to limit the invention to the precise form disclosed. Many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the above teaching. Accordingly, this invention is intended to embrace all alternatives, modifications, and variations that fall within the spirit and broad scope of the attached claims.
|
Same subclass Same class Consider this |
||||||||||
