Skip to main content
Skip table of contents

CX Campaigns MVP 1 (Restricted)

CX Campaigns is a multi-channel campaign management solution. As a Campaign Designer, you can define a multi-step campaign strategy using Conversation Studio.

See the User Guide - CX Campaigns to learn more about creating campaigns, uploading contacts, and defining campaign strategies using Conversation Studio.

Campaign Contacts

Following are some cases and the way they are being handled within this campaign system:

  • When contacts are uploaded, if some channel attribute for any new contact already exists in the system, then the new contact will be merged with the already existing one.

  • When contacts are updated, the node-red flow be executed only for the new contacts and not the already existing ones, even if they were updated.

  • The Node-RED flow will sync (contacts) whenever either the flow or contacts are updated or the campaign's state is switched to the publish state

  • Nothing will be scheduled if the campaign is in an unpublished state.

  • Ending a campaign will unschedule everything and an ended campaign cannot be published again.

Planned scope

Comments

As a Campaign Manager I would like to be able to do the following,

  • Click on the "Create Campaign" button in the campaign list view.

  • I am taken to a new view (Campaign Definition) where I am able to define the following fields/ settings for the campaign I am trying to create,

    1. Campaign Name: I am able to choose a name for the campaign.

    2. Campaign Description: I am able to describe the campaign.

    3. Campaign Execution Time (range): I am able to select a time range between two-time periods in a 24-hour clock. The system does give me an indication if the time range is invalid.

    4. Campaign Validity Period (datetime range): I am able to select a datetime range for when the campaign should start executing contacts and when to completely stop the execution.
      Note: At any given time, if the campaign is either unpublished/ ended or the validity period expires, no further execution of contacts should happen. Any contacts that are pending execution should be stopped with a flag/ status of validity-period-expired _(in the case of validity period expiry), campaign-ended, and _campaign-unpublished (in the case of unpublish/ paused). The Dialer in this case has the capability to either pause or completely remove the campaign. Something similar should be done for text messages as well. In case the campaign is published again (the campaign should be resumed) and in the case of validity period change on the campaign level, the remaining contacts that were not dialed out due to validity expiry should be re-sent to schedular as new contact request.

    5. Campaign Dialing Mode: It shows a checkbox dropdown of all the dialing modes available. One or more dialing modes can be selected/ allowed to be used in the campaign flows. For now, we only support Progressive.

    6. Specify Queue: It displays a dropdown of all the queues available and the user is able to select any (one).
      Note: Further discussion required for multiple queues and named agents.

  1. There is no view page initially. When the admin clicks on the "Create Campaign" button, a popup appears asking for the campaign title. After entering the campaign title, the campaign is created.

  2. To edit the campaign, I can either click on the "Edit" button, which takes me to the edit view, or click on the "View More" option in the popup shown during campaign creation.

Currently, our system supports the following fields:

  • Title

  • Description

  • Validity period (This field is supported by the API but is not used at the campaign level for now)

  • Execution time (Same as above)

Missing fields that need to be added:

  • Dialing mode

  • Queue

  • Gateway

We have to manually set the execution time of the campaign from the campaign studio.

As a Campaign Manager I would like to have access to the following controls for each campaign shown in the list,

  • Ability to change the status of a campaign. The buttons/ toggles for this purpose can have the following states,

    1. Publish (start)

    2. Unpublish (default state of a newly created/cloned campaign, this is the same as paused)

    3. End (after the campaign has been marked as ended, it cannot be started/restarted/published)

  • Hovering on the list of campaigns, I am able to Edit/Clone a campaign.

    • Edit: It takes me to the detailed campaign edit view where I am able to change campaign settings, described in detail in the Create/ Define a Campaign section.

    • Clone: It takes me to the campaign edit view for the newly cloned campaign. I am required to hit save; else any clone created will be lost.

  • The clone feature is not implemented yet (the API has not been created yet).

  • Everything else has been implemented.

  1. As a Campaign Manager, I am able to click on the "Add Contacts" button which opens up a dropdown or similar with two options.

    1. Upload CSV: This allows me to attach a CSV file of the contacts for the campaign. The CSV can either already have known column names for each campaign contacts required for channel type, user preferences, etc. or optionally, I am able to match columns available in my CSV file to those expected while adding the campaign contacts. Ideally, I would like to see the progress of the contacts being uploaded and optionally, can set it to run in the background. Also, good to have proper error/ success messages.

    2. Restful API: This allows me to view an automatically generated API endpoint with params/ keys already added which I can use to push contacts to the campaign.

  2. Good to have: I can also clearly see all files I have uploaded with the number of contacts in each one (same for Restful API - one group).

  3. After the campaign contacts are loaded, I am ready to go to the Visual Flow Builder.

Currently, our system supports uploading CSV files.

  • As a Campaign Manager, when I click on the Campaigns tab in the Admin Panel, I am shown a list of all the campaigns. The campaigns have details on and can be sorted by,

  1. Name

  2. ID

  3. Date created (default sort column, older first)

  4. Modified date

  5. No. of contacts

  6. Good to have: Optionally, Activity date/time

  • The campaign list also clearly shows the status of each campaign, i.e. published (running)/ unpublished (paused) or ended.

Everything is implemented

  • In the Contacts Management section/ view, I am able to do the following,

    1. I see a list of all contacts uploaded with Pagination.

    2. Good to have, I can see/ filter by any contact source added to the campaign (CSV files, Restful API)

    3. I can sort the columns via, ascending/ descending order (for numbers and datetime), alphabetical order (any text field)

    4. Good to have, I have access to a search function which allows to be search contacts based on any field value. Furthermore, I can apply (advanced) filters based on any (one/ multiple) column(s) available.

    5. Not required for now: I am able to apply CRUD operations on a contact (data).

    6. Not required for now: Optionally, I am able to do bulk CRUD operations on the contacts (on the visible list) which can be as many as 100 at a given time and an option to display 10 and 50 at a time.

    7. I have access to delivery status information for each contact, channel vise (to see if any SMS was sent to the contact and via which identifier) and complete trail (which will display details on the contact flow, e.g.
      channel _(status) _-> channel__ (status).

Currently our system support

  • I see a list of all contacts uploaded with Pagination

Limitations:

  1. On the Campaign List view duplicate campaign button is currently not implemented end-to-end.

  2. On the Campaign configuration view the time zone feature is not functional because it is not supported.

  3. On the Campaign configuration view delete field functionality is not working now

  4. On Contact Source view (Upcoming: Import CX Customers)

  5. On Contact Source view When you upload a file, its contacts and CSV sources are not loaded immediately. They are displayed upon clicking the refresh button

  6. The server might crash if a CSV file containing a large number of contacts is uploaded or if the file format is incorrect.

  7. The RESTful API section is currently not working on the Contact Source view.(disable for now)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.