Back to Automate Campaigns Help

How to Implement Advanced Campaign Automation?

Though triggers and campaign series are easy to use and implement, more advanced business process automation normally requires some "programming" abilities. For example, in the following senior care example, if calls to a senior is not answered three times within the calling period, a text message should be sent to the senior's emergency care person. Further, various features, such as campaign templates, call disposition rules, custom fields, and workflow triggers, must be used together in order to automate a process.

A Senior Care Alert System

This example shows how to set up an automatic call system to check on senior people living alone. The system would call each person daily, with a message prompting them to reply by entering a key. If they do not answer and enter a key, it should retry 3 times and if still no answer, should then notify a relative's phone number that the person is not responding.

An Implementation

There are usually various ways to automate a process. Here we show one implementation that demonstrates the programmable aspect of the Voicent software platform.

Campaign Message Template

Define a campaign message template to be used for campaign and workflow triggers. It can be set up under Setup, Campaign, Message page using interactive message type. Make sure to select press 1 to be interested or specify own meaning. The exact meaning is not important for this application as long as a touch tone key is received.

Call Disposition Rule

A call disposition rule is checked whenever a call of a campaign is finished. Normally you use it to set certain CRM values. In this example, the call disposition rule is used to set the Contact Status value. Call disposition rule is set up under Setup, Campaign, Call Disposition page.

Each rule corresponds to certain call status and result. Normally a set of rules is needed to cover all call results.

  1. Define a call disposition rule to set Contact Status to Contacted if a touch tone key is received
  2. Define a call disposition rule to set Contact Status to Contact Failed if call is answered but no key is pressed
  3. Define a call disposition rule to set Contact Status to Contact Failed if call is answered by a machine
  4. Define a call disposition rule to set Contact Status to Contact Failed if call is failed

Campaign Template

Define a campaign template to be used for campaign and workflow triggers. Comparing with campaign message template, a campaign template can further define options like caller ID and call disposition rules. It can be set up under Setup, Campaign,Template page. The campaign template defined here can use the campaign message template and call disposition rules defined earlier.

Custom Field

In order to automate a more advanced process, we need to approach this a little like programming. First, we need a custom field for remembering how many times a particular number has been called. We name it "calls_attempted" and set it as a number.

Workflow Trigger

A trigger is used to do certain actions when the triggering condition is met. It is set up under Setup, Workflow, Trigger page.

  1. Define a workflow trigger when a call is failed, but not the last attempt
  2. This trigger is activated when a Customer Updated event happened in the system. In our example, it is when the Contact Status is updated by a call disposition rule.

    A trigger condition further defines the condition. In this case, the Contact Status field must not be Contact Failed before the update and becomes Contact Failed after the update. In addition, the calls_attempted value must be less than 2, which means this is not the last call attempt.

    In the Do the following actions section, a set of actions are defined to run if the triggering condition is met. First, it clears the Contact Status field. Then it increment the calls_attempted value. The whole value is defined to be __VG__CUSTOMER__.calls_attempted + 1. After that, it will wait for 10 minutes and make a call to the contact's phone using the defined campaign template.

  3. Define a workflow trigger when the last call attempt is failed
  4. Similar to the above trigger. The condition should be calls_attempted to be greater than or equals to 2. In the action section, it clears the Contact Status field and reset calls_attempted to zero. It then sends a text message to the contact's mobile phone (here we assume it is the care taker's phone number).

  5. Define a workflow trigger when a call is succeeded
  6. This should be similar to the above trigger. It checks the contact status is Contacted and then clears the Contact Status field and sets calls_attempted to zero.

Recurring Campaigns

The defined campaign template can be used to manually run against a contact list. Go to Campaigns page, then click the Start Using Template button. Choose your list and the defined campaign template, then click the Create Campaign button. To schedule it for daily run, choose the Schedule Campaign button, then choose the right repeat pattern.

Implementation Explained

So how does all this work? When a campaign is launched, it will call the list based on the campaign template (message and call disposition rules).

If a call is answered and a key is pressed, the call succeeded disposition rule will be applied, which sets the Contact Status to Contacted. This will in turn trigger the call success trigger, it will clear the calls_attempted field and Contact Status field. The clearing of these fields is needed for next days' campaign.

If the call is not answered or no key is pressed, based on the corresponding call disposition rules, the Contact Status is set to Contact Failed. This will trigger the call failed or call failed final trigger based on the current value of calls_attempted. If calls_attempted is less than 2, the former will be triggered. It then clears the Contact Status field (preparing for the next call), and increment the calls_attempted value. It then waits for 5 minutes and place another call. If this is the last attempted, the later trigger will be invoked and actions carried out accordingly.

Other Implementations

The implementation here is actually not the easiest and optimal. To demonstrate the programmable aspect of the platform, we use a variable (calls_attempted) in this example. For this simple example, it as actually not necessary. A simpler implementation can run the campaign three times, each time only call people have not been contacted (Contact Status is not Contacted). After that, then run another campaign to contact the care takers.

A bigger problem with this implementation is that it will trigger many individual calls. Normally, if you work on a list, it is better to define workflow based on list - using campaign series etc. Triggering individual calls is not optimal - your account may not have available phone lines to carry out the action, which may result the action to be delayed or ignored.