Signal Builder

Use Signal Builder to create expressions used to evaluate and tag calls based on call attributes, external data, Voice Signals or where the call routed, including premium data from Enhanced Caller Profiles.

Invoca automatically evaluates the expressions associated to that Signal, and if met applies the revenue value specified on that Signal for the call.

To enable Signal Builder please email

To create a Signal,

Select “Signal” from the gear icon.

Click “New Signal” .

View available expression data on the left panel. Click a condition button to start building a Signal rule.

Assign a proxy value, such as average order value,  to phone calls using the “Revenue” field.

This provides an easy way to identify a monetary value for potential high value calls can be seen in the “Revenue (Sale Amount)” Column in reporting.

Use dropdown controls to define the Signal rule condition values.

Once the Signal is defined, specify Campaigns in which this signal should apply.

To define Signal rules with more granularity, use the Text editor view. Add parentheses and additional parameters as needed.

Use the following operators below to create manual expressions:

  • duration - Total length of call, can be in seconds or minutes
  • connect_duration - Length of call once forwarded out of Invoca IVR, can be in seconds or minutes
  • mobile* - true if phone type is mobile
  • landline* - true if phone type is landline
  • sms_sent* - true if a text message (SMS) was triggered during the Invoca IVR
  • during_hours* - true if phone call was placed during the business hours of the campaign (always true if campaign is set to 24/7
  • repeat* - true if this call is considered a repeat caller based on the criteria setup on the campaign (default is within the last 30 days); see previous_signal for a better way to determine if someone is calling back that has already cleared some criteria (such as asking for a quote, or making a purchase)
  • signal* - true if another Signal specified was met on this call (can be used to build up compound rules where one rule is based on the existence of another rule)
  • previous_signal - true if the Signal specified was met on a previous call to the campaign by a repeat caller (within the last 30 days) (Idea is that you will understand if they’ve had the a signal before)
  • voice_signal - true if the Voice Signal specified was met on a previous call to the campaign
* 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.

Supported expressions

Expression Examples:

duration > 2 minutes
duration < 30 seconds
duration > 1 minute AND mobile
during_hours AND sms_sent
signal = 'Over 18'
signal = 'SupportCall' AND duration > 5 minutes
previous_signal = 'Over 18'
voice_signal = 'Quote'

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.


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] present

This 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


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)


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")
Occupation ("Retired", "Professional", "Blue Collar Worker")
High Net Worth ("No", Yes")

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

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

Comparing strings (e.g. campaign names, ring pool param values, etc):

=equal, case insensitive
partial match, case insensitive
presentexists and is non blank

To view reported Signals,

In the Calls detail report, view all signals rolled up into a comma separated list in the “Signal Names” column.

To view each Signals triggered on a call,

In the Transaction details report, Ensure the “Signal Details” columns are selected.

View all signals as new transactions under the evaluated call.

Feedback and Knowledge Base