Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The campaign manager will basically handle how the campaigns are created, and controlled

Create a Campaign

In order to create a campaign you need to:

  • Determine your initial list of callees to dial (also known as matters or leads)
    • We suggest running large campaigns around 10000 callees
    • Also its best if you create the initial campaign with no callees and then batch add the callees in batches of a 100 to help with HTTP timeouts.
    • Bonus: A huge win for Managers would be easily creating callee lists from the outcomes of previous campaigns.
  • Select initial agents to start the campaign with, and their initial state
    • It is easier to have all agents start in an offline state, and then allow the agents to make themselves available when they are ready
    • Make sure that an agent is not available in 2 running campaigns at the same time. 
  • Set the campaign settings listed in Apiary

Modify a Campaign

Excerpt

Whether a campaign is running or not (as long as it is not deleted) it can be modified on the fly.

Anything can be changed:

  • Callees added or removed
  • Agents added or removed
  • Any campaign settings changed
The most important is that the aggression can be modified, as this forms an integral part of changing strategy on a running campaign.
Campaigns also need to be paused and deleted easily. 

Deleting Campaigns

We highly recommend that campaigns be deleted even though it is not needed, since it's one API call, and:

  • Can prevent accidentally having an agent as available in 2 running campaigns at once (which is a time consuming debug exercise for all parties)
  • Helps us keep our DB's clean
  • And keeping old campaigns seems to encourage bad practices in terms of strategy with Managers:
    • campaigns are hardly ever continued or rerun in practice, instead new campaigns are built from uncalled/unsuccessful outcomes from previous campaigns and run, which provides much better results. 
    • We would recommend automatically cleaning off campaigns that have been run at least once and last over a week ago.

Basic Implementation Requirements

For basic implementation there is a minimum set of API commands and notifications that need to be handled

  • Notifications:
  • API Calls:
    • Create a Campaign - creates a new campaign
      • upload leads in batches of 100 to avoid networking issues and http timeouts on huge lists
      • we suggest running large (10000+) campaigns, there is no requirement that they be completed
    • Modify a campaign - changes the campaign, usually to alter settings or change its state
    • List Campaigns - instead of relying on what you have stored it's always best to instead load the campaigns from the dialer and correlate that list to what you have stored.
    • Delete a Campaign - its best practice, as it will prevent issues with contact references being reused
  • Tips
    • Campaign references must be unique so generate them do not let users decide what they are.
    • Contact references must be globally unique, so prefix them with the campaign reference
    • Don't Allow campaigns to be deleted until they are stopped, and the stopped notification has been received.
    • ALWAYS only update the state in your system based on our notifications, do not assume a campaign is started or stopped because you sent an API request that succeeded, State changes are asynchronous so the notifications are your only reliable way of knowing what is happening.

...

  1. Campaigns Overview: 
    1. Display Table with a list of campaigns currently on the dialer with:
      1. their current state
      2. their reference (generated by you)
      3. their name (human readable)
    2. Buttons:
      1. Add a new Campaign:
        1. Suggestion: allow a csv file to be uploaded or have some way to create the lead list for the campaign. Validation on input is important.
        2. Go to Single Campaign View to set settings and select agents.
      2. Start campaign (leave as always clickable, restarting a started campaign won't change anything)
      3. Edit/Modify Campaign - takes you to the Single Campaign View
        1. campaigns can be modified at any point, wether started or stopped and the changes will reflect immediately
        2. The most important is that the aggression can be modified. This is a MUST.
      4. Stop Campaign (leave as always clickable, stopping a stopped campaign won't change anything)
      5. Remove campaign
        1. disables other buttons that could modify a campaign.
        2. sends a Campaign Modify API request to change the campaign state into stopped
        3. wait until the Campaign Status notification comes through to indicate the campaign has stopped (note this could take a while as the campaign enters a stopping state first)
        4. once the campaign is stopped then issue the API request to delete the campaign. 
  2. Single Campaign View: a look at what is in a single campaign
    1. campaign settings
      1. editable at any time (started or stopped)
      2. if edited a request must be sent to the dialer with only the campaign reference and the settings object so that it can adjust the settings.
      3. Suggestion: Apply button to action the changes
    2. agents
      1. view the agents allocated to the campaign
      2. add or remove agents in the campaign
      3. choose what the default state is for an agent, we recommend available as :
        1. With default state offline, the agents need to make themselves available to join a started campaign
        2. With default state available, when the campaign is started
        they
        1. the agents will be called automatically to join the campaign.
        2. this can be done in code and does not have to be a user option, just make users aware that when a campaign starts all the agents will receive a callof what the choice is.
      4. WARNING: Agents can not be active in two running campaigns at the same time, either make users aware or prevent it. Usually the former is enough. 
  3. DO NOT
    1. allow editing of callees/leads in the campaign. this gets complex with running campaigns and the API requests involved. Instead users should delete and reupload campaigns
    2. allow deleting campaigns that are running. This can cause unexpected results
    3. use the same campaign reference for a new campaign. 
    4. use the same contact reference for callees in multiple campaigns

...