Hi Gerry,
I think there may be a better way to approach this than using >= 99.5% as the recycle point.
The key distinction I would make is between recycling the campaign and deciding which contacts are still eligible to be called again.
Genesys Cloud does provide a native Recycle Campaign action in Campaign Rules, and the newer Advanced Campaign Rules also have some interesting conditions that may help here. For example, there is a Campaign Wait Time condition where you can specifically evaluate how long the campaign has been in Waiting for Contacts. So, instead of saying:
Campaign Progress >= 99.5% → Recycle
you could potentially use something closer to:
Campaign is Waiting for Contacts for X minutes → Recycle Campaign
That would make the recycle react to the actual operational condition that is creating the idle time, rather than an arbitrary percentage.
There is one important point though: I would not treat a recycle as "call everybody again".
For the next pass through the list, I would let the dialer determine which contacts are still callable.
For example:
-
Invalid / uncallable number → Number Uncallable → do not dial again
-
Successfully contacted customer → Contact Uncallable / appropriate wrap-up mapping → do not dial again
-
No Answer → still eligible for another attempt
-
Answering Machine → still eligible for another attempt
-
Busy → still eligible for another attempt
This is where Attempt Controls / Recall Controls become very useful. Genesys allows separate recall behavior for Answering Machine, Busy, Fax and No Answer, including the number of retry attempts and the interval between them.
So conceptually I would separate it like this:
1st pass: attempt all eligible records
→ successful/invalid contacts become uncallable
→ no-answer/machine/busy contacts remain eligible according to Attempt Controls
→ when the campaign genuinely runs out of callable contacts, recycle
→ the next pass works only on the contacts that are still eligible.
That seems safer to me than recycling at 99.5%, because that missing 0.5% may still represent interactions that are in flight or being wrapped up.
There is also an API option if you need more custom logic:
DELETE /api/v2/outbound/campaigns/{campaignId}/progress
This resets the campaign progress and recycles the campaign. So another design could be an Architect Workflow + Data Action, where the workflow evaluates whatever conditions you need and then performs the recycle through the API. A scheduled/event-based Trigger could invoke that workflow depending on the use case.
I would probably keep the API/workflow approach as the more customized option, though. If Advanced Campaign Rule + Campaign Wait Time + Attempt Controls achieves the requirement, it keeps the whole solution native to Outbound and considerably simpler.
One other detail from the Genesys documentation: if the rule is based on reaching 100% campaign progress, the campaign should be configured as Always Running for the recycle action to trigger consistently before the campaign turns off.
So I think the question may be less "How can we reach 100% faster?" and more "How can we keep agents productive while making sure only the right contacts become eligible for the next attempt?"
That combination of Campaign Wait Time + Recycle + Attempt Controls/Uncallable mappings may be worth testing here.
------------------------------
Fernando Sotto dos Santos
Consultor de Atendimento Senior Grupo Casas Bahia
------------------------------