Need the ability for an agent or API to remove, defer, or skip a contact during an active outbound campaign without stopping and restarting the campaign

Summary

We would like the ability for agents or administrators to remove, defer, or skip a contact during an active Zoom Contact Center outbound campaign without requiring the campaign to be stopped and restarted.

Use Case

Our Collections team uses outbound campaigns to contact customers. During the course of a campaign, agents may determine that a specific contact should not be called again during the current campaign for reasons such as:

  • The customer requested a callback at a later date.
  • The account requires additional research before further contact.
  • The contact was reached through another channel.
  • The account should be temporarily excluded from the current outreach effort.

In these situations, agents need a way to immediately remove or defer the contact without impacting the rest of the campaign.

Current Limitation

The current Skip functionality is limited to five skips per contact. When a contact is skipped, it is not removed from the campaign or contact list. Instead, the contact is routed to another available agent. This process continues until the contact has been skipped by all the agents, at which point it is no longer presented.

Our requirement is different. We need the ability for an agent or system action to immediately remove, suppress, or defer a contact from an active campaign when it is determined that no further contact attempts should be made during that campaign.

I investigated these potential solutions:

  • Disposition-Based Removal
    • The idea was to have an agent disposition trigger a “remove” or “defer” action for the contact. Unfortunately, this approach reached a dead end. Zoom Contact Center does not provide a native mechanism to perform actions on a contact based on a disposition outcome. Implementing this ourselves would require webhooks and additional custom logic, introducing complexity and potential reliability concerns.
  • DNC List Suppression via API
    • Another option was to add a contact’s phone number to the campaign’s Do Not Call (DNC) list through the API. However, this solution is not well-suited for the requirement. It only prevents future contact attempts rather than removing the contact immediately, and it operates at the phone number level rather than the contact level.
  • Campaign Restart Process
    • Contacts are not fully removed until they are removed from the contact list, the campaign is stopped, the contact list is removed and re-added, and the campaign is restarted. Although this process could be automated through the application, it is fragile, complex, and introduces a significant maintenance burden. Given the planned roadmap for the Collections application, I do not believe this approach is a reasonable long-term solution.
  • Zoom Auto Dialer
    • Auto Dialer exposes a ‘Delete Prospect’ endpoint, which would satisfy the removal requirement. However, it lacks the campaign infrastructure our Collections workflow depends on. Migrating off Contact Center to gain one API call isn’t a reasonable tradeoff.