Disclosure of Invention
In view of this, the present application provides an outbound task allocation method, an outbound task allocation device, a computer device, and a readable storage medium, and mainly aims to solve the problems that the current call success rate of the seat staff in a unit hour is very low, the number of high-quality calls is very small, and the work efficiency is low.
According to a first aspect of the present application, there is provided a method for allocating outbound tasks, the method is applied to an outbound system, the outbound system includes a plurality of outbound programs, and the method includes:
determining a target outbound program, and acquiring a plurality of clues to be called according to a clue search strategy of the target outbound program, wherein the target outbound program is an outbound program in an operating state of any one of the plurality of outbound programs, and a plurality of calling time groups and clue quantity proportions corresponding to a plurality of clue grades under each calling time group in the plurality of calling time groups are set in the clue search strategy;
grouping according to the calling times of the plurality of clues to be called in the clue searching strategy, sequencing the plurality of clues to be called, and calling the sequenced plurality of clues to be called in sequence;
when detecting that a target thread in the plurality of threads to be called is successfully called, selecting a target agent from the agent grades bound by the target outbound program;
and signing the target clue and the target seat into an operation task, and controlling the target seat to communicate with the target clue based on the operation task.
Optionally, before determining the target outbound program and acquiring a plurality of threads to be called according to the thread search policy of the target outbound program, the method further includes:
acquiring a program list, verifying the plurality of outbound programs included in the program list, and taking the plurality of outbound programs passing the verification as a plurality of outbound programs to be operated;
and sequentially operating the outbound programs to be operated according to the program priority indicated by the program list.
Optionally, the checking the plurality of outbound programs included in the program list includes:
for each outbound program in the plurality of outbound programs, checking whether the running time set in the outbound program is consistent with a standard time point; and/or the presence of a gas in the gas,
checking whether the outbound program is in a run program batch; and/or the presence of a gas in the gas,
checking whether the number of the first threads of the threads to be called acquired by the outbound program reaches the single-day packing number threshold of the outbound program; and/or the presence of a gas in the gas,
verifying whether a second number of threads based on the threads allocated by the outbound program reaches a single-day allocation number threshold for the outbound program; and/or the presence of a gas in the gas,
checking whether the outbound program has a bound agent hierarchy; and/or the presence of a gas in the gas,
checking whether the current time point reaches the work ending time of the outbound program;
correspondingly, when the running time set in the outbound program is consistent with the standard time point, and/or the outbound program is not in the run program batch, and/or the first line number does not reach the single-day packing number threshold, and/or the second line number does not reach the single-day distribution number threshold, and/or the outbound program has a bound seat grade, and/or the current time point does not reach the work ending time, the outbound program is determined to pass the verification.
Optionally, the obtaining a plurality of threads to be called according to the thread search policy of the target outbound program includes:
inquiring a working scene of the target calling-out program, and extracting a plurality of candidate calling clues of which the clue types are matched with the working scene, wherein the clue states of the candidate calling clues indicate that the candidate calling clues are activated;
for each calling time group in the calling time groups, determining a plurality of first target calling threads in the candidate calling threads, wherein the calling times set by the first target calling threads are consistent with the calling times corresponding to the calling time groups;
determining a plurality of target clue levels included in the calling times grouping and a plurality of target clue quantity proportions corresponding to the target clue levels;
according to the ratio of the target thread quantities, second target calling threads with matched thread grades are respectively extracted for the target thread grades from the first target calling threads, and the extracted second target calling threads are used as to-be-called threads corresponding to the calling times groups;
and repeatedly executing the extraction process of the clues to be called, and respectively extracting the clues to be called for each calling time group in the calling time groups to obtain the clues to be called.
Optionally, the method further comprises:
if a first group of times of calling to be supplemented exists in the plurality of groups of times of calling, determining a thread level to be supplemented and a first group of times of calling to be supplied, which take the values as null, in the first group of times of calling to be supplemented, candidate calling threads meeting the thread quantity proportion corresponding to the thread grade to be supplemented are extracted from the supply thread grades of the first supply calling times grouping and are supplemented into the thread grade to be supplemented, the first group of the number of calls to be supplemented is any group of the number of calls with a thread level with an empty value in the plurality of groups of the number of calls, the calling times of the first supply calling time group are higher than the first group of calling times to be supplemented and lower than other calling time groups except the first group of calling times to be supplemented in the plurality of groups of calling times, and the supply thread level is consistent with the thread level of the thread level to be supplemented;
and if a second group of the call times to be supplemented exists in the plurality of groups of the call times, determining a second group of the supply call times in the plurality of groups of the call times, supplementing the second group of the call times to be supplemented with clues to be called in candidate call clues corresponding to the second group of the supply call times according to a plurality of clue levels and a clue quantity ratio included in the second group of the call times to be supplemented, wherein the call times of the second group of the supply call times are higher than the second group of the call times to be supplemented and lower than other groups of the call times except the second group of the call times to be supplemented in the plurality of groups of the call times.
Optionally, the method further comprises:
and when detecting that no candidate calling clue which is matched with the grade of the clue to be supplemented or the grade of the supply clue exists in the candidate calling clues, omitting the process of performing clue supplementation on the grade of the clue to be supplemented.
Optionally, the sorting the multiple threads to be called according to the grouping of the number of calls to which the multiple threads to be called belong in the thread search policy includes:
determining a first calling time group with the lowest calling time in the calling time groups, and arranging clues to be called corresponding to the first calling time group according to the sequence of the incoming line time from far to near;
for a second calling time group except the first calling time group in the calling time groups, arranging clues to be called corresponding to the second calling time group according to the sequence from far to near of the latest calling time;
and combining the sequencing results corresponding to the calling times groups according to the sequence of the calling times groups from low to high to complete the sequencing of the plurality of clues to be called.
Optionally, the method further includes, after the plurality of threads to be called are grouped according to the number of calls to which the plurality of threads to be called belong in the thread search policy, sorting the plurality of threads to be called, and calling the sorted plurality of threads to be called in sequence, the method further includes:
determining a failure clue of call failure, and inquiring a third call time group corresponding to the failure clue;
when the batch in which the call of the failed clue fails is smaller than the call times of the third call time group, adding the failed clue into the sequencing again, and calling the failed clue repeatedly;
and when the batch in which the failed clue call is failed is equal to the call times of the third call time group, updating the clue state of the failed clue to be inactive.
Optionally, after the adding the failure hint back to the ranking and repeating the calling of the failure hint, the method further comprises:
if the calling times of the failed clue reach the calling times of the third calling time group and the calling of the failed clue fails, updating the clue state of the failed clue to indicate that the calling is not activated;
if the calling times of the failed clue are less than or equal to the calling times grouped by the third calling times and the calling of the failed clue is successful, continuously distributing an agent for the failed clue in the agent classification bound by the target outbound program and embedding the agent into the running task.
Optionally, after the thread status of the failing thread is updated to be inactive and the failing thread is cached, the method further includes:
counting the time length of the state clue in the inactivated state;
and updating the thread state of the failed thread to indicate activation when the state duration reaches a duration threshold.
Optionally, the selecting a target agent from the agent hierarchy bound to the target outbound program includes:
determining a plurality of candidate agents in the agent hierarchy, and initializing the candidate agents;
and reading the seat states of the plurality of candidate seats after initialization is completed, and selecting any candidate seat from the candidate seats with the seat state indication free as the target seat.
Optionally, the signing the target thread and the target agent into the running task includes:
inquiring a file address corresponding to the target clue, and adding the file address to the running task;
and determining a schedule identifier of the target seat, and adding the schedule identifier to the running task.
According to a second aspect of the present application, there is provided an outbound task assignment device, which is applied to an outbound system, the outbound system including a plurality of outbound programs, including:
the system comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for determining a target outbound program and acquiring a plurality of clues to be called according to a clue search strategy of the target outbound program, the target outbound program is an outbound program in an operating state in any of the plurality of outbound programs, and the clue search strategy is provided with a plurality of calling time groups and clue quantity proportions corresponding to a plurality of clue grades under each calling time group in the plurality of calling time groups;
the sequencing module is used for grouping according to the calling times of the plurality of clues to be called in the clue searching strategy, sequencing the plurality of clues to be called and calling the sequenced clues to be called in sequence;
the selecting module is used for selecting a target agent from the agent grades bound by the target outbound program when detecting that a target thread in the plurality of threads to be called is successfully called;
and the communication module is used for signing the target clue and the target seat into an operation task and controlling the target seat to communicate with the target clue based on the operation task.
Optionally, the apparatus further comprises:
the verification module is used for acquiring a program list, verifying the plurality of outbound programs included in the program list and taking the plurality of outbound programs passing the verification as a plurality of outbound programs to be operated;
and the running module is used for sequentially running the outbound programs to be run according to the program priority indicated by the program list.
Optionally, the checking module is configured to check, for each outbound program in the plurality of outbound programs, whether a running time set in the outbound program is consistent with a standard time point; and/or, checking whether the outbound program is in a run program batch; and/or checking whether the number of the first threads of the threads to be called acquired by the outbound program reaches the single-day packing number threshold of the outbound program; and/or, checking whether a second number of threads based on the threads allocated by the calling program reaches a single-day allocation number threshold of the calling program; and/or, checking whether the outbound program has a bound agent hierarchy; and/or checking whether the current time point reaches the working end time of the outbound program; correspondingly, when the running time set in the outbound program is consistent with the standard time point, and/or the outbound program is not in the run program batch, and/or the first line number does not reach the single-day packing number threshold, and/or the second line number does not reach the single-day distribution number threshold, and/or the outbound program has a bound seat grade, and/or the current time point does not reach the work ending time, the outbound program is determined to pass the verification.
Optionally, the obtaining module is configured to query a working scenario of the target outbound program, extract a plurality of candidate call threads of which thread types match the working scenario, where thread states of the candidate call threads indicate that activation has been performed; for each calling time group in the calling time groups, determining a plurality of first target calling threads in the candidate calling threads, wherein the calling times set by the first target calling threads are consistent with the calling times corresponding to the calling time groups; determining a plurality of target clue levels included in the calling times grouping and a plurality of target clue quantity proportions corresponding to the target clue levels; according to the ratio of the target thread quantities, second target calling threads with matched thread grades are respectively extracted for the target thread grades from the first target calling threads, and the extracted second target calling threads are used as to-be-called threads corresponding to the calling times groups; and repeatedly executing the extraction process of the clues to be called, and respectively extracting the clues to be called for each calling time group in the calling time groups to obtain the clues to be called.
Optionally, the obtaining module is further configured to determine, if a first group of call times to be supplemented exists in the plurality of groups of call times to be supplemented, an empty group of cue quantity to be supplemented and a first group of supply call times in the first group of call times to be supplemented, extract, from the group of supply cue times of the first group of supply call times, a candidate call cue meeting the ratio of the cue quantity corresponding to the group of cue quantity to be supplemented, and supplement the candidate call cue into the group of cue quantity to be supplemented, where the first group of call times to be supplemented is any group of call times in the plurality of groups of call times that has an empty cue quantity, and the number of calls in the first group of supply call times is higher than the first group of call times to be supplemented and lower than other groups of call times in the plurality of groups of call times except the first group of call times to be supplemented, the supply cue level is consistent with the cue level of the cue level to be supplemented; and if a second group of the call times to be supplemented exists in the plurality of groups of the call times, determining a second group of the supply call times in the plurality of groups of the call times, supplementing the second group of the call times to be supplemented with clues to be called in candidate call clues corresponding to the second group of the supply call times according to a plurality of clue levels and a clue quantity ratio included in the second group of the call times to be supplemented, wherein the call times of the second group of the supply call times are higher than the second group of the call times to be supplemented and lower than other groups of the call times except the second group of the call times to be supplemented in the plurality of groups of the call times.
Optionally, the obtaining module is further configured to omit a process of performing thread supplementation on the thread level to be supplemented when it is detected that no candidate calling thread matching the thread level to be supplemented or the supply thread level exists in the plurality of candidate calling threads.
Optionally, the sorting module is configured to determine a first call time group with the lowest call time from the plurality of call time groups, and arrange the to-be-called threads corresponding to the first call time group according to a sequence from far to near of incoming line time; for a second calling time group except the first calling time group in the calling time groups, arranging clues to be called corresponding to the second calling time group according to the sequence from far to near of the latest calling time; and combining the sequencing results corresponding to the calling times groups according to the sequence of the calling times groups from low to high to complete the sequencing of the plurality of clues to be called.
Optionally, the apparatus further comprises:
the query module is used for determining a failure clue of call failure and querying a third call frequency group corresponding to the failure clue;
the sequencing module is used for adding the failed clue into the sequencing again and repeating the calling of the failed clue when the batch in which the call of the failed clue fails is less than the call times of the third call time group;
and the updating module is used for updating the thread state of the failed thread to be inactive when the batch in which the failed thread call is failed is equal to the calling times of the third calling time group.
Optionally, the updating module is further configured to update the thread status of the failed thread to indicate non-activation if the number of calls to the failed thread reaches the number of calls grouped by the third number of calls and the failed thread fails to call;
and the communication module is further used for continuously distributing an agent for the failed clue in the agent classification bound by the target outbound program and embedding the agent into the running task if the calling times of the failed clue are less than or equal to the calling times grouped by the third calling times and the calling of the failed clue is successful.
Optionally, the apparatus further comprises:
the statistic module is used for counting the time length of the state clue in the inactivated state;
the updating module is further configured to update the thread state of the failed thread to indicate that the thread is activated when the state duration reaches a duration threshold.
Optionally, the selecting module is configured to determine a plurality of candidate agents in the agent hierarchy, and initialize the plurality of candidate agents; and reading the seat states of the plurality of candidate seats after initialization is completed, and selecting any candidate seat from the candidate seats with the seat state indication free as the target seat.
Optionally, the communication module is configured to query a file address corresponding to the target thread, and add the file address to the running task; and determining a schedule identifier of the target seat, and adding the schedule identifier to the running task.
According to a third aspect of the present application, there is provided a computer device comprising a memory storing a computer program and a processor implementing the steps of the method of the first aspect when the processor executes the computer program.
According to a fourth aspect of the present application, there is provided a readable storage medium having stored thereon a computer program which, when executed by a processor, carries out the steps of the method of the first aspect described above.
According to the technical scheme, different outbound programs are bound to different agents in a grading mode, after the target outbound program runs, threads to be called are collected according to a thread searching strategy of the target outbound program, the determined threads to be called are called in sequence according to the thread searching strategy, when the success of calling the target threads is detected, the target agents and the target threads are selected from the agent grades bound by the target outbound program to communicate, the sequential outbound of the threads is achieved by the outbound program, and the agents are arranged to communicate after the outbound is connected, so that the outbound success rate of the agents is improved, the number of high-quality calls is increased, and the working efficiency of the agents is improved.
The foregoing description is only an overview of the technical solutions of the present application, and the present application can be implemented according to the content of the description in order to make the technical means of the present application more clearly understood, and the following detailed description of the present application is given in order to make the above and other objects, features, and advantages of the present application more clearly understandable.
Detailed Description
Exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
An embodiment of the present application provides an outbound task allocation method, as shown in fig. 1, where the method is applied to an outbound system, the outbound system includes a plurality of outbound programs, and the method includes:
101. determining a target outbound program, and acquiring a plurality of clues to be called according to a clue search strategy of the target outbound program, wherein the target outbound program is any one of the plurality of outbound programs in a running state, and the clue search strategy is provided with a plurality of calling time groups and clue quantity proportions corresponding to a plurality of clue grades under each calling time group in the plurality of calling time groups.
102. And grouping according to the calling times of the plurality of clues to be called in the clue searching strategy, sequencing the plurality of clues to be called, and calling the sequenced plurality of clues to be called in sequence.
103. And when detecting that the target thread in the plurality of threads to be called calls successfully, selecting a target agent from the agent hierarchy bound by the target call-out program.
104. And signing the target clues and the target agents into the running tasks, and controlling the target agents to communicate with the target clues based on the running tasks.
According to the method provided by the embodiment of the application, different outbound programs are bound to different agents in a grading manner, after the target outbound program runs, clues to be called are collected according to a clue search strategy of the target outbound program, the determined clues to be called are sequentially called according to the clue search strategy, when the target clue calling success is detected, the target agents and the target clues are selected from the agent grades bound by the target outbound program to communicate, the external calling program is used for realizing the sequential outbound of the clues, and the agents are arranged to communicate after the external calling is connected, so that the outbound success rate of the agents is improved, the number of high-quality calls is increased, and the working efficiency of the agents is improved.
Before explaining the embodiments of the present application in detail, the architecture of the outbound system according to the present application will be briefly described.
Referring to fig. 2A, the outbound system is divided into an application layer, a service layer, and a storage layer.
The application layer is mainly divided into 4 modules which are an application setting module, a rule template module, an agent monitoring module and a program runtime module. The application setting module is mainly used for setting the configuration of running programs, wherein the configuration comprises program setting, seat level setting, and seat and workplace permission setting. The rule template module is mainly divided into four types of clue classification setting, outbound aging setting, outbound priority rule setting and operation schedule rule setting, wherein the clue classification setting is mainly used for classifying and configuring clues, and the clue classification setting of different scenes can be distributed and configured into different outbound programs; the outbound aging setting is mainly to set whether the aging of the clue is activated or not according to the last outbound time of the clue; the outbound priority rule setting mainly comprises the steps of setting thread searching strategies of different outbound programs, acquiring threads according to the thread searching strategies and sequencing the threads; the operation schedule rule setting is mainly used for setting the rule of the operation schedule of the outbound program. The agent monitoring module is mainly used for monitoring the conversation of agents in the conversation, simultaneously can monitor which agents finish the conversation in real time, can more efficiently distribute outbound tasks for the agents, and can inquire monitored contents and synchronize the monitored contents. The program running module is a main process and mainly relates to the steps of signing an outbound program by an agent, displaying idle verification, answering by the agent and distributing clues, wherein the idle verification and the distributing clues are more critical.
The service layer is mainly divided into 5 modules which are respectively a call-out program related module, a call-out module, an automatic distribution module, a thread related module and a call record module. The relevant module of the outbound program mainly synchronizes the running of the outbound program and the quitting of the outbound program, searches and packs the clues and determines the outbound sequence of the clues, and the quitting of the outbound program indicates that the outbound program stops the outbound of the machine and does not allow the seat to sign in any more. The outbound module can carry out the sequential outbound of the clues according to the configured clue sequence, directly filters the clues if the clue calling fails, and directly controls the seats to communicate with the clues if the clue calling fails. The automatic allocation module triggers one-time outbound allocation after the seat and the thread are communicated, binds the seat and the thread in an operation task, and is also responsible for grading the seat. The clue related module mainly provides the functions of clue packaging, clue silence and clue recovery, wherein the clue silence means stopping the external call of the clue when the external call frequency of the clue exceeds a certain frequency and is still not called, the clue silence is directly caused to stop participating in the external call for a period of time, and the clue recovery means directly recovering the clue when no external call operation occurs to the clue today. The call record module will form an outgoing call record, and record an un-called call record for the clue that the outgoing call is not successful, and record a call record that the outgoing call has passed separately for the clue that the outgoing call is successful or the clue that the previous outgoing call is unsuccessful but the subsequent outgoing call is successful.
The storage layer is mainly used for storing information, data, records, clues and other contents related to the outbound system, and is provided with a plurality of databases, such as a MySQL (relational database) database, a Redis (key-value database) database, a cloud database and the like.
An embodiment of the present application provides an outbound task allocation method, as shown in fig. 2B, the method includes:
201. and inquiring the program list, and operating the program according to the program priority indicated by the program list.
In the modern society in which the internet is increasingly developed, almost all the young and middle-aged people are touched by the antenna of the internet, the data volume of the internet is remarkably increased, and more services can be handled through internet platforms, so that a large number of clients are accumulated on each internet platform. The internet platforms are continuously updated, changes involved in each update bring more convenience to the client, and in order to enable the updated content to be known by the client, many internet platforms call the client out and introduce related updates and activity content and the like to the client in a conversation mode. The applicant realizes that the outbound operation in the internet platform is manually realized at present, and the contact way left by the client is called manually, but if a large number of clients rely on manual outbound contact, the number of calls of workers in a unit hour is very low, the efficiency is low and the number of calls with high quality is very small probably because the clients cannot be called. Therefore, how to increase the number of outgoing calls in each hour and reduce the influence caused by low-quality non-connection becomes a problem to be solved urgently. Therefore, the application provides an outbound task allocation method, different outbound programs are bound to different agents in a grading manner, after a target outbound program runs, clues to be called are collected according to a clue search strategy of the target outbound program, the determined clues to be called are sequentially called according to the clue priority specified by the clue search strategy, when the success of calling of the target clues is detected, the target agents and the target clues are selected from the agent grades bound by the target outbound program for communication, the sequential outbound of the clues is realized by using the outbound program, and the agents are arranged for communication after the outbound call is connected, so that the outbound success rate of the agents is improved, the number of high-quality calls is increased, and the working efficiency of the agents is improved.
The outbound system in the embodiment of the application is provided with a plurality of outbound programs, each outbound program is different in application scene, the types of threads targeted during outbound are also different, the outbound programs are all stored in a program list of the outbound system, and the program list corresponds to program priorities. And during the operation of the outbound program, the outbound system can verify each outbound program, and operates after the verification is passed, so that the outbound program is ensured to operate correctly, and the influence of the operation error of the program on the normal operation of the service is avoided. Specifically, the outbound system may obtain the program list, and check a plurality of outbound programs included in the program list, and a check process of the outbound program is described below by taking any program in the program list as an example:
for each outbound program in a plurality of outbound programs, the outbound system can carry out multi-aspect verification, including verifying whether the running time set in the outbound program is consistent with the standard time point; and/or, checking whether the outbound program is in the run program batch; and/or checking whether the number of the first threads of the threads to be called acquired by the outbound program reaches the single-day packing number threshold of the outbound program; and/or, checking whether a second number of threads based on the threads allocated by the outbound program reaches a single-day allocation number threshold of the outbound program; and/or, checking whether the outbound program has a bound agent hierarchy; and/or checking whether the current time point reaches the working end time of the outbound program. Correspondingly, when the running time set in the outbound program is consistent with the standard time point, and/or the outbound program is not in the run program batch, and/or the first number of cables does not reach the single-day packing number threshold, and/or the second number of cables does not reach the single-day distribution number threshold, and/or the outbound program has a bound seat grade, and/or the current time point does not reach the working end time, the outbound program is determined to pass the verification, and a plurality of outbound programs passing the verification are used as a plurality of outbound programs to be run. It should be noted that different application scenarios have different requirements for the outbound program, and therefore, in the actual application process, which parameter of the outbound program is to be checked may be determined according to the requirements of the application scenarios. If a certain outbound program fails to pass the verification of a certain item in the verification process, the outbound system determines that the outbound program cannot be operated currently, and the outbound program cannot be used as the outbound program to be operated.
After the outbound programs to be operated are determined through the verification process, the outbound system starts to sequentially operate the outbound programs to be operated according to the program priority indicated by the program list, and then the automatic searching and the automatic outbound of the clues are realized on the basis of the plurality of outbound programs to be operated which are successfully operated in the follow-up process. It should be noted that, in the process of practical application, the outbound programs to be executed are executed in the same batch, and in order to effectively manage the outbound of the outbound programs to be executed, the outbound system creates an execution batch for the outbound programs to be executed, executes the outbound programs in the execution batch, and records the starting state and the ending state of the outbound programs based on the execution batch, and can also record the status of the operation failure in the execution batch when the outbound program to be executed fails to search for a hint and causes the operation failure of the outbound program to be executed. Specifically, a program running state machine may be set in the outbound system, and a running batch is created by the program running state machine and the state of the outbound program is recorded in the running batch.
202. And determining a target outbound program, and acquiring a plurality of clues to be called according to a clue search strategy of the target outbound program.
In the embodiment of the application, because the operating scenes of each outbound program are different, and the searching modes of the threads and the calling modes of the threads are different, each outbound program sets a corresponding thread searching strategy, and the thread searching strategy sets a thread quantity proportion corresponding to a plurality of thread grades under each calling time group in a plurality of calling time groups, so that the threads waiting for the outbound can be searched for the corresponding outbound program subsequently according to the thread searching strategy.
The following examples illustrate the content specified by the thread search policy: for a calling program, the clue searched for the calling program every day needs to be less than or equal to the single-day packing quantity threshold of the calling program. Referring to fig. 2C, the call times grouping included in the cue search strategy corresponding to the outbound program may be 1 outbound group, 2 outbound group and 3 outbound group, wherein the cue level of the 1 outbound group is divided into a level a, a level B and a level C, the ratio of the cue amount corresponding to the level a is 20%, the ratio of the cue amount corresponding to the level B is 30%, and the ratio of the cue amount corresponding to the level C is 50%. It should be noted that the thread amount ratio indicates the ratio of the thread amount in each thread level to the total thread amount of the call count group to which the thread level belongs, that is, the sum of the thread amount ratios corresponding to the above-mentioned exemplary a level, B level and C level is equal to 1. The contents of the 2 outbound groups and the 3 outbound groups in fig. 2C are the same as those of the 1 outbound group, and are not described herein again. Further, the outbound system may generate a policy list as shown in table 1 below for each outbound program, and store the thread search policy corresponding to the outbound program based on the policy list. The manner in which the hint search policy corresponding to the outbound program is set and stored is not particularly limited.
Grouping call times
|
Class A
|
Class B
| Class C |
|
1 time outbound group
|
a1
|
b1
|
c1
|
Group called 2 times
|
a2
|
b2
|
c2
|
3 outbound group
|
a3
|
b3
|
c3 |
TABLE 1
In table 1, taking 1 outbound group as an example, the thread amount ratio corresponding to level a in 1 outbound group is a1, the thread amount ratio corresponding to level B is B1, and the thread amount ratio corresponding to level C is C1. Thus, assuming that the total number of threads included in the 1-time outbound group is Num (1), the number of threads corresponding to the a-level in the 1-time outbound group is Num (1) × a 1; the number of clues corresponding to the B level under the 1-time outbound group is Num (1) xb 1; the number of clues corresponding to the C-level in the group of 1 outbound call is Num (1) × C1, a1+ b1+ C1= 1. Further, the 2-time outbound group and the 3-time outbound group are the same as the 1-time outbound group, and are not described herein again.
Therefore, in the practical application process, the outbound system packs the clues for the outbound program according to the clue search strategy set by the outbound program, so that the outbound program can outbound the packed clues. In the embodiment of the present application, an outbound program in a running state of any of a plurality of outbound programs in a program list is selected as a target outbound program, and a series of operations such as package of threads, calling, and allocation after successful calling are described by taking the target outbound program as an example, because a plurality of outbound programs run simultaneously in the same batch and the thread packaging process of each outbound program is the same.
After the calling-out system determines the target calling-out program, a plurality of clues to be called are obtained according to the clue search strategy of the target calling-out program. Specifically, firstly, the outbound system queries the working scene of the target outbound program, extracts a plurality of candidate call threads with thread types matched with the working scene, and because a silent mechanism of the thread exists in the outbound system, the thread state of the silent thread indicates that the silent thread is not activated, the silent thread state is not considered in the outbound operation temporarily, and the thread state of the normal silent thread indicates that the silent thread is activated, so that the thread states of the candidate calls acquired by the outbound system indicate that the candidate call is activated. Then, actually, the calling times and calling grades corresponding to each thread in the outbound system are different, and the thread searching strategy specifies how many threads are needed for each calling number array and each thread grade, and the outbound system acquires the threads according to the specification of the thread searching strategy. In addition, if the candidate call threads are to be ranked, then the candidate call threads need to be classified into different call frequency groups and different thread grades for being ranked respectively, so the outbound system can obtain a plurality of to-be-called threads from the plurality of candidate call threads according to the thread search strategy of the target outbound program, and the process of specifically obtaining the to-be-called threads is as follows:
for each of the plurality of call times groupings, the outbound system determines a plurality of first target call threads from the plurality of candidate call threads, the call times set for the plurality of first target call threads being consistent with the call times corresponding to the call times grouping. For example, for the 1-out call group, a candidate call thread with a corresponding call count of 1 is determined as the first target call thread among the plurality of candidate call threads. Then, the outbound system determines a plurality of target clue levels included in the calling times grouping and a plurality of target clue quantity proportions corresponding to the plurality of target clue levels, extracts second target calling clues matched with the clue levels for the plurality of target clue levels in the plurality of first target calling clues according to the plurality of target clue quantity proportions, and takes the extracted second target calling clues as to-be-called clues corresponding to the calling times grouping. For example, assuming that the total thread amount set for the 1-time outbound group is num (1), the thread amount ratio corresponding to the a-level is a1, the thread amount ratio corresponding to the B-level is B1, and the thread amount ratio corresponding to the C-level is C1, the first target call thread of num (1) × a1 at the a-level is extracted from the plurality of first target call threads as the second target call thread at the a-level; extracting a first target calling thread of the B level of num (1) xb 1 as a second target calling thread of the B level; the first target call thread of the C-level of num (1) × C1 is extracted as the second target call thread of the C-level. Thus, by repeatedly executing the process of extracting the to-be-called clues, the outbound system can respectively extract the to-be-called clues for each calling time group in the plurality of calling time groups to obtain a plurality of to-be-called clues.
It should be noted that, in the actual application process, there is a case of missing clues, for example, missing clues of a clue level, that is, there is no clue of a certain clue level in the clues existing in the current outbound system, or missing clues of a group of call times, that is, there is no clue of a group of call times in the clues existing in the current outbound system, and in the case of missing such a clue, it is necessary to supplement the clue level or the group of call times in which the missing clue occurs, and the specific process is as follows:
one case is that, if there is a first group of times of call to be supplemented in the plurality of groups of times of call, where the first group of times of call to be supplemented is any group of times of call where there is a thread level whose value is empty in the plurality of groups of times of call, that is, no thread is obtained by the thread level in the first group of times of call to be supplemented, for example, no thread is obtained under level a of the 1-time outbound group, the outbound system determines a thread level to be supplemented and a first group of times of call to be supplied, whose values are empty in the first group of times of call to be supplemented. The number of calls of the first supply calling number packet is higher than that of the first group of the number of calls to be supplemented and is lower than that of other calling number packets except the first group of the number of calls to be supplemented in the plurality of groups of the number of calls, namely, the first supply calling number packet is a calling number packet adjacent to the first group of the number of calls to be supplemented and is higher than that of the first group of the number of calls to be supplemented. For example, if the first group of the number of calls to be supplemented is 1 outbound group, the first group of the number of offered calls is 2 outbound groups. Then, the calling-out system will extract the candidate calling thread satisfying the thread quantity proportion corresponding to the thread grade to be supplemented from the supply thread grades of the first supply calling times group to be supplemented into the thread grade to be supplemented. That is, the outbound system will extract candidate call threads from the first group of offered call times that are consistent with the thread level to be supplemented, and supplement the candidate call threads to the thread level to be supplemented. Continuing with the above example, if the thread level to be supplemented is class a, then a certain amount of candidate call threads obtained from class a of the 2 outbound groups are supplemented to class a of the 1 outbound group. Assuming that only 500 threads are needed for the original 2 outbound groups, but the level a difference of the 1 outbound group is 200, then a total of 500+200=700 threads are needed for the 2 outbound group, and these 200 threads are the class a threads belonging to the 1 outbound group supplemented from the class a of the 2 outbound group.
In another case, if a second group of call times to be complemented having a null value exists in the plurality of groups of call times, that is, there is no clue in the second group of call times to be complemented, a group of call times to be complemented is determined among the plurality of groups of call times, where the call times of the second group of call times to be complemented is higher than that of the second group of call times to be complemented and lower than that of other groups of call times except for the second group of call times to be complemented in the plurality of groups of call times. That is, the second supply call number packet is a call number packet adjacent to the second supplementary call number packet and is higher than the second supplementary call number packet. For example, if the second to-be-supplemented call times group is a 1-time outbound group, the second serving call times group is a 2-time outbound group. Then, the outbound system supplements the candidate call threads corresponding to the group of served call times with the group of second to-be-supplemented call times according to the thread levels and the thread amount ratio included in the group of second to-be-supplemented call times. For example, when there is no thread in the 1-time outbound group, the thread is supplemented in the 2-time outbound group according to the thread level and the ratio of the thread amount of each thread level in the 1-time outbound group, and similarly, when there is no thread in the 2-time outbound group, the thread is supplemented in the 3-time outbound group until the thread supplementation is completed or no thread capable of being supplemented is available.
It should be noted that, in the outbound system, it may occur that a certain thread level does not correspond to any thread, for example, there is no thread of level a, in which case, thread supplementation cannot be performed on any group of call times, and no thread supplementation operation is required. That is, when it is detected that there is no candidate calling thread matching the thread level to be supplemented or the supply thread level in the plurality of candidate calling threads, the process of thread supplementing the thread level to be supplemented is omitted.
203. And grouping according to the calling times of the plurality of clues to be called in the clue searching strategy, sequencing the plurality of clues to be called, and calling the sequenced plurality of clues to be called in sequence.
In the embodiment of the present application, after the obtaining of the to-be-called thread is completed, since the calling times grouping where the to-be-called thread is located and the thread grades are different, the outbound system sorts the plurality of to-be-called threads according to the calling times grouping to which the plurality of to-be-called threads belong in the thread search policy, and sequentially calls the plurality of sorted to-be-called threads.
When the clue is sorted, different sorting strategies need to be adopted for different call times groups, and the specific sorting process is as follows:
firstly, a first calling time group with the lowest calling time is determined in a plurality of calling time groups, and clues to be called corresponding to the first calling time group are arranged according to the sequence of the incoming line time from far to near. That is, in fact, for the 1 outbound group, the threads are sorted according to the policy of reverse order of the incoming time, with the thread of the most advanced line in front. And then, for a second calling time group except the first calling time group in the calling time groups, arranging the clues to be called corresponding to the second calling time group according to the sequence from far to near of the latest calling time. That is, for the call number groups such as the 2-out group, the 3-out group, etc. except the 1-out group, the ranking is performed in the positive order of the latest call time, with the clues of the latest call ranked later. After finishing the sequencing of the clues in each calling time grouping, combining the sequencing results corresponding to the calling time grouping according to the sequence from low to high of the calling times of the calling time grouping, and finishing the sequencing of a plurality of clues to be called. Specifically, referring to fig. 2D, the calling times groups are arranged in the order of 1 calling out group, 2 calling out groups, 3 calling out groups and 4 calling out groups, wherein the thread of the 1 calling out group is arranged with the thread of the most advanced line at the front, and the 2 calling out group, 3 calling out group and 4 calling out group are arranged with the thread of the most recent call at the back.
After determining the calling sequence of the plurality of threads to be called, the calling-out system calls out the plurality of threads to be called in sequence based on the target calling-out program, wherein no less failed threads are missed. The outbound system determines a failed thread of the call failure, queries a third call frequency group corresponding to the failed thread, and determines the number of times the failed thread needs to be called. On the one hand, when the batch in which the failed thread call is failed is less than the call times of the third call time group, the call times do not reach the call times required by the failed thread, so that the failed thread is added to the corresponding call time group and the thread grade again, so as to call the failed thread repeatedly. After the failed clue is repeatedly called, if the calling times of the failed clue reach the calling times of the third calling times group and the calling of the failed clue fails, the calling times of the failed clue are full and the calling can not be carried out any more, the clue state of the failed clue is updated to indicate that the clue is not activated, so that the clue is silent. And if the calling times of the failed clue are less than or equal to the calling times grouped by the third calling times and the calling of the failed clue is successful, continuously distributing an agent for the failed clue in the agent classification bound by the target outbound program and embedding the running task. On the other hand, when the batch in which the call of the failed thread is failed is equal to the call number of the third call number group, the call number of the failed thread is full and the call can not be made any more, therefore, the thread state of the failed thread is updated to be inactive, and the thread is silent.
It should be noted that the cue whose cue state changes into inactive silence is only temporarily silence, and subsequently needs to be called out, so that a time length threshold is set in the calling-out system, the duration of the inactive cue indicated by the status cue is continuously counted as the status time length, and when the status time length reaches the time length threshold, the cue state of the failed cue is updated to indicate that the failed cue is activated, so that the failed cue can be searched, allocated and called out again. The time length threshold value can be set to different values according to different outbound scenes, and the specific value of the time length threshold value is not limited in the application.
204. And when detecting that the target thread in the plurality of threads to be called calls successfully, selecting a target agent from the agent hierarchy bound by the target call-out program.
In the embodiment of the application, when it is detected that a target thread of a plurality of threads to be called is successfully called, an agent needs to be allocated to communicate with the target thread, so that the outbound system selects the target agent from the agent classes bound by the target outbound program, and then the target agent communicates with the target thread. When selecting a target seat, a plurality of candidate seats in the seat classification need to be determined first, and the candidate seats are initialized. And then, reading the seat states of the plurality of candidate seats after the initialization is completed, and selecting any candidate seat from the candidate seats with the seat state indicating idle as a target seat.
Wherein, there is the seat team in the system of exhaling outward, every seat team all can grade the seat according to the standard in the team, and controls the hierarchical different procedures of exhaling outward of butt joint of different seats, adopts which kind of standard to grade the seat and can be set up by the seat team by oneself. For example, the ranking is performed according to parameters such as caliber and qualification rate, or the occupation ratio of each seat ranking can be configured, and the setting is performed according to the total ranking occupation ratio of the current seat. The standard for seat classification is not specifically limited in this application. In addition, the seat team can also set a daily limit for each seat, and when the number of clues for the successful communication of the seat exceeds the daily limit, the seat is controlled not to continuously sign the running task.
205. And signing the target clues and the target agents into the running tasks, and controlling the target agents to communicate with the target clues based on the running tasks.
In the embodiment of the application, in order to realize the communication between the target agent and the target thread, the outbound system signs the target thread and the target agent to the running task, and controls the target agent to communicate with the target thread based on the running task. Specifically, the outbound system will query the file address corresponding to the target thread and add the file address to the running task. In fact, each clue can be a contact way such as a mobile phone number, a fixed phone and the like, and the clues are stored in the file and need to be signed into the running task according to the file address, so that the outbound system can inquire the file address and add the file address into the running task. And each agent corresponds to the agent schedule and controls the agent to normally work according to the agent schedule, so that the outbound system can determine the schedule identification of the target agent, add the schedule identification to the running task and realize the communication between the target thread and the target agent.
After the target thread is connected, in order to avoid the user's sense of incongruity caused by calling out again, the calling-out system also controls the target thread to be silent, and changes the thread state of the target thread to be inactive. Thus, in summary, the change of thread status in the present application is actually divided into 3 procedures:
one is forward flow, i.e. change of thread state after the thread is connected, and the whole flow is that the thread is to be packed → the thread is ordered → the thread is silent;
the other is an unaccessed flow, namely the change of the thread state of the thread outbound failure, and the whole flow is that the thread is to be packed → the thread is outbound → the thread is silent;
another is to reverse the thread activation process, which changes the thread state to activated when the state duration reaches the duration threshold, and the whole process is that the thread is silent → the thread is activated → the thread is ready to be packed.
According to the method provided by the embodiment of the application, different outbound programs are bound to different agents in a grading manner, after the target outbound program runs, clues to be called are collected according to a clue search strategy of the target outbound program, the determined clues to be called are sequentially called according to the clue search strategy, when the target clue calling success is detected, the target agents and the target clues are selected from the agent grades bound by the target outbound program to communicate, the external calling program is used for realizing the sequential outbound of the clues, and the agents are arranged to communicate after the external calling is connected, so that the outbound success rate of the agents is improved, the number of high-quality calls is increased, and the working efficiency of the agents is improved.
Further, as a specific implementation of the method shown in fig. 1, an embodiment of the present application provides an outbound task allocating apparatus, as shown in fig. 3A, where the apparatus includes: an obtaining module 301, a sorting module 302, a selecting module 303 and a communication module 304.
The obtaining module 301 is configured to determine a target outbound program, and obtain a plurality of to-be-called threads according to a thread search policy of the target outbound program, where the target outbound program is an outbound program in an operating state of any of the plurality of outbound programs, and a thread amount ratio corresponding to a plurality of thread levels in each of the plurality of call number groups is set in the thread search policy;
the ranking module 302 is configured to rank the multiple threads to be called according to the calling times of the multiple threads to be called in the thread search policy, and sequentially call the ranked multiple threads to be called;
the selecting module 303 is configured to select a target agent from the agent classes bound to the target outbound program when it is detected that a target thread of the multiple threads to be called is successfully called;
the communication module 304 is configured to sign the target thread and the target agent into an operation task, and control the target agent to communicate with the target thread based on the operation task.
In a specific application scenario, as shown in fig. 3B, the apparatus further includes: a check module 305 and a run module 306.
The verification module 305 is configured to obtain a program list, verify the outbound programs included in the program list, and use the outbound programs that pass the verification as a plurality of outbound programs to be run;
the running module 306 is configured to sequentially run the outbound programs to be run according to the program priorities indicated by the program list.
In a specific application scenario, the checking module 305 is configured to check, for each outbound program in the plurality of outbound programs, whether a running time set in the outbound program is consistent with a standard time point; and/or, checking whether the outbound program is in a run program batch; and/or checking whether the number of the first threads of the threads to be called acquired by the outbound program reaches the single-day packing number threshold of the outbound program; and/or, checking whether a second number of threads based on the threads allocated by the calling program reaches a single-day allocation number threshold of the calling program; and/or, checking whether the outbound program has a bound agent hierarchy; and/or checking whether the current time point reaches the working end time of the outbound program; correspondingly, when the running time set in the outbound program is consistent with the standard time point, and/or the outbound program is not in the run program batch, and/or the first line number does not reach the single-day packing number threshold, and/or the second line number does not reach the single-day distribution number threshold, and/or the outbound program has a bound seat grade, and/or the current time point does not reach the work ending time, the outbound program is determined to pass the verification.
In a specific application scenario, the obtaining module 301 is configured to query a working scenario of the target outbound program, and extract a plurality of candidate call threads of which thread types match the working scenario, where thread states of the candidate call threads indicate that the candidate call threads are activated; for each calling time group in the calling time groups, determining a plurality of first target calling threads in the candidate calling threads, wherein the calling times set by the first target calling threads are consistent with the calling times corresponding to the calling time groups; determining a plurality of target clue levels included in the calling times grouping and a plurality of target clue quantity proportions corresponding to the target clue levels; according to the ratio of the target thread quantities, second target calling threads with matched thread grades are respectively extracted for the target thread grades from the first target calling threads, and the extracted second target calling threads are used as to-be-called threads corresponding to the calling times groups; and repeatedly executing the extraction process of the clues to be called, and respectively extracting the clues to be called for each calling time group in the calling time groups to obtain the clues to be called.
In a specific application scenario, the obtaining module 301 is further configured to determine, if a first group of times of call waiting to be supplemented exists in the plurality of groups of times of call waiting to be supplemented, a to-be-supplemented thread class and a first group of times of call provisioning that take a value of null, extract, from the class of the first group of times of call provisioning, a candidate call thread that satisfies a proportion of a thread amount corresponding to the thread class of the to-be-supplemented thread class, and supplement, to the to-be-supplemented thread class, the first group of times of call waiting to be supplemented call being any group of times of call that exists in the plurality of groups of times of call provisioning, where the number of calls of the first group of times of call provisioning is higher than the first group of times of call waiting to be supplemented and lower than other groups of call times of the plurality of groups of times of call excluding the first group of times of call waiting to be supplemented, the supply cue level is consistent with the cue level of the cue level to be supplemented; and if a second group of the call times to be supplemented exists in the plurality of groups of the call times, determining a second group of the supply call times in the plurality of groups of the call times, supplementing the second group of the call times to be supplemented with clues to be called in candidate call clues corresponding to the second group of the supply call times according to a plurality of clue levels and a clue quantity ratio included in the second group of the call times to be supplemented, wherein the call times of the second group of the supply call times are higher than the second group of the call times to be supplemented and lower than other groups of the call times except the second group of the call times to be supplemented in the plurality of groups of the call times.
In a specific application scenario, the obtaining module 301 is further configured to omit a process of performing thread supplementation on the thread level to be supplemented when it is detected that there is no candidate call thread matching the thread level to be supplemented or the supply thread level in the plurality of candidate call threads.
In a specific application scenario, the sorting module 302 is configured to determine a first call time group with the lowest call time among the plurality of call time groups, and arrange the to-be-called threads corresponding to the first call time group according to a sequence from far to near of incoming line time; for a second calling time group except the first calling time group in the calling time groups, arranging clues to be called corresponding to the second calling time group according to the sequence from far to near of the latest calling time; and combining the sequencing results corresponding to the calling times groups according to the sequence of the calling times groups from low to high to complete the sequencing of the plurality of clues to be called.
In a specific application scenario, referring to fig. 3C, the apparatus further includes: a query module 307 and an update module 308.
The query module 307 is configured to determine a failure thread of the call failure, and query a third call time group corresponding to the failure thread;
the sorting module 302 is configured to, when the batch in which the call of the failed clue fails is smaller than the call times of the third call time group, add the failed clue to the sorting again, and repeat the call of the failed clue;
the updating module 308 is configured to update the thread status of the failed thread to inactive when the batch in which the failed thread call failed is equal to the call times of the third call time group.
In a specific application scenario, the updating module 308 is further configured to update the thread status of the failed thread to indicate non-activation if the number of calls to the failed thread reaches the number of calls grouped by the third number of calls and the call of the failed thread fails;
the communication module 304 is further configured to, if the number of calls to the failed thread is less than or equal to the number of calls grouped by the third number of calls and the failed thread is successfully called, continue to allocate an agent to the failed thread in the agent hierarchy bound to the target outbound program and embed the running task.
In a specific application scenario, referring to fig. 3D, the apparatus further includes: a statistics module 309.
The statistic module 309, configured to count the duration of the state clue in the inactive state;
the update module 308 is further configured to update the thread status of the failed thread to indicate activation when the status duration reaches a duration threshold.
In a specific application scenario, the selecting module 303 is configured to determine a plurality of candidate agents in the agent hierarchy, and initialize the plurality of candidate agents; and reading the seat states of the plurality of candidate seats after initialization is completed, and selecting any candidate seat from the candidate seats with the seat state indication free as the target seat.
In a specific application scenario, the communication module 304 is configured to query a file address corresponding to the target thread, and add the file address to the running task; and determining a schedule identifier of the target seat, and adding the schedule identifier to the running task.
The device that this application embodiment provided, different calling programs are bound in grades to different agents, calling program operation back outside the target, go to collect according to the clue search strategy of target calling program outside the target and wait to call the clue, call confirmed treating call clue in proper order according to clue search strategy regulation clue priority, and when detecting there is target clue call success, choose between target agent and the target clue to communicate in the agent grade that target calling program bound outside the target, call out the order of clue outward that the program realized the clue outside the utilization, call out the seat personnel of putting through after arranging outside, promote seat personnel's calling success rate outside, increase the quantity of high quality conversation, seat personnel's work efficiency improves.
It should be noted that other corresponding descriptions of the functional units related to the outbound task assignment device provided in the embodiment of the present application may refer to the corresponding descriptions in fig. 1 and fig. 2A, and are not described herein again.
In an exemplary embodiment, referring to fig. 4, there is further provided a device including a communication bus, a processor, a memory, and a communication interface, and further including an input/output interface and a display device, wherein the functional units may communicate with each other through the bus. The memory stores computer programs, and the processor is used for executing the programs stored in the memory and executing the outbound task allocation method in the embodiment.
A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the steps of the outbound task assignment method.
Through the above description of the embodiments, those skilled in the art will clearly understand that the present application can be implemented by hardware, and also by software plus a necessary general hardware platform. Based on such understanding, the technical solution of the present application may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.), and includes several instructions for enabling a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the method according to the implementation scenarios of the present application.
Those skilled in the art will appreciate that the figures are merely schematic representations of one preferred implementation scenario and that the blocks or flow diagrams in the figures are not necessarily required to practice the present application.
Those skilled in the art will appreciate that the modules in the devices in the implementation scenario may be distributed in the devices in the implementation scenario according to the description of the implementation scenario, or may be located in one or more devices different from the present implementation scenario with corresponding changes. The modules of the implementation scenario may be combined into one module, or may be further split into a plurality of sub-modules.
The above application serial numbers are for description purposes only and do not represent the superiority or inferiority of the implementation scenarios.
The above disclosure is only a few specific implementation scenarios of the present application, but the present application is not limited thereto, and any variations that can be made by those skilled in the art are intended to fall within the scope of the present application.