Added Data Source Values field to Vonage Call Summary object. The field contains a comma-separated key:value list of data source values set by Set Data Source applets in the interaction plan.
Exclude spurious applets appearing downstream of a CallDivert or CCRConnect event. This fixes Insight Stats API Last Applet problem introduced on 11 May 2021.
Use greater precision for internal ordering of applets which run in the same second.
Added targets property to Interaction JSON model. The targets property contains virtualQueue and targetTimeToAnswer values which represent the target time to answer (TTA) in milliseconds for each virtual queue that an interaction entered.
Added support for video interactions.
When Last Queue Result is 'HangUp', the value in Last State in call summary records is now 'Queue Abandoned'. Previously Last State would have been 'Agent Handled'
Changed NVM to Vonage in applicable field labels in agent summary and call summary objects.
NumberBusy now counted as Line Busy rather than NoAnswer; we no longer see Line Busy over any APIs.
Added InteractionPlanMapping and InitiatingAgentId from Insights API to InteractionJSON model.
Refactor assignment of Ready for Outbound for code readability
Prepare for when CCR materialises a new channel - place the party number in external transfer field and treat the channel as an external consult because it starts after and never ends after channel 0
Ensure call recording duration is set from first External Channel even for CCR
Expose AMAX flag for tuning Agent Activities page size
Rename ContactWorld > Vonage Contact Centre & corrected typo in call timeline hover text
Fixes purging of call detail records when an interaction is revised
Sets default flags to tune API requests to Page Size 400, Window Size 3600s
Added mediumManager and interactionPlanName to InteractionJSON model
Added log warning when Ringing/Busy has no direction over API
Added Cache-Control: no-store header to API requests
Fix to include Busy Internal time in the Transfer In bucket and Total State Time as per field help text
Last disposition code is now available in the Call Result field on NVM Call Summary records
Protect against indeterminate direction 0s Ringing and Busy events & Insights Interaction/Agent race condition
Smarter checking of Busy running into an Away/Ext Away/Logged Out presence - no longer tripped up by Ready>Ready
Added Number of Call Recording Interrupts fields to NVM Call Summary records. Interruptions can be due to PCI or to the agent parking the call or pausing the recording
Added Call Recording indicator to Call Timeline—a recording appears as a dotted line; interruptions to the recording appear as breaks in the dotted line
Flags NOMONITOR & NOPAUSES can switch off Monitor channel and Call Recording cues on Call Timeline
Ready for Call Connect Router applets or other event types to help show up CCRs, Last State > CCR Handled; Abandoned > false
Handle VBC calls which miss Internal direction and External Channel
Fixes handling of NVM Agent Summaries where there are no Stats events.
Fixed config page URL.
Added field Last Queue Result to NVM Call Summary and corrected Last State Formula to reflect Queue Breakouts.
Fixes NVM Agent Summary update failure when migrating directly from older versions of the package; such older version may contain errors from legacy APIs. Use this version if "AgentActivitiesLoader|Init Error" is seen in Transaction logs.
Where no call recording activity is returned by the Insights Stats API, the call recording URL is not set.
When an agent state duration is returned by the Insights Stats API, the total duration is set in a field—if found—with a label that matches the agent state name. Such fields are custom number fields added by the customer to the NVM Agent Summary object; the fields must have ranges of at least 0-99999. For example, when the time an agent spent in a minor state 'Paperwork' is returned, this duration is set in a number field labelled 'Paperwork'.
Added the following fields to NVM Call Summary records:
Recording Duration. For inbound and outbound calls: The total duration in seconds of the call recording.
Call Rating. A comma-delimited list of call quality ratings given to a call.
Virtual Queues. A comma-delimited list of the Virtual Queues or Agreements that the interaction matched. For inbound interactions only.
Added Warnings field to Transaction records. Warnings indicates whether the transaction encountered a non-fatal error, such as misconfiguration.
Versions before 2.56 are deprecated
Fix Call Player timeline skips for multiple call recording pauses
Added Connected Checkbox - checked if two or more parties connected
Added Title tag to Call Timeline
Added Park and Interrupted times to Interaction Summary and Call Timeline
Service Name truncated to 50 characters in line with Insights
Exclude blank conversation GUIDs from QCB check
Added Data Quality DQ Flag and process to Config page
Exclude InteractionPostProcessing media type - not a true interaction or related to useful data, it distorted call counts
Corrected Call Timeline visualisation to remove overlaid InteractionPlan events
Workaround for HYPERLINK to Task bug in SF Summer release
Added InteractionPlan event to be shown in call plan events
Agent Summary now shows ongoing events; this improves all same-day reporting
Link to updated Template Report package
URL and API version hints added to config page
Support for Call Quality classification
Transaction records are housekept even when no channels run
Fix for setting the Call Summary owner to the Agent User which was being omitted.
Where Cases, etc. queue, hold, etc. for many days, they're related to the Agent Day Summary of the first Agent Channel event
Durations on Agent Day Summaries count only up to the end of day & we prevent Busy events running into non Ready Presences
We now always reprocess an Agent Summary which receives API events even if there are no new facts
Applet phases made clearer on Call Timeline visualisation
Corrected automation total on outbound calls
Fix path of Call Recording for Conversation Analyzer UI
More accurate Handle time for Internal calls when using Insights APIs; we were using an approximation for legacy APIs but have exact data now.
Conversation Analyzer page was not using the NVM Call Summary Recording URL, hence was blank when using regional URLs
FIXPHONE flag set automatically for migrations direct from legacy API
Added Language, Hold and new Transaction fields to Report Types
Reinstated link to new Reports and Dashboards extension Package which also contains a new Login Report
Adds Language used by Conversation Analyzer, e.g. en_us, en_gb, and uses category count value rather than boolean for category matches.
Added FIXPHONE flag for customers wanting Interaction Type to be "Inbound Call" where Inbound Medium is "Phone"
The Handle Time formula determines Case from Record Type Name; this corrects for parked non live, non-Case Interactions, such as Web Chat, Email, etc.
NAM, NAMAPI, APAC, APACAPI regional URLs added to Remote Sites to save manual configuration
Migration instructions are placed in the Transaction logs when using Kong Gateway
This is the first published version following Security Review & Certification by Salesforce
From this version on, the package runs exclusively on Insights APIs v3; support for old APIs removed
If Applet Data or non-call Interaction data is required, these options should be turned on prior to package install or upgrade to this or later versions
PCI calls are reportable; the AgentAssist channel is highlighted on Call visualisation
The Outbound call for a Queued Callback carries the Queue Name
Ready For Outbound presence reporting is available once more; this also improves login time reporting accuracy
Number of Holds and Hold time added to Agent Summary
For Conversation Analyzer, subcategory match counts are now available
Interaction model is ready to support Custom CTI data values
Added EMEA Regional URLs Remote Sites to save manual configuration
Patch version 3 - fix for handling high numbers of queued callback attempts per original call
Support for NVM Regional APIs where Remote Sites added manually
Logging cleaned up for customers with large numbers of Agents using Insights API mode
Added control flag for overriding Interactions page size - new perforance tuning option
Better visualisation of timelines for WebRTC Agent Summaries
Wrap total and phase count corrected for Wrap concurrent with Busy in parallel interactions using new Insights APIs
First version suppoting both Conversation Analyzer and new Insights APIs on the same channels
Corrected Abandoned formula to cope with Queued Callbacks
Transparent Hold on Call Timeline visualisation so you can see Warm Transfer to Queue overlay on call timeline
Updates to align Applets over new APIs - appletType property now available. Applets shown on timelines & Call Plan Path for new APIs when enabled over API.
First pilot release of Advanced Reporting powered by the new generation NVM Stats APIs.
The same summaries, metrics and visualisations as before with a few additional fields and many other improvements:
Use new NVM/Kong Gateway Credentials which are different from the CW Custom Settings
Uses offset 0, 50% less bandwidth used per transaction; 2 vs 3 API calls in a stats sequence and no need for trailing sweeps
Scheduled Mode is removed; always use Queueable mode
Demo Mode removed - use simulator data instead
Customer's labels for custom states are now passed to us - No more State Relabelling
State List contains totals for all different States and because we know the major & minor category, totals for Away, Logged Out, etc. reflect them; accented characters and punctuation is supported
No more Applet Filtering; when Applets are made available over the new API to a customer, we need not filter them & the call plan path will hence show the complete path to all such customers
Interaction Types can be anything the customer chooses to use - not just Case but email, webchat, etc.
Record Types and page layout versions remain the same - reflecting inbound call/non-call, internal call, outbound call
The new APIs support pagination of the data and this is reflected in the Transaction records with additional fields
The raw API JSON is available in a new field, allowing customers to exploit anything we have yet to add as a Summary field
We now know who hung up the call so you'll see Agent or Caller rather than always Caller as with the old APIs
Agent Summaries now show a Ready state on the visualisation and activity table - this unifies the NASM and old Ready=Idle views of the world so we support multiple concurrent interactions and total Busy time correctly
No need for multiple Channels - use one per CW account and use Offset = 0
Channels are smart and catch right up to now (or whatever offset is set); the window sizes are self-tuning from 60s-1 day
External Consult, External Transfer & Supervisor Monitor fields and visualisation swimlanes are added
Call Timeline's call recording player can now see Agent's call recording pauses and call recording starts mid-IVR - very accurate
Post Call IVR/Automation/Surveys are visualised and called out in metrics even if you don't follow the POSTCALL naming convention
Holds are shown next to interactions on the Agent Day Summary and Hold totals are summed in the State List
Conversation GUID + Queued Callback flag added, so you can report on all/discrete phases of Queued Callbacks
Abandoned formula improved & reflects new Interaction types
External phone number for External Transfers added
Report Types updated with new fields
Timezone added to improved Channel Start confirmation
Timezone caching and expired record purging tuned up
New Call Recording Download URL applied
Handle new Voicemail Applet type
Updates for Conversation Analyzer only: the AnalyticsLoader now caches categorisation JSON in a system field on Call Summary so that the Conversation Analyzer extension package doesn't depend on manually configured Category/Subcategory fields. AnalyticsLoader stops faster in the edge case where there are few transcribed calls in the Org. There is additional logging of the purging of old Summaries past their retention date. This package version is the earliest version you can install the Conversation Analyzer extension Managed package on.
Handle numeric fields while Conversation Analyzer still sends a subcategory list
If < 3 Watchdog jobs ran in the last 61 minutes on upgrade, reschedule any missing ones
CallSummaryBeforeInsert Trigger will populate a field called DKey (API name DKey__c, type Text, size 255, not required, case-insensitive unique) with the call GUID on insert for duplicate prevention
Conversation Analyzer calls are now processed in descending order of modification in Salesforce and the loading is pinned to the channel they were fetched on. We stop searching for new CA data when we have got back to calls we collected data before (denoted by Categories field non blank) or if we have reached the first call or 100 iteration limit
Patch version linked here caters for Numeric fields defined for Categories/Subcategories while the API still sends the old format without matches counted + forces re-creation of all four Scheduled Watchdog jobs if none have run in the last 61 minutes.
Speech Analytics changes only:
Relabel QM > Analytics on StatsConfig Page
Added fields Silence_Percent, Crosstalk_Percent, Agent_Percent, Customer_Percent to NVM Call Summary and to the 3 Analytics Layouts
Matches Counts now handled from Analytics API when they are sent; supports either checkbox or number fields for the categories/subcategories and can handle 2 or more levels of categorisation
Added Conversation Analyzer Visualforce Page and 3 new page layouts which display it; if your customer uses Conversation Analyzer, simply edit the Page Layout Assignments in Salesforce for the NVM Call Summary custom object. Inbound Calls should use the NVM Analytics Summary layout; Outbound should use the NVM Analytics Outbound Summary layout; Internal Calls should use the NVM Analytics Internal Summary layout. There is no special layout for Cases.
Fetches speech data for calls at the end of each stats fetching process if SPEECH flag set & then only for channels where new QM Checkbox ticked; Transcription only fetched it TX box ticked.
In Demo Mode, demo transcription data is produced if the feature is turned on.
Analytics Category & SubCategory matches are flagged in custom fields where the field API Name matches using the scheme [category]_[subcategory]__c
Added more checks for transferee info; if API ever sends external transfer numbers we will catch them.
Added Agent State Re-label - use scheme LABEL(320:Research Case,Lunch:Bite to eat) in Flags. This relabels the States in the agent timeline, timetable, event strings and causes the new label to be totalled in the new State List field on Agent Summary in the form [label]-[Duration(s)],...
Scheduling improvements for customers using small stats intervals (sub 5 mins) Package now sets the owner of a Call or Agent Summary if the corresponding Salesforce User is active (switchable by Flags) so Agents can report on "My Calls"/"My Daily Summaries". For Inbound Interactions, dateAgentId respects last Agent on Summary creation in case this is not updated by Agent Feed Updated Custom Report Types with the fields added since 2.12
Query optimisations for Call Plan Stats Page
Transactions are stopped if the data fetch fails where the OAuth call would have failed before the changes in 2.15 No Answers to Consult - watching for "Busy Internal" > "No Answer" & reset each time processed Agent 2 setting smarter when cold transfers take place Cold Transfers no longer cause an extra 0s element in Agent List Added Remote Sites for Cloud16, Cloud98 & new api.newvoicemedia.com Embedded Call Plan Viewer loads faster when Interaction is incomplete
No longer repeats last successful job after a long sleep Added Help text for Number of Transfers Mark new Omnichannel non-call types as cases types in Salesforce e.g. Api: & trim oversize CLIDs Processing of Inbound Call Events more efficient - only process CLID & Record Type when first seen Stronger validation for Channel Names in StatsConfig page - one cannot be a case-insensitive part of another Config Page now sorts channels by cloud, offset & Name to show groupings logically Zero duration Agent Events sorted before other events at the same start time in tables & visualisations Re-uses token in consecutive iterations - more efficient & faster Added Number_of_Times_Consulted & No_Answers_to_Consult to agent summary Improved Help text for Inbound_transfer_time - it includes Consult time Transaction timezone logged & can be changed Improved scalability by better memory use Added isSafe check for API data to tolerate unforseen API errors Added fields: Number_of_Warm_Transfers, Number_of_Transfers_to_Applet, Number_of_PCI_Transfers, Number_of_Applets, Skills_List, PCI_Time
Sort of agent states is more efficient for large agent populations
Fix for where API gives us an Outbound Call & a Busy Internal for one agent but nothing for 2nd on the same internal call;
We now correctly default the 2nd agent to 'AGENT2' rather than letting them appear as agent 1 & 2
As per Team Force, limit number of tasks backfilled and do not backfill calls with no known agent
Change test to only cover backfill code in this package in case CW4SF trigger on CallEndEvent is changed independently
Transfer State: Transferred to applet now adds to a Call Summary's transfer count.
Rolls up tweaks for DF Lightning & QM demos & Demo Mode added
Tidied up Compact Layout and Search Layout for Call Summary
NVM_AgentID__c on Call Summary allows 11 characters - as per CW limit
CallPlan viewer - loads faster with large data volumes
Changed criteria for Internal call: - ensures we don't wrongly categorise a call as internal when it's an outbound consult and the API drops GUIDs; On 2nd sweep where call is an OB with Transfers, don't re-impose the total duration as agent 1's talk time
Team Force Task Flag: Added Task-Backfill option with associated "FILLTASKS" flag to generate Tasks by populating Call End Events where ContactWorld has dropped the Task creation
Corrected attribution of agent Id where the first agent failed to answer an inbound interaction
Filter out & log any Inbound Interaction Events which are missing the mandatory GUID - handles newly seen API data anomaly in the legacy stats API
Corrected logic for de-duping multiple Stats Sweeps where Agent State Events have been re-labeled by Customer workflow or Trigger (relabelled states were letting re-scanned custom states through)
Raise error where "statistics" scope denied by account toggle - the new API uses the "stats" toggle
Set distinct names for additional Watchdog jobs
Postinstall uses new way to check prior version when applying fixes toDatetime() in StatsAPIUtils accomodates milliseconds in API data if they appear and genterates precision datetimes New Installs & upgrades where 1 Watchdog job running per hour now add 3 more Package sleeps between watchdog jobs rather than re-queueing Transaction checker resumes queued channels where last run was over 1 x window length ago rather than over 2x
Removed un-needed and heavy query on Transactions table
Added CallPlanStatistics Page + Controller + Test Class; You can add this to Call Summary Page Layouts or as a new Tab to see how call by call or Service by Service what the flow/heat map looks like
CallTimeline controller - corrected zero-based init for last agent who worked and initialised post call total
PostInstall ready for detecting upgrade to version whether 2.0 as 2.00
Don't count ACDDelivery transfers to applet (queue) in the delivery attempts
Populate Ring List (& hence Delivery Attempts, Last Ring) for OB & Internal calls
Added Delivery Attempts, Last Ring, Ring List to Adv. Call Statistics Report Type
Added Agent Summary Line Busy totals and count because the Ring details highlighted we could see more here where agents put themselves busy to block incoming calls; this removes spurious Delivery markers on Call Timelines where an agent whose line was busy did not contribute.
Mini Console View for Agent Summary (e.g. shown on hover on Call Summary Page now more detailed)
Outbound Transfers were not being counted in the transfer total on Call Summary - fixed & caters for multiple OB Xfers
Added NVMStatsSF__Ring_List__c populated by Delivery events & two formula fields Last_Ring_Duration__c & Delivery_Attempts__c; Added these to Invound Call Layout only, though they also apply to Cases
Label change of Ring Duration > Total Ring Duration for clarity
Call Player now moves playback slider to adjust for IVRTransfer (PCI Payment) call recording pauses
Reversed change to related to field on call summary in v1.96 Corrected log message to read "Linked [call summaries] Call Summaries to [agent summary id]
Corrected add-Agent-Event check which could have missed pre-existing events as first entry; this would only happen if Agent State stats were deleted & re-scanned without deleting the linked Calls
Call Timeline Page reworked; UI cleaned up and uses Agent State times to position holds, consults and transfers on Outbound as well as Inbound and Internal interactions
One change to related to field on call summary to decrease relationships where a customer has too many in place: IF(NOT(ISBLANK(NVMStatsSF__Related_Opportunity__c)),NVMStatsSF__Related_Opportunity__r.Account.Name, changed to: IF(NOT(ISBLANK(NVMStatsSF__Related_Opportunity__c)),NVMStatsSF__Related_Opportunity__c,
Fixes December 31st 2015 data issue
GC uses half limit available for CDR deletion More Logging for StatsAPIUtils.retrievestats Fixed error where flag value is empty
Added Flags to StatsSettings - for global feature control Added ability to report Outbound Transfers identified from Agent Stats & show these on Timeline Added flag to allow related CDR list GC now observes CDR flag to decide whether to delete CDR rows Updated Install Reports Link to Templates Package v1.5
Exposed number shows in the field called ContactWorld Number on the task - now use this in NVM Telephone Number if not provided to us by the Stats API Iterative/Queued mode now reduces window overlap to 1s from 30s - allows smaller more efficient windows. Related To field now also shows the Account if an Opportunity was matched and defaults to "-" for no match for better reportability Created Internal Call Interaction type, Record Type and Page Layout for internal Call Summaries Use presence of Agent 'Busy Internal' state related by GUID to an Outbound call to detect Internal calls which are now recorded as such in terms of Interaction Type and Record Type Abandoned Flag now set for Internal as Well as Inbound Calls Last State now = Internal Call for all Internal Calls Handling time now counts as Ring + 2 x Talk + 2 x Wrap time for Internal calls Internal Calls shown on Call Timeline IterativeLoader looks back at last 25 transactions vs 20 previously PostInstall throws Error if prerequisite CW4SF Settings not entered beforehand. Added Opportunity to Agent Summary with call summary report type
Added Related Opportunity to Call Summary & Advanced Call Statistics Report type
Added Task Link field + hyperlink formula to Call Summary page layouts & Advanced Call Statistics Report type
When a channel is started whose offset is greater than the requested offset, the channel's offset is used to ensure that transactions are created from which queue recovery is possible
Scheduled Watchdog on install re-enabled
Only adds to a call's wrap total if we've not yet recorded the event in the call's Agent ChkStr - Ensures that in rare event an agent sweep is re-run after manually deleting Agent State data we don't add twice.
Smarter and more efficient check for related case allowed even if Task is missing
Added Number of Wrap Phases to Agent Summary - this counts e.g. consecutive Auto followed by Manual Wrap as 1 Wrap phase
Added Report Type Advanced Agent Statistics in Salesforce's 'Other' reports folder
Disabled scheduling on install for No Schedule Customers - use THIS version if a customer cannot use scheduled events
Local Day of Week formula field added to call summary; layouts updated - grouping local/UTC time fields
Updated Report Type Advanced Call Statistics with new field
Initial install now uses 15 minute windows vs 5 for both channels and only sets channel 1 back 120 vs 720 minutes so data shows quicker on install
Inbound Transfers count is not incremented if the transfer state is only 'Busy Internal' vs 'Transfer In' where a transfer was followed through
Installation now creates 2 Sweeps - a default one at with an offset of 75 minutes, executing at 5 minute windows and a second offset by 11 hours, also executing in 5 minute windows. This will pull in long duration events like logged out overnight.
Tolerates large organisations where queries timeout
Longest State Time added to Agent Summary
Corrects month format for sorting
Fixes timeline/timetable rendering if new events arrive out of order
Updated link on the configuration page to reporting package v1.4
Related To formula on Call Summary uses Contact's name if Contact's Account is empty
'Watchdog' scheduled job added to restart stalled queued jobs
Changed default Window to 15 minutes in Channel Start
Related to Lead and Contact and Account fields populated automatically
Agent Timeline Table (VisualForce page)
Queuable Apex Mode
Added CallDisposition field to Call Summary which replicates the value of the same field on Task
Better display of tiny durations amidst very long Cases/calls
Removed ring time and duration correction from IVRTransfer handler
Catered for local time in stats API response (only found if API server not configured as per spec)
'Busy payment IVR' added to busy agent states
'Line busy' added to busy for agent states; counts towards agent busy time but an addition call is not created
Assign Call Transferred time to call wrap total
Included Ring Time in Handle Time total for Outbound Call Summaries
Added No Answer Time field to Agent Summary, included it in Time_Logged_In
Call Timeline page now shows wrap per agent where calls transferred
Added Fault Time to Agent Summary
Added Network Congestion and Fault on Line state times to Fault Time total and incoporated in State total
Corrected rounding of Total State Time, Away Time, Extended Away Time, Outbound Call Time, Inbound Transfer Time
Inbound Call Time, Ready For Outbound Time, Ready Time
Added Wrap Time (hh:mm)
Added CallDisposition field to Call Summary which replicates the value of the same field on Task
Better display of tiny durations amidst very long Cases/calls
Changed Transaction cleanup from keeping 2 days' worth to purging when over 2000 transaction logs
Inbound transfer time added to total state time
In-line help text added for call summary fields
Formula update for number of inbound calls
Consult time renamed to Hold time
More accurate call durations when 'end time' is missing
Enhanced detail on multiple transfers
Reports and Dashboards Extension Package
New Unmanaged Package containing template reports for use with version 2.46 and above of the main package