Monday 13 April 2020

Microsoft Teams basic Call Centre dashboard

      As of today, the Microsoft Calling API is not yet available meaning a call centre dashboard is not possible, making it a roadblock for any small and medium businesses. In the wake of the Corona virus a business found itself in a delicate situation where working from home was a necessity but it's call centre was stuck on an old on-prem queue system. Business however placed workers health above dashboards and went ahead with Microsoft Teams, at least temporarily to allow working from home.

It's super easy to setup a call centre with Microsoft phone number or an SBC provider 



How to do it? 

Using PowerShell Universal dashboard (https://universaldashboard.io/) we can use the existing Skype Online commandlets and build a dashboard.

First you will need to create a script to pull the data for each queue.


[Create a secure string to host your password - this is the easy way to get around storing the credentials. How to: https://www.pdq.com/blog/secure-password-with-powershell-encrypting-credentials-part-1/]

$pass = cat C:\temp\Password.txt | ConvertTo-SecureString -Force
$mycred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "teams.dashboard@XXXXX.XXXX",$pass

[Now let's connect to "Cloud"]
$sfbsession = New-CsOnlineSession -Credential $mycred
Import-PSSession $sfbsession -AllowClobber -verbose:$false | Out-Null
            $custservice = Get-CsCallQueue -Identity xxxIDENTITY ID OF QUEUExxx | Select-Object -ExpandProperty Statistics | Select-Object -ExpandProperty StatValue
            $commercial= Get-CsCallQueue -Identity xxxIDENTITY ID OF QUEUExxx | Select-Object -ExpandProperty Statistics | Select-Object -ExpandProperty StatValue
            $sales = Get-CsCallQueue -Identity xxxIDENTITY ID OF QUEUExxx | Select-Object -ExpandProperty Statistics | Select-Object -ExpandProperty StatValue
            


[Store all the above information in a temporary TXT file]
            $data = {
            "Customer service queue size:"
            Write-Output -InputObject $custservice
            "Commercial queue size:"
            Write-Output -InputObject $commercial
            "Sales queue size:"
            Write-Output -InputObject $sales
            } 

            & $data | Out-File c:\temp\data.txt


[This part is optional. This is to display in the dashboard which agent is Opt In or Opt out of taking calls]
            
            (get-CsCallQueue -Identity xxxIDENTITY ID OF QUEUExxx).agents | select @{name="Agent";Expression={Get-CsOnlineUser -Identity $_.objectid | select -expandproperty displayname}}, optin | Export-Csv c:\temp\csagents.csv
            
            (get-CsCallQueue -Identity xxxIDENTITY ID OF QUEUExxx).agents | select @{name="Agent";Expression={Get-CsOnlineUser -Identity $_.objectid | select -expandproperty displayname}}, optin | Export-Csv c:\temp\coagents.csv
            
            (get-CsCallQueue -Identity xxxIDENTITY ID OF QUEUExxx).agents | select @{name="Agent";Expression={Get-CsOnlineUser -Identity $_.objectid | select -expandproperty displayname}}, optin | Export-Csv c:\temp\saagents.csv



[This is also optional. I set this up to make sure the queue is refreshing for moments when there are 0 calls in queue for a long time. To ensure dash is not hung]


            $debugnumber = Get-Random  -Minimum 1 -Maximum 20 
            $debugfile = {
            "Random debug number:"
            Write-Output -InputObject $debugnumber
            }
            & $debugfile | Out-File c:\temp\debug.txt

[This is needed because this being a repetitive task it will error out for too many sessions per user]
            Remove-PSSession $sfbsession


Set up the above to run as a start-up triggered Scheduled Task in Windows with a repetition interval of 2 minutes. Don't set it to lower as the above pull takes apx.1.5 minutes to complete.


To create the dashboard is super easy and to make it even easier here is the code to make it happen for you (there are three queues in this. You can add or remove as you please). Make sure you install the Universal Dashboard component first:


$theme = Get-UDTheme -Name 'Azure'


New-UDDashboard -Title "Teams Call Centre Statistics" -Theme $theme -Content{
New-UDRow -Columns{


New-UDColumn -Size 4 {

New-UdMonitor -Title "Customer Service Waiting Calls" -Type Line -DataPointHistory 30 -RefreshInterval 90 -ChartBackgroundColor '#2E8B57' -ChartBorderColor '#FFFF6B63'  -Endpoint {
            try {
                $text = Get-Content -Path C:\temp\data.txt
                [int]$text[1] | Out-UDMonitorData
            }
            catch {
                0 | Out-UDMonitorData
            }
        }
}

New-UDColumn -Size 4 {

New-UdMonitor -Title "Commercial Waiting Calls" -Type Line -DataPointHistory 30 -RefreshInterval 90 -ChartBackgroundColor '#ffffff' -ChartBorderColor '#FFFF6B63'  -Endpoint {
            try {
                $text = Get-Content -Path C:\temp\data.txt
                [int]$text[3] | Out-UDMonitorData
            }
            catch {
                0 | Out-UDMonitorData
            }
        }

}

New-UDColumn -Size 4 {

New-UdMonitor -Title "Sales Waiting Calls" -Type Line -DataPointHistory 30 -RefreshInterval 90 -ChartBackgroundColor '#FF8C00' -ChartBorderColor '#FFFF6B63'  -Endpoint {
            try {
                $text = Get-Content -Path C:\temp\data.txt
                [int]$text[5] | Out-UDMonitorData
            }
            catch {
                0 | Out-UDMonitorData
            }
        }
}
}



New-UDRow {
            
            New-UDColumn -size 4 {
                New-UDGrid -Title "Customer Service" -RefreshInterval 90 -Endpoint {
                   Import-Csv -Path C:\temp\csagents.csv | Out-UDGridData
                }
            }

            New-UDColumn -size 4 {
                New-UDGrid -Title "Commercial Service" -RefreshInterval 90 -Endpoint {
                   Import-Csv -Path C:\temp\coagents.csv | Out-UDGridData
                }
            }

            New-UDColumn -size 4 {
                New-UDGrid -Title "Sales Service" -RefreshInterval 90 -Endpoint {
                   Import-Csv -Path C:\temp\saagents.csv | Out-UDGridData
                }
            }

}


New-UDRow -Columns{


New-UDColumn -Size 4 {

New-UdMonitor -Title "Debug Graph" -Type Line -DataPointHistory 30 -RefreshInterval 90 -ChartBackgroundColor '#2E8B57' -ChartBorderColor '#FFFF6B63'  -Endpoint {
            try {
                $text = Get-Content -Path C:\temp\debug.txt
                [int]$text[1] | Out-UDMonitorData
            }
            catch {
                0 | Out-UDMonitorData
            }
        }


}

}
}


 To start the dashboard you need to create a third script:

Import-Module UniversalDashboard
Start-UDDashboard -Port 1000 -FilePath "C:\temp\dash.ps1" -AutoReload




I have setup the above also as a start-up task in Windows. All the above should result in this:




This should keep any small business happy. Enjoy!

Sunday 22 March 2020

Business continuity is key


[Read time: 2min]

     Not a single business can say it's not in some shape or form affected by the recent pandemic. An estimated 160K jobs will be lost in Ireland only, with inevitable recession at the end of 2020 and into 2021. This is just the beginning they say, it could take months or up to a year to recover and worse there could be a second or third wave.

Most businesses have no disaster recovery plan to mitigate a situation where offices need to be close, not just for a pandemic, could be fire, flood damage, earthquake's, any act of God etc. Reason why a business must have continuity plan. How? 

The main reason a business closes is the fact employees can't get to work. Any office no matter how big or small can work from home these days. If you are part of the 99% unprepared here is the simple solution to get your business back working in one day


Get remote access to your business applications and forward your on-premise telephony to Microsoft Teams (a modern cloud based telephony solution with no up-front cost). We can set this up for you in just one day!

Not only does your business get back on track but it has upgraded its infrastructure with almost zero capital investment with the added modern day security. Citrix is used by almost all major market players and proven to be the best in class:


Citrix products are claimed to be in use by over 400,000 clients worldwide, including 99% of the Fortune 100, and 98% of the Fortune 500. (Wikipedia)


Sounds too good? Your business can trial a cloud desktop today for free. Computer skills don't matter as Citrix is built in such a way to fit every type of office worker.

www.itvolks.ie

Friday 14 February 2020

Reduce telephony costs by 80% with Microsoft Teams

Recently we took on an adventure with an enthusiastic customer to improve their telephony from and old expensive legacy hardware to a new modern and future-proof solution. First things first I want to quickly describe the current scenario.

60 employees using an old NEC SIP unit solution hooked onto PSTN. I haven't even bothered to investigate it further. (installed around 2007)



Out of the 60 employees 15 are call-centre answering on average 600 sales calls.
Users use old deskphones and a call centre agent software which requires .NET framework 2.0 and Windows 7 (another reason customer wanted to move away with support for Windows 7 now gone)

The solution: 

Microsoft Teams using an SBC from a BT re-seller. We found that calling rates are on average 60-70% cheaper than the existing PSTN. So it was a no brainer to start testing it. We got everyone Plantronics Skype/Teams qualified headsets and as simple as deploying the Teams client.

For the call centre solution we have picked "MIDA". An extreamly cheap solution with features you would only expect from a 50K+ solution. Contact a MIDA partner and you will be amazed how cheap the solution is. (https://www.midasolutions.com/wp-content/uploads/MidaSolutions_LiteCallCenter_Datasheet_EN.pdf)

Initial testing is positive and call quality is better in fact then PSTN. We haven't got to the stage of setting up DSCP marking and traffic prioritisation on voice but even so the quality is amazing.

Solution took two days to deploy! If you ping me in private I will tell you who to contact and pricing.


Will keep you all posted next week how the testing goes and will publish the QoE stats.



Have a great one!
Daniel


Wednesday 25 September 2019

How cloud reduces the IT team size and expenditure



(read time: 2 min)

It feels strange talking about ways to reduce IT staff while myself being an IT guy. Over the next few lines I will try outline how Cloud indeed reduces the IT team requirements in a modern business and if you are an IT guy, why it's important to shape up on Cloud not to be made redundant. 

By adoption of Citrix Cloud and its managed desktops model there is literally no requirement for deskside support. Desktops now live in the cloud where they are accessible by service desk from anywhere in the world (great way to outsource L1 support by the way). Not only that but sessions can be shadowed and explaining a problem becomes so much easier when you can just show it. 

On the other hand desktops (referred to as workloads) running in the Cloud means that endpoint doesn't need to be desktops or laptops anymore. Thinclients are the future, like Raspberry Pi by nComputing (short video with SPOILER ALERT on the futuristic approach to login: https://youtu.be/oJTBJhV7OOM). These are inexpensive units (apx. 120€) with a very long lifetime expectancy having no moving parts. If one breaks even a user can replace it as they are plug and play. No more waiting on equipment or IT to show up.

Now moving to the server room. Well... there are no servers now as they are managed and run by Microsoft and Citrix in the cloud. This as you can guess means less dependency on those expensive server engineers. With the added benefit that all being in the cloud you can contract the best and cheapest support from anywhere in the world to manage these systems. 

If implemented properly the Cloud migration will reduce the cost of IT staff by 50% guaranteed!


About the author:

Daniel Istvan is a consultant and engineer at ITVolks specialised in developing cost effective and remote access solutions. Having spend 12 years in the telecommunications market helping customers in poor remote regions access business applications. He can tell all about how Citrix is the best market solution to grow outside the core office and how important it is to mobilise-empower the modern workforce.



Saturday 7 September 2019

Minimal investment cloud migration



                             


Minimal investment cloud migration

(read time: 2 minutes) 


This is part of a series of post how with almost zero CapEx investment your business can migrate to Cloud and refresh its infrastructure while doing so simply using Microsoft Azure and Citrix Cloud.


Let's assume the average business with 50 employees, half are office based and rest on-road. To support this business from an IT perspective a company would need some in-house servers and network infrastructure, plus the unreliable VPN requirement for external users. All the equipment and support is currently the companies responsibility. If this companies main area is not IT, the infrastructure will slowly age causing regular interruptions to the dissatisfaction of employee, lost productivity and expensive break-fixing to the dissatisfaction of you.


To upgrade such will take considerable time, investment in new hardware, migrations, licences, networks and those expensive consultants.


How can we easily fix this?


- Answer: Citrix and Microsoft Cloud!


- Ok, explain!


First of we set up a Microsoft Cloud Azure subscription (pay-as-you-go of course in the beginning) and create a non-disruptive mirror of the on-site infrastructure. Over one weekend SQL, passwords, business apps will be migrated (Yes, one weekend is enough for a business this size - if the consultants know what they are doing).


The users still have their data and access - just now they will all have a cloud based desktop to use. At their own time they will copy what they need from the local PC to this cloud based system. Leading to all data now being in the companies hands, not some laptop in a coffee shop. Off note: Being the reason why most companies choose Citrix is to become GDPR compliant.


What is Citrix and a remote desktop (2 min video): https://www.citrix.com/glossary/what-is-virtualization.html


Users can access this desktop from anywhere securely, be it train or airplane and use their own devices further saving the company money by bring your own device model. Not to forget your employees can work from home - a great seller when hiring!


Sounds to good?


When this is done that ugly server room will be thrown out and all is needed is an average Internet connection in the office, further reducing cost. This infrastructure will always be up to date (patched by Microsoft and Citrix themselves) and online (guaranteed 99.9%) being managed by same.


Average cost per user is apx. 37 euro/month. Considering that the average business spends apx. 40K just to run IT with no investment or future-proofing

Look out for the next post on long term cost savings and how this halves your IT team.
About the author:


Daniel Istvan is a consultant and engineer at ITVolks specialised in developing cost effective and remote access solutions. Having spend 12 years in the telecommunications market helping customers in poor remote regions access business applications. He can tell all about how Citrix is the best market solution to grow outside the core office and how important it is to mobilise-empower the modern workforce.