Integration Guide: Basic UI - Campaign Manager
On a user level in your system the 2 big parts are the Campaign Manager and the Agent Interface.
Campaign Manager
The campaign manager will basically handle how the campaigns are created, and controlled
Basic Implementation Requirements
For basic implementation there is a minimum set of API commands and notifications that need to be handled
- Notifications:
- Campaign Status Notifications - they will tell your campaign manager when a campaign changes state.
- 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
- Create a Campaign - creates a new campaign
- 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.
Basic Implementation Functionality
This is a suggestion of what basic features a campaign manager should have for a Minimum Viable Product that won't result in user errors.
- Campaigns Overview:
- Display Table with a list of campaigns currently on the dialer with:
- their current state
- their reference (generated by you)
- their name (human readable)
- Buttons:
- Add a new Campaign:
- 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.
- Go to Single Campaign View to set settings and select agents.
- Start campaign (leave as always clickable, restarting a started campaign won't change anything)
- Edit/Modify Campaign - takes you to the Single Campaign View
- campaigns can be modified at any point, wether started or stopped and the changes will reflect immediately
- The most important is that the aggression can be modified. This is a MUST.
- Stop Campaign (leave as always clickable, stopping a stopped campaign won't change anything)
- Remove campaign
- disables other buttons that could modify a campaign.
- sends a Campaign Modify API request to change the campaign state into stopped
- 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)
- once the campaign is stopped then issue the API request to delete the campaign.
- Add a new Campaign:
- Display Table with a list of campaigns currently on the dialer with:
- Single Campaign View: a look at what is in a single campaign
- campaign settings
- editable at any time (started or stopped)
- 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.
- Suggestion: Apply button to action the changes
- agents
- view the agents allocated to the campaign
- add or remove agents in the campaign
- choose what the default state is for an agent:
- With default state offline, the agents need to make themselves available to join a started campaign
- With default state available, when the campaign is started the agents will be called automatically to join the campaign.
- this can be done in code and does not have to be a user option, just make users aware of what the choice is.
- 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.
- campaign settings
- DO NOT
- 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
- allow deleting campaigns that are running. This can cause unexpected results
- use the same campaign reference for a new campaign.
- use the same contact reference for callees in multiple campaigns