01-23-2018 07:02 AM - edited 02-09-2024 10:01 AM
In Invoca, you can use Signals to tag and segment your phone calls according to the data and outcomes that are most useful to your business. This article will teach you how to create and manage rule-based Signals — Signals which Invoca evaluates based on conditions which you define ahead of time, including...
You can even combine several of these conditions into one Signal, helping you pinpoint the calls and outcomes that are most valuable your business. Here's how to get started.
That's it! You've created a new rule-based Signal in your Invoca account. Now, whenever you receive a new phone call, Invoca will check that phone call for each condition you specified, and mark your call as either "true" or "false" for your Signal, depending on whether your conditions were met. To see these Signals in your Invoca reports, see Viewing Marketing Data and Signals in your Invoca reports.
Most Signals you create in Signal Builder will process before your phone call takes place. The exception to this are Signals that include conditions for phrase spotting or call duration, which naturally require data from your phone call to evaluate. Those Signals will be processed shortly after your call ends instead.
If you'd like a little more granularity in combining conditions to evaluate your Signals, you can also manually write your own Signal expressions using our Text editor view. Here's how:
Use the following operators below to create manual expressions:
*Real time expressions are evaluated at the time of the call. Signals containing real time expressions may be used effectively within call treatment conditions. Other expressions will evaluate to false in real time.
Expression Examples
duration > 2 minutes duration < 30 seconds duration > 1 minute AND mobile Landline during_hours AND sms_sent signal = 'Over 18' signal = 'SupportCall' AND duration > 5 minutes previous_signal = 'Over 18' voice_signal = 'Quote'
Custom Data Fields
custom_data["partner name"] - true if the specified custom data field exists for the call. Note: you can check for exact match, contains, or simply if the field was present at all.
Examples
custom_data["utm_source"] = 'LinkedIn' custom_data["utm_campaign"] contains 'Search' custom_data["device_type"] = 'mobile' AND pool_param[os_type] = 'android'To simply check if a custom data field exists:custom_data["gclid"] presentor to check if a custom data field doesn't exist:not (custom_data["gclid"] present)This will only be true if the field value exists for this call and is not a blank string (i.e. whitespace only).
Ring Pool Parameters
pool_param[<param_name>] - true if the specified RingPool parameter value exists for the call. Note: you can check for exact match, contains, or simply if the parameter value was present at all.
Examples
pool_param[utm_source] = 'LinkedIn' pool_param[utm_campaign] contains 'Search' pool_param[device_type] = 'mobile' AND pool_param[os_type] = 'android'To simply check if a parameter value exists:pool_param[gclid] presentThis will only be true if the parameter value exists for this call and is not a blank string (i.e. whitespace only).
Promo Number Details
media_type - Promo Number Media Type
promo_number_description - Promo Number Description
Examples
media_type contains 'Search' OR media_type = 'Offline: TV' promo_number_description = 'AdWords 2015 A1' promo_number_description contains 'facebook'
Account & Campaign Details
advertiser_name - Advertiser/Merchant name
affiliate_name - Affiliate/Publisher name
advertiser_campaign_name - Campaign name (not including Advertiser name prefix)
Examples
advertiser_name = 'Zulu Servers' affiliate_name contains 'search' advertiser_campaign_name contains 'facebook' OR advertiser_campaign_name contains 'social media'
Enhanced Caller Profile (only available if feature is enabled)
Gender ("Male", "Female")
Age (accurate to within 5 year ranges)
Address_type ("Business", "Residential")
Household Income (example: "25k")
Marital Status ("Married", "Single")
Has Children ("No", "Yes")
Home Owner Status ("Own", "Rent")
Home Market Value (example: "80k")
Length of Residence (Number of years)
Education ("Completed College", "Completed High School", "Completed Graduate School", "Attended College")
High Net Worth ("No", Yes")
Examples
gender = "male" AND age > 20 AND age < 50 gender = "female" AND address_type = "residential" address_type = "business"
Expression Operators
Use OR if you want either/any condition to be true
Use AND if you want both/all conditions to be true
Use AND NOT in front a condition to invert the logic
Use parenthesis when you have multiple conditions
Example
duration >= 5 minutes AND (pool_param[gclid] present OR pool_param[kid] present)This Signal evaluates to "true" if the call is 5 minutes or more, and a gclid OR a kid parameter value exists.
Comparing Numbers
> | greater than |
< | less than |
>= | greater than or equal to |
<= | less than or equal to |
= | equal |
Comparing strings (e.g. campaign names, ring pool param values, etc)
= | equal, case insensitive |
contains | partial match, case insensitive |
present | exists and is non blank |