Reports API Version 2 Triggers
Introduction
A trigger represents a single tracked event in Infinity. Triggers can be made up of Online and Offline events, such as web site page views or calls. Triggers can be exported from Infinity as a list with various filters applied.
Triggers List
Lists the triggers within an IGRP with the following predefined filtered reports:
Get all triggers
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/all
Get all call triggers ( where trigger action is call )
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/calls
Get all Hosted PBX Call User triggers ( where trigger action is callUser )
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/users
Get all goal triggers ( where trigger is marked as a goal )
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/goals
Get all transaction triggers ( where trigger has transaction currency or goal currency fields ). callRate triggers are excluded from these reports
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/transactions
Get all triggers with any transaction, call or goal details. This is a union of the three routes “calls”, “goals” and “transactions” described above.
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/callsGoalsTransactions
Get all touch point triggers. This is a collection of recent land, call and goal triggers. You can only query back as far as your Installation’s trigger retention period on this route.
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/touchPoints
Get all visits triggers (where trigger act are lands)
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/visits
URL Path Params
- IGRP SPECIFIER (int) - Installation ID.
GET Params
- rootOrgId (int) OPTIONAL - Filter Segments accessible by an organisation.
- chType (string) OPTIONAL - Channel Type to filter by.
- startDate (string) OPTIONAL - Start Date to filter by, see Dates and Timezones.
- endDate (string) OPTIONAL - End Date to filter by, see Dates and Timezones.
- tz (string) OPTIONAL - Timezone to convert to, see Dates and Timezones.
- excludePiiData (flag) OPTIONAL - If PII Data should be redacted. This only applies to users who have the
piiData
permission, otherwise data is always redacted. This flag has no effect for users without thepiiData
permission. - limit (int) - Limit result set, see Pagination.
- offset (int) OPTIONAL - Offset result set, see Pagination.
- sort (array) OPTIONAL - One or more sorts, see Sort Types.
- filter (array) OPTIONAL - One or more filters, see Filter Types.
Filter Types
The triggers list may be filtered by any of the returned fields, except customs fields (pass-through with pt_
prefix and variables with c_
prefix).
Sort Types
Same fields as Filter Types, see above.
Response:
Returns a list of triggers that match the supplied filters.
The response could be received in different formats based on the format
parameter in the request.
Available formats: json
, xml
or csv
(by default).
Examples
Retrieve all triggers
Request
https://api.infinitycloud.com/reports/v2/igrps/1/triggers/all?startDate=2018-01-01&endDate=2018-07-01&limit=2
Response
{"rowId":"1","triggerDatetime":"2018-01-16 13:20:11","igrp":"1","dgrp":"0","ch":"1","src":"direct","act":"land","algo":"","attr":"","vref":"","href":"","num":"","term":"","vid":"93393a8e","t":"","goal":"0","srcHash":"abe88d1f435bafca9d8ba335c9bff04d","new":"2","pageTitle":"TTS number allocation test site UK's","pub":"","segment":"4","segmentGroupId":"0","dom":"","ref":"","network":"","matchRef":"","matchType":"","campaign":"","adGroup":"","adRef":"","keywordRef":"","dialledPhoneNumber":"02035555610","srcPhoneNumber":"0123456","destPhoneNumber":"test.user@localhost.net","callDuration":"0","bridgeDuration":"0","ringTime":"0","ivrDuration":"4","queueDuration":"2","operatorRef":"shahrukh.omar","ivrRef":"","dialplanRef":"","callRating":"","callState":"","callDirection":"in","callStage":"","operatorRealm":"","telcoCode":"ict","numType":"37","rec":"0","transcriptionConfidence":"0","totalKeywordScore":"0","totalOperatorKeywordScore":"26","totalContactKeywordScore":"-176","operatorPositiveKeywordCount":"0","operatorNeutralKeywordCount":"0","operatorNegativeKeywordCount":"0","contactPositiveKeywordCount":"0","contactNeutralKeywordCount":"0","contactNegativeKeywordCount":"0","callPciDataChecked":"0","callPciDataFound":"0","callSsnDataChecked":"0","callSsnDataFound":"0","callPiiDataChecked":"0","callPiiDataFound":"0","callKeywordSpotting":"0","callTranscription":"0","whois":"WHOIS PII Data","ip":"127.0.0.1","ua":"Mozilla 5.0","country":"","city":"","continent":"","res":"2560x1440","lat":"0.0000","long":"0.0000","region":"","postcode":"","area":"","spider":"","host":"","visitorType":"S","sfWhoRef":"","visitorPageCount":"1","visitorGoalCount":"0","visitorCallCount":"3","visitorFirstDatetime":"2018-01-16 13:20:11","landingPageId": "0","conversionPageId": "0","chName":"Direct","chType":"direct","segmentName":"test2","segmentRef":"test2","orgId":"1","segmentGroupName":"Default","notes":"[{"note": "Test Note 1", "createDatetime": "2023-01-01 09:00:00"}, {"note": "Test Note 2", "createDatetime": "2023-01-02 10:30:00"}]", "leadScore":"100"}
{"rowId":"2","triggerDatetime":"2018-01-24 11:34:14","igrp":"1","dgrp":"10008","ch":"0","src":"","act":"callBlegStart","algo":"failsafe","attr":"","vref":"","href":"","num":"02035555610","term":"","vid":"","t":"","goal":"0","srcHash":"","new":"0","pageTitle":"","pub":"","segment":"4","segmentGroupId":"0","txr":"2401","txv":"0.00","txc":"","goalValue":"0.00","goalCurrency":"","outcomeType":"C","dialledPhoneNumber":"02035555610","srcPhoneNumber":"test.user2","destPhoneNumber":"test.user@localhost.net","callDuration":"0","bridgeDuration":"0","ringTime":"0","ivrDuration":"4","queueDuration":"2","operatorRef":"test.user","ivrRef":"","dialplanRef":"","callRating":"","callState":"","callDirection":"in","callStage":"","operatorRealm":"","telcoCode":"ict","numType":"37","rec":"0","transcriptionConfidence":"0","totalKeywordScore":"0","totalOperatorKeywordScore":"26","totalContactKeywordScore":"-176","operatorPositiveKeywordCount":"0","operatorNeutralKeywordCount":"0","operatorNegativeKeywordCount":"0","contactPositiveKeywordCount":"0","contactNeutralKeywordCount":"0","contactNegativeKeywordCount":"0","callPciDataChecked":"0","callPciDataFound":"0","callSsnDataChecked":"0","callSsnDataFound":"0","callPiiDataChecked":"0","callPiiDataFound":"0","callKeywordSpotting":"0","callTranscription":"0","chName":"Unknown","chType":"offline","dgrpName":"Test DGR P SO ","dgrpRef":"","callRatingId":"1","segmentName":"test2","segmentRef":"test2","orgId":"1","segmentGroupName":"Default","lands":0,"notes":"[{"note": "Test Note 1", "createDatetime": "2023-01-01 09:00:00"}, {"note": "Test Note 2", "createDatetime": "2023-01-02 10:30:00"}]", "leadScore":"300"}
Retrieve all triggers with filter
For performance reasons, results from the Infinity API are restricted to a maximum of number of rows per request. This maximum number is typically 10,000 and if you specify a higher limit value the API will return an error.
If you want a larger number of triggers then you must make multiple requests, fetching a small batch of triggers in each request. The most efficient way to do this is to sort and filter by rowId.
Start by requesting the first batch ( rowId > 0 ), record the last rowId seen in the response, and then use that to filter the next batch. Continue in this way until no rows are returned from the API.
Request the first batch:
https://api.infinitycloud.com/reports/v2/igrps/1/triggers/all?startDate=2015-05-01&endDate=2015-05-31&tz=Europe%2FLondon&limit=1000&filter[]=rowId-gt-value-0
In this request we have defined the IGRP, the date range and timezone. We have sorted the results by rowId ascending (required) and asked for no more than 1000 results (your batch size could be different but we’ve found 1000 to work well). We also requested only rowId values greater than zero. While this doesn’t actually filter the first batch (rowId is always positive), it highlights the difference in subsequent batch requests.
Check the results, noting the last rowId:
{"rowId":"141247288","triggerDatetime":"2015-05-01 00:00:01",...}
{"rowId":"141247289","triggerDatetime":"2015-05-01 00:00:02",...}
...
{"rowId":"141248744","triggerDatetime":"2015-05-01 00:19:45",...}
{"rowId":"141248745","triggerDatetime":"2015-05-01 00:19:57",...}
Note that the rowId may not start at 1 (some triggers are deleted after a certain time), there may be gaps in the rowId sequence, and that the triggerDatetime may be out of sequence with the rowId, due to the asynchronous nature of our tracking platform. The rowId will always be unique and incremental though, which is why this method works.
Use the last rowId to request the next batch (the only difference between this request and the previous request is the filtered rowId value at the end):
https://api.infinitycloud.com/reports/v2/igrps/1/triggers/all?startDate=2015-05-01&endDate=2015-05-31&tz=Europe%2FLondon&limit=1000&filter[]=rowId-gt-value-141248745
Continue in this way, changing the rowId in each request until you have worked through the whole result set and retrieve no more rows.
It is possible to retrieve all triggers from Infinity over time, e.g. to populate your own data warehouse with Infinity trigger data. To do this you can remove the date range (startDate and endDate parameters). Poll the API periodically to get new data, persisting the last seen rowId between requests so you don’t start from the beginning each time.
This method also works with other routes, e.g. to import all calls (/reports/v2/igrps/{IGRP SPECIFIER}/triggers/calls
),
or all transactions (/reports/v2/igrps/{IGRP SPECIFIER}/triggers/transactions
).
Call Recording Export
Exports a call recording for a given rowId
Request:
GET /reports/v2/igrps/{IGRP SPECIFIER}/callRecording/{rowId}
URL Path Params
- IGRP SPECIFIER (int) - Installation ID.
- rowId (int) - The row ID to download the call recording for
Response:
The call recording
Visitor Trace Triggers
Exports visitor trace triggers without real-time triggers or attribution data. This request filterable and sortable as usual.
Request:
GET /reports/v2/igrps/{IGRP SPECIFIER}/visitors/{VISITOR SPECIFIER}/triggers
URL Path Params
- IGRP SPECIFIER (int) - Installation ID.
- VISITOR SPECIFIER (string) - The UUID string (vid) of visitor
GET Params
- limit (int) - Limit result set, see Pagination.
- offset (int) OPTIONAL - Offset result set, see Pagination.
- sort (array) - One or more sorts, see Sort Types.
- filter (array) OPTIONAL - One or more filters, see Filter Types.
- startDate (string) OPTIONAL - Start Date to filter by, see Dates and Timezones.
- endDate (string) OPTIONAL - End Date to filter by, see Dates and Timezones.
- tz (string) OPTIONAL - Timezone to convert to, see Dates and Timezones.
- excludePiiData (flag) OPTIONAL - If PII Data should be redacted. This only applies to users who have the
piiData
permission, otherwise data is always redacted. This flag has no effect for users without thepiiData
permission.
Response:
A list of visitor trace triggers
Field Definitions
Here are definition for fields that can be returned in the Trigger reports.
General Fields
- rowId (int) - Trigger ID.
- triggerDatetime (datetime) - Trigger datetime in UTC. Format: “YYYY-MM-DD HH:MM:SS”.
- igrp (int) - IGRP ID.
- dgrp (int) - DGRP ID.
- ch (int) - Channel ID.
- src (string) - The source mode that the trigger was detected from.
- vref (string) - The visitor referrer URI.
- href (string) - Web page URL (if applicable). For web based triggers this is the URL of the page that was tracked. For call triggers, this is the last URL seen before the call took place.
- pageUrl (string) - Same value as the href, any query parameters have been removed. For web based triggers this is the URL of the page that was tracked. For call triggers, this is the last URL seen before the call took place.
- landingPageId/conversionPageId (int) - An internal ID used to store the pages url value.
- landingUrl (string) - This is the first tracked URL visited by the customer.
- conversionUrl (string) - For call triggers, this is the last URL visited 30 minutes before the call took place.
- num (string) - The phone number displayed or called for phone number display and call triggers.
- term (string) - The raw search term if the SEO detection recognized a known search engine.
- vid (string) - Visitor UUID.
- t (string) - Trigger Title (e.g. page title, transaction title, IVR ref, dialplan Ref, call rating).
- goal (int) - Goal ID.
- srcHash (string) - The unique reference given to the landing source combination.
- new (int) - A flag indicating if this is a new visitor.
- pageTitle (string) - Trigger page title. For calls the page title will the last page visited in the session. Currently this is only available on call event triggers.
- pub (string) - The search publisher if the SEO detection recognized a known search engine.
- segment (int) - Segment ID.
- segmentGroupId (int) - Segment Group ID.
- notes (string) - Call Notes.
- leadScore (string) - The Infinity lead score associated with this customer.
Marketing Sources
- dom (string) - Referrer domain for SEO/PPC lands.
- ref (string) - The source reference that the trigger detected.
- network (string) - Network being used (either Google (GAW), Microsoft adCenter (MAC), or YSM (Yahoo Search Marketing)).
- matchRef (string) - PPC Keyword, or display placement info etc.
- matchType (string) - The match type (either broad (b), phrase (p), exact (e) or content display (d)).
- campaign (string) - Network campaign name.
- adGroup (string) - Network group name.
- adRef (string) - Advert or creative ID.
- keywordRef (string) - Keyword reference.
Goals and Transactions
- txr (string) - Transaction reference (Infinity’s unique call reference).
- txv (string) - Transaction value.
- txc (string) - Transaction currency (three-letter ISO-4217 currency code).
- goalValue (string) - The monetary of the goal.
- goalCurrency (string) - The currency of the value of the goal (three-letter ISO-4217 currency code).
- outcomeType (string) - Outcome Type (‘N’ormal, ‘C’onversion or ‘V’oid).
Calls
- dialledPhoneNumber (string) - Dialled phone number (Tracking Number).
- srcPhoneNumber (string) - Source phone number (Caller ID).
- destPhoneNumber (string) - Destination phone number (Number that the tracking number terminates to).
- callDuration (int) - Call duration of A-leg (seconds the A-leg was in answered state).
- bridgeDuration (int) - Call bridge duration (seconds the A-leg and B-leg were bridged together).
- ringTime (int) - Call ring time (seconds the A-leg was in ringing state).
- ivrDuration (int) - IVR duration (seconds between A-leg being answered and B-leg destination being set).
- queueDuration (int) - Queue duration (seconds between B-leg destination being set and bridge starting or B-leg failing).
- operatorRef (string) - Login of the agent that answered a phone call.
- ivrRef (string) - IVR route reference.
- dialplanRef (string) - Dialplan route reference.
- callRating (string) - Call rating label.
- callState (string) - The hangup state of the call.
- callDirection (string) - The direction of the call, can be either in or out.
- callStage (string) - The stage the call was at when it ended, can be one of (ring, ivr, queue, bridge or voicemail).
- operatorRealm (string) - The SIP domain of the call operator.
- telcoCode (string) - Telcoms provider used for call.
- numType (int) - Number type ID.
- recHostId (int) - Host ID for the call recording.
- rec (int) - A flag indicating whether or not a call recording exists for the call.
- transcriptionConfidence (int) - The level of confidence (0-100) of the call transcription.
- totalKeywordScore (int) - Sum of operator and contact total keyword scores.
- totalOperatorKeywordScore (int) - Sum of the keyword scores spotted for operator.
- totalContactKeywordScore (int) - Sum of the keyword scores spotted for contact.
- operatorPositiveKeywordCount (int) - Count of positive keywords spotted for operator.
- operatorNeutralKeywordCount (int) - Count of neutral keywords spotted for operator.
- operatorNegativeKeywordCount (int) - Count of negative keywords spotted for operator.
- contactPositiveKeywordCount (int) - Count of positive keywords spotted for contact.
- contactNeutralKeywordCount (int) - Count of neutral keywords spotted for contact.
- contactNegativeKeywordCount (int) - Count of negative keywords spotted for contact.
- callPciDataChecked (int) - A flag indicating if the call is checked for PCI data.
- callPciDataFound (int) - A flag indicating if PCI data found in the call.
- callSsnDataChecked (int) - A flag indicating if the call is checked for SSN data.
- callSsnDataFound (int) - A flag indicating if SSN data found in the call.
- callPiiDataChecked (int) - A flag indicating if the call is checked for number-based PII data.
- callPiiDataFound (int) - A flag indicating if number-based PII data found in the call.
- callKeywordSpotting (int) - A flag indicating if the keyword spotting is enabled for the call.
- callTranscription (int) - A flag indicating if the transcription is enabled for the call.
- whois (string) - WHOIS organization looked up from IP.
- ip (string) - The visitor IP address.
Visitors
- ua (string) - User agent string of visitor.
- country (string) - Country code looked up from IP (MaxMind Countries).
- city (string) - City name looked up from IP.
- continent - Continent code looked up from IP.
- res (string) - Screen resolution of visitor.
- lat (string) - Latitude looked up from IP.
- long (string) - Longitude looked up from IP.
- region (int) - Region code looked up from IP (MaxMind Regions).
- postcode (int) - Postcode looked up from IP (USA only).
- area (int) - Area code looked up from IP (USA only).
- spider (string) - If the IP is a known spider, then the spider organisation is displayed.
- host (string) - Reverse DNS lookup of IP or IP if no RDNS.
- visitorType (string) - The type of visitor either N (Normal), I (Internal) or S (Spider).
- sfWhoRef (string) - The Salesforce lead or contact ID this visitor is associated with.
- visitorPageCount (int) - Visitor’s page count.
- visitorGoalCount (int) - Visitor’s goal count.
- visitorCallCount (int) - Visitor’s call count.
- visitorFirstDatetime (int) - Visitor’s first visit datetime in UTC. Format: “YYYY-MM-DD HH:MM:SS”.
Custom Pass-Through Fields
Triggers can have certain landing tags persisted through a Visitor’s session and stored with every subsequent trigger.
For customers with pass-through tags enabled the following variables will be available.
- pt_{tagname} - The value of the pass-through tag
Custom Fields
You can record non-session persisted variables against a trigger, these are called Custom Variables.
For customers using custom variables the following variables will be available.
- c_{varName} - The value of the custom variable
Hangup States
A hangup state is what caused the call to be ended. It is in the format of {REASON}_{LEG}
E.g.
NORMAL_CLEARING_A - This means that the A-leg (caller) triggered the end of the call normally.
The following reasons are defined:
- NORMAL_CLEARING - This cause indicates that the call is being cleared because one of the users involved in the call has requested that the call be cleared. Under normal situations, the source of this cause is not the network
- USER_BUSY - This cause is used to indicate that the called party is unable to accept another call because the user busy condition has been encountered. This cause value may be generated by the called user or by the network
- NO_ANSWER - This cause is used when the called party has been alerted but does not respond with a connect indication within a prescribed period of time
- NO_USER_RESPONSE - This cause is used when a called party does not respond to a call establishment message with either an alerting or connect indication within the prescribed period of time allocated
- ORIGINATOR_CANCEL - This cause is used when a caller hangs up before the call can be connected to the destination endpoint
- UNALLOCATED_NUMBER - This cause indicates that the called party cannot be reached because, although the called party number is in a valid format, it is not currently allocated
- PROTOCOL_ERROR - This cause is used to report a protocol error event only when no other cause in the protocol error class applies
Itemised calls
Lists itemised calls for a specific IGRP.
Request:
GET /reports/v2/igrps/{IGRP SPECIFIER}/triggers/itemisedCalls
Params
- IGRP SPECIFIER (int) - Installation ID.
GET Params
- startDate (string) OPTIONAL - Start Date to filter calls date by, see Dates and Timezones.
- endDate (string) OPTIONAL - End Date to filter calls date by, see Dates and Timezones.
- tz (string) OPTIONAL - Timezone to convert the callDatetime to (only UTC timezone is supported), see Dates and Timezones.
- filter (array) OPTIONAL - One or more filters, see Filter Types.
- sort (array) OPTIONAL - One or more sorting params, see Sort Types.
- limit (integer) OPTIONAL - limit on the result set.
- offset (integer) OPTIONAL - offset of the result set.
Filter Types
- rowId (int) - The call/trigger row ID.
- triggerDatetime (string) - The datetime of the call (in UTC timezone).
- callDuration (int) - Call duration.
- srcPhoneNumber (string) - Source phone number.
- dialledPhoneNumber (string) - Dialled phone number.
- destPhoneNumber (string) - Destination phone number.
- callDirection (string) - Call direction.
- callCharge (decimal) - Call charge.
- chargeCurrencyCode (string) - The currency code of the call charge (three-letter ISO-4217 currency code).
- perMinuteCharge (decimal) - Call rate per minute.
- dgrp (int) - DGRP.
- ch (int) - Channel ID.
- segment (int) - Segment ID.
- segmentGroupId (int) - Segment group ID.
Sort Types
Same as Filter Types
Response:
- rowId (int) - The call/trigger row ID
- triggerDatetime (string) - The datetime of the call (default in UTC timezone).
- callDuration (int) - Call duration.
- srcPhoneNumber (string) - Source phone number.
- dialledPhoneNumber (string) - Dialled phone number.
- destPhoneNumber (string) - Destination phone number.
- callDirection (string) - Call direction.
- callCharge (decimal) - Call charge.
- chargeCurrencyCode (string) - The currency code of the call charge (three-letter ISO-4217 currency code).
- perMinuteCharge (decimal) - Call rate per minute.
- igrp (int) - IGRP.
- dgrp (int) - DGRP.
- dgrpName (string) - The name of the DGRP.
- dgrpRef (string) - The reference of the DGRP.
- ch (int) - Channel ID.
- chName (string) - Channel name.
- chType (string) - Channel type.
- segment (int) - Segment ID.
- segmentName (string) - Segment name.
- segmentRef (string) - Segment reference.
- segmentGroupId (int) - Segment group ID.
- segmentGroupName (string) - Segment group name.
- callRatingId (int) - Call rating ID.
- orgId (int) - Organisation ID.
Returns the HTTP response 200.
{"rowId":"4","callDuration":"8","srcPhoneNumber":"test.user2","dialledPhoneNumber":"012312345610","destPhoneNumber":"test.user2@localhost.net","callDirection":"in","callCharge":"0.020000","chargeCurrencyCode":"","perMinuteCharge":"0.020000","triggerDatetime":"2018-01-24 11:34:08","igrp":"1","dgrp":"10008","ch":"0","segment":"4","segmentGroupId":"0","chName":"Unknown","chType":"offline","dgrpName":"Test DGR P SO ","dgrpRef":"","callRatingId":"1","segmentName":"test2","segmentRef":"test2","orgId":"1","segmentGroupName":"Default"}
{"rowId":"7","callDuration":"12","srcPhoneNumber":"test.user2","dialledPhoneNumber":"012312345610","destPhoneNumber":"test.user2@localhost.net","callDirection":"in","callCharge":"0.000000","chargeCurrencyCode":"","perMinuteCharge":"0.000000","triggerDatetime":"2018-01-26 12:07:55","igrp":"1","dgrp":"10008","ch":"0","segment":"4","segmentGroupId":"0","chName":"Unknown","chType":"offline","dgrpName":"DGRP","dgrpRef":"","callRatingId":"1","segmentName":"test2","segmentRef":"test2","orgId":"1","segmentGroupName":"Default"}