Microsoft Teams Insider

How to be a TeamsBoss with Michael LaMontagne

Tom Arbuthnot

In this podcast episode, Tom Arbuthnot interviews Michael LaMontagne, a Microsoft Teams expert and the creator of TeamsBoss. TeamsBoss a cloud voice admin and voice operations solution for Microsoft Teams that helps organizations simplify and manage their Teams phone and meeting room operations. It eliminates the need for complex PowerShell commands and allows users to easily manage phone numbers, policies, profiles, and resource accounts for Teams.

Thanks to Numoix, the sponsor of this episode. Check out their Teams recording solution Microsoft Teams Recording | Cloud Compliance Recording | IXCloud (numonix.cloud)

  • Michael LaMontagne is an independent consultant and principal product manager for TeamsBoss.
  • TeamsBoss a cloud voice admin and voice operations solution for Microsoft Teams.
  • It offers features like phone number management, profile creation for users based on policies, bulk management of user configurations, and resource account management.
  • The service aims to simplify and automate tasks that are challenging with PowerShell or the Teams Admin Center.
  • TeamsBoss is Azure-based and can be procured from the Azure Marketplace.
  • It uses delegated permissions and does not store tokens or credentials,

In this episode of teams inside a microloan. You know, well-known face in the community. It takes us through a little bit of history about how he calls where he is today, Including being one of the first to bring voice to team's phone, how that came together. And what he's up to more recently, it has of both projects and his software, which includes team's boss, his voice admin experience and automation experience. So stay tuned for a little bit background about Michael. And a full demo of his team's boss solution. I like to give a special thanks to numonix the sponsor for this episode. They provide a great call recording solution for Microsoft teams. Check them out at numonix.cloud. On with the show.

Tom Arbuthnot:

Hi everybody. Welcome back to the podcast. Really excited about this one. Got a good friend on who I often turn to when I'm struggling, particularly on the PowerShell front. Michael, I'm sure a few people might recognize your name, but hello, how you doing?

Michael LaMontagne:

I'm doing well. Thanks, Tom.

Tom Arbuthnot:

Good. For those that don't know, can you just give a little bit of a background of the multifaceted world that is your world?

Michael LaMontagne:

Yeah, it boils down to like 2 hats. I wear. I have the kind of independent consultant side where I work with many Microsoft partners and customers as that subject matter expert for around Teams Phone Meeting Rooms and Devices. And then I have the kind of product principal product manager for team spots where I take what I've found and pain points and struggles from the customers on the one side and then I build SAS services or tooling to help and simplify customer journeys.

Tom Arbuthnot:

Just the easy two hats of consulting and product management and development at the same time, right? Cool. So I definitely want to get into TeamsBoss and what you're doing, but first just give us a bit of context because you used to work in the carrier space, you're now consulting. Give us a little bit of background about that and what kind of projects you're doing today.

Michael LaMontagne:

Yeah, I think it came from, the typical journey, the generalist, I found Link 2010 and I was like, the veil or whatever opened up and I was like, no one understands, proxies, the mobile client, how it connects and Edge services. So I was like, you know what? I'm just gonna focus on that. So I had the opportunity to move over to an organization that was just focused on Skype for Business and Link, and I was able to follow that journey of getting into telephony from the kind of Microsoft side get into, all those services. And eventually from there, I went to a Canadian carrier and that was right around the time that Microsoft released Skype for Business Online's Cloud Connector Edition, so CCE. And what we did was we basically pulled the minimum topology out of that and built an Azure automation process around that. So we scaled that out. I think we ended up having 200 plus customers. It was all in Azure, completely outside the Microsoft gates for that service. I'm sure

Tom Arbuthnot:

you must have had the most CCEs going of anybody anywhere because it was insane the scale you got to and what you did for that was really cool.

Michael LaMontagne:

Yeah, we got to the point where we were starting to look at white labeling options for global carriers. And then around that same time, the conversation we went to Ignite. And that's when I was in the Microsoft booth when they dropped the bomb saying, Hey, Skype for business online is going away. It's all Microsoft teams. And that pretty much killed any kind of global scaling white label opportunities for it. And then for a long time, it was, outside Microsoft's Purview, but they eventually endorsed our solution a little too late. But the benefit of that was I was able to take part in the Technology Adoption Program, the TAP for direct routing. So it was me with a small Canadian carrier, AudioCodes and Ribbon, and we happened to be the first to deliver telephony into Teams from a kind of a third party service and then just moving along in that journey.

Tom Arbuthnot:

That's a real cool one to have on your CV is like one of the first to do that. And you look at the scale of it now, it's pretty crazy. And even the CCE before that was the precursor to having proper Interop with the cloud services.

Michael LaMontagne:

Yeah, and so my day to day now is really helping organizations move further in their journey. So if that is TeamsPhone or Meeting Rooms, that's mostly my day to day and then. As I try and think of, struggles of sharing my knowledge or getting into the operational side for customers, because, I'm only there for so long before I jump to the next project it's like, how do I upskill? Or how do I share my knowledge after, when I'm not there anymore? So that's really what kind of started Teamsboss is like, Hey, all these different nuances and pre-checks and way to gate that management of these services. Could I build something that can do that? And so as I come into a scenario like, hey, you should never have the ability to apply a direct routing number to a user that's licensed for calling plans, like all these pre-checks should happen before trying to actually make these changes. And so it's just a matter of like, pulling all this into a product and try and try to help.

Tom Arbuthnot:

You're in a great spot working with customers to see the challenges and be like, Oh, okay. We need to help people do this. And we just stop people doing that. And a lot of it's saving operations from themselves, isn't it? Because Teamsgives you lots of latitude to get it wrong, particularly on direct routing and the PowerShell. If you're not at, the upper levels of operations, it can be quite challenging to be frank.

Michael LaMontagne:

Absolutely. And I think, the Teamsof in center has come a long way for sure. It has to cover a lot more than just phone. And so I see the struggle is really the TeamsAdmin Center is not a voice admin or a telephony workflow kind of center. It's fine doing one offs, but when you're doing bulk management or troubleshooting and really on the voice side you're forced to PowerShell and there's a lot of things in PowerShell that make it hard to easily, find where all the pieces are and see what's going on.

Tom Arbuthnot:

Yeah, so that's the idea of TeamsBoss. It's cloud service and it gives you like a voice operations, so phone operations, is that right? So you're really aiming on that kind of old, what would have been the telco admin could now run through TeamsBoss?

Michael LaMontagne:

Yeah, you have your telcom team that was maybe managing, Cisco Call Manager for forever. They're now thrown into the deep end. They've given a, Teams communication admin role and they're told to manage telephony and Teams and that's a hard struggle to upscale on the PowerShell and know what to do in Teams. So we try and build a way to just manage the MACDs or move that, change, delete stuff from a day to day operation. Of course, we built lots of other tools. I built a WebEx to Teams migrator for Spark Spaces or WebEx groups or whatever they call it. The cloud part of WebEx, so migrate that into Teams. We built some other services around Microsoft Teams Room resource account provisioning. So jumping through all the layers of AD, Exchange, Azure AD, licensing and Teams.

Tom Arbuthnot:

That's another area where people trip themselves up really regularly.

Michael LaMontagne:

As I mentioned before, anywhere we could find that there's that struggle, let's try and put some Azure services and some kind of process around that to help customers.

Tom Arbuthnot:

Awesome. Could you show us TeamsBoss? Take us through it?

Michael LaMontagne:

Absolutely. Yeah, if you go to teamsboss.com, it's a single page application. So basically you'll do the graph consent once you sign into it. It's all delegated permissions. So we try and use the least amount of graph permissions as possible. Make sure they're all delegates. So the idea here is we're not storing a token. We're not storing credentials. It works just like PowerShell, right? You fire up PowerShell. You connect to Microsoft Teams. This is the same thing. So you're in this portal.

Tom Arbuthnot:

Yeah, that's a big deal because giving away the credentials to a third party app is a real sticking point for a lot of organizations, and quite rightly they're nervous about that. Who are you? What do you do with the credentials? So that delegated model's nice.

Michael LaMontagne:

Even just from a logging point of view, if you're doing app permissions and like everyone is masked under that app, you can look at it. Hey, Michael, connected to this app, did these things. So it definitely is an easier security conversation. And we have an interesting model. So the whole TeamsBoss kind of service is powered by APIs as well. So from an automation point of view, What we do is we help customers build a simple function in their Azure that basically, maybe it ties to keyboard, pull credentials, gets the token, and then they submit that token to our API to do whatever activities, but they have full control of the credentials. They have the ability to stop at any time. They could fully see the auditing and stuff like that. So the idea

Tom Arbuthnot:

And they see the audit log because it's auditing logging on their side.

Michael LaMontagne:

And they're initiating all the communication, right? So it's their function that would say, we're triggering a ServiceNow ticket to create a user that is at this site. Let's put a phone number and policies on it. They're the one that initiates that. They pass and say, TeamsBoss, this is what you need to do. Here's a limited token to do that. And then turn it off.

Tom Arbuthnot:

We were talking before we jumped on the recording about documentation. You need a nice flow chart of that, of how it works and where it goes. That's really cool.

Michael LaMontagne:

Absolutely. Yeah. So when you get into TeamsBoss, what we do is we pull all numbers that are in your tenants already. So any calling plans, direct operator connect, inventory, and then any direct routing numbers that are signed to users or resource accounts. And then we have the ability under our phone number management to basically add your additional. And of course, I signed out, but basically add in our additional direct routing ranges. So if you have a whole bunch of blocks and numbers, I may be on other SBCs or moving to teams, you're able to tag it by carrier, maybe by SBC, tag it by site if you want it. You can type to determine if it's like on your reservation or not. We also will pull what the location is based on the number and we also detect the class. So Hey, if you have a number that ends in four eights, you may not want to give that number to an intern. That's a gold number

Tom Arbuthnot:

Gold numbers. Yeah, that's the, yeah, that's the term, isn't it? Save the triple zeros and stuff for the auto attendance and kind of

Michael LaMontagne:

Yeah. So we tire inventory, what accounts are signed. We have like instant search. So if I look at say 1,2 or 0,1,2. If we look at the UPN of the account, we can filter down the number inventory. This is just, your full number across all your different workloads, calling plans, operator connect, direct routing. We also pull voice apps. If we want to go say under an auto tenant, we do the visualizations as well. So if you want your, documentation of menu options and you want to talk to the business, you can work through this and show them visually what it looks like as you're making edits and centers same with a colleague or a call queues.

Tom Arbuthnot:

In terms of the web stuff you've done here, is this Azure based? How's this work?

Michael LaMontagne:

Yeah, so all our services are in Azure. We're actually part of the startup and the ISV programs with Microsoft. We're in the Azure Marketplace as well. So from a procurement time, path. You can just go to, Azure Marketplace and add TeamsBoss as a SAS service and you're up and running. So we do offer a 30 day trial. So you can go in and sign and transition if you want. We also have a concept of profiles. So profiles, depending on where you're in your journey, this is basically the matrix of phone numbers to policies. And so we can click, suggestions and that will say based on what you've set up to date. If you create a policy or a profile with these settings, that will equal, 100 of your users or 200 of your users. So if you're trying to think of how do we create these profiles in an existing tenant, we get you there.

Tom Arbuthnot:

So you're like, you already have people that can meet like this. That appears to be one of your use cases. Like this country all has their CLI blocks, for example, like that seems like a policy.

Michael LaMontagne:

You may have a policy for like this city has agents and they have a caller ID override or reception, but the city has normal users and then you have all these different policy matrixes. Of course, you can create your own or you can have us try and detect them. And so we can filter down by the carriers on the, SBC labels for direct routing, by emergency addresses, for calling plans in Operator Connect. So now when you go, Hey, I'm going to apply a Calgary policy to a user, it'll filter down the number inventory, say, Hey, this is the next number that's in that block, or these are all available numbers in that block. And then, what is the combination of policies that make up that profile? For vendor users, we can just edit, a single user and, do filters, searches on phone numbers. We do that kind of desired state. So based on what you're trying to do, what they have today, we're going to check to see if you're successful in doing that before we try. But here's all the red flags, right? We're not going to show you calling plan numbers if you're not licensed for calling plans. If you're not enabled for Enterprise Voice because you're an on prem synced account that has Skype for Business services, we'll protect all those different scenarios. And then we also have the ability to do this at bulk. I have a couple of users that we apply profiles to them. Someone went into the Teams Admin Center or PowerShell and changed them. So we'll call out like, hey, you know what? Based on the profile, they actually should have this policy. Click update. You can automatically sync back up. Or, through that API, you can have a periodic check hey, reapply the policies the profiles for these users.

Tom Arbuthnot:

So you could use that and say that if people are messing about with policies in regular Teams Admin Center you can consider this your master.

Michael LaMontagne:

and we flag it, right? Like on the dashboards that we have, we call out hey, some users need changes or they have some errors. So we can jump in.

Tom Arbuthnot:

You can filter down to promotion drift that you tend to get when someone on site asks for some change for their personal thing and it drifts away.

Michael LaMontagne:

Yeah, and then we can download everything. That will download all your available number inventory, all your user configuration, the policies that they have, their voice status, so it gets a little bit messy to look at it, but we include all the policies, but we also then say, based on the profiles you created, these are the suggested profiles that you should apply for your users to get them to that profile scenario. So like you can obviously one off change policies. But based on what they have, these are our recommended. So you can basically just copy this, paste it in here, reupload the file, and everyone's assigned the proper profile for what you're doing. An example of uploading, let's just choose a file. So this will go through the file. And the file has way more than what I'm looking at, but basically anything that doesn't need to do, it skips. And then it will go validate everything that it's trying to do. Hey, for this admin account, we're trying to change a couple things. This account is actually changing a profile from Miami to Calgary, while the phone number that they have is in Miami. That's not valid. And so this allows you to download all the errors hey, we don't have licenses, we don't have UPNs, we have Skype attributes, whatever it is. And then if you hit apply,

Tom Arbuthnot:

You can kind of stage what you want in Excel. Like I want the site to be like this, push it through and it will say these are the impacts you're going to have, or you can't do that because of X, Y, and Z.

Michael LaMontagne:

Yeah, we're getting ready for our port. Let's load up our sheet just to see what errors are before we wait till the port and try that. People change the UPN or the UPNs that gave us around the wrong domain or whatever like that.

Tom Arbuthnot:

You're trying to assign numbers outside the range.

Michael LaMontagne:

So yeah, and then when you hit apply, I'll skip any ones that don't have an error and I'll just chug along. I love doing this when checking on the replication on the Microsoft side is I'll upload my, port doc apply it. And then wait, a couple minutes, hit refresh, upload the same document again, and it'll show what are things that are outstanding. So now it's hey, these 5 users for whatever reason, the profile didn't apply or a policy didn't apply. So I love to use this as a kind of gauge, how far am I at in this bulk change.

Tom Arbuthnot:

That's so cool. And I guess a lot of these features have evolved from customer requirements, right? I can see you clearly hit issues or the customer said, I'm not comfortable managing policies like this. I want to manage them like that. I'm guessing that's a lot of the inspiration. Is that right?

Michael LaMontagne:

Yeah, I think the biggest thing is at the time when we started with this, there was a lot of PowerShell changing, so there was module versions that were being deprecated, restrictions, commandlet changes, so instead of set CS user, the CS phone number assignment And then just moving more to a graph type call like when you run some of the Teams PowerShell commands and you get some errors, like those are API type errors that are very hard to catch.

Tom Arbuthnot:

Actually, I was talking to Jamie Stark about PowerShell and Teams Admin Center and where it's all going and I was saying the PowerShell of old was very polished and the new PowerShell is very raw. The inference is you basically as an IT pro need to have some dev skills to understand graph, which most IT pros don't have.

Michael LaMontagne:

Yeah, it might not be a popular opinion, but I try and avoid the graph SDK PowerShell module and just use invoke web requests and art rested method and talk to the API directly.

Tom Arbuthnot:

You see it sometimes in Microsoft documentation, they're pretty unforgiving and they're just like if You know, just use the API like the way you're supposed to. That was never an IT pro requirement until relatively recently. So it's nice that you can mask some of that stuff with your tool.

Michael LaMontagne:

Yeah, and even some of the errors that you get back, right? You get this like red text that's. On your screen, and I've done a lot of migrations where you're following the PowerShell, one single line commands or whatever script and you see some red and you're like, okay, I need to know I need to go back after all this and recheck this account. And so you're try to follow it along like that.

Tom Arbuthnot:

PowerShell used to have to put out objects, that's, that rule seems to have slipped away these days.

Michael LaMontagne:

Let's just capture all the bad things at the end. Look at it now. So we try and avoid all that. And so that's our first offering. We also did the kind of project RAM, which is resource account management. So this is, whatever your rule logic is from a naming convention, because I think that's the hardest part. It's based on the site and these things that we tell it, what structure that display name and the UPN for these accounts. And this one works more like the application role. So this one, a project manager can go into the site as long as they're authorized, type in all the information for a new meeting room or a conference phone, and then they can see what the display name is, is it going to be a team's phone? Is it going to be an MTR? And then they can hit submit. And then it's going to, check to see that the account doesn't exist. It's going to do all the work. And then five minutes later, it says, okay, now you can go and pass those credentials over to the, the AV integrator or something like that.

Tom Arbuthnot:

Yeah, that's another one where I work with a lot of AV vendors and that's always a point where if the customer's got to create those quite often that's a stalling point because they don't understand M365 resource account versus an Exchange resource account versus a Teams resource account and, or they'll do the, they'll do the AD bit, but not the Exchange bits or vice versa. So again, it should be simpler than it is, but it's a, it's nice that you've brought that all down into a single UI.

Michael LaMontagne:

And it's even like the scenario of hey, we used to do on prem accounts for our meeting rooms. Let's move to cloud accounts. And so we had to build a a meeting migrator where it's like, what is the destination? What is the source? Let's look at all the source calendar invites. Look at all the organizers of those invites. Remove the old room, add the new room and get you migrated over to a new naming structure or, cloud only accounts and stuff like that. So we have, those tools built in as well to try and help them.

Tom Arbuthnot:

Nice.

Michael LaMontagne:

So a lot of fun stuff we're building

Tom Arbuthnot:

You have resource account tool separate to Teamsboss, so you can have both or either or is that how it works?

Michael LaMontagne:

Yeah, there are two different kind of areas where we're looking at, maybe how we combine them. We're also looking at how we can deal with bulk management of call flows. Like auto tents and call queues, tack has a great wizard for kind of creating one offs, but hey, we have 50 agents that have rollover groups and, if they don't answer another group answers and if they don't answer, it goes to voicemail. Do that 50 times, maybe three different skills. You're talking about hundreds of resource accounts and trying to plan that out and build it all out. So our idea is to give it a simple outcome and then we basically pass out what order everything is, what all the pieces you need and then actually do it. So always trying to find fun things where we think, we're not trying to be. A Teams Admin Center replacement. We're trying to find what is Teams Admin Center not do for the voice admin and what can we, really help customers with? The first goal was to get rid of PowerShell. We don't want to deal with, permission issues, at the time where it's like authenticating to graph or through authenticating, through PowerShell, having issues with Hey win our WIN RM and all that stuff. Get rid of all that. Now our goal is finding scenarios where they're not in Teams Admin Center that are not in PowerShell that we can build out.

Tom Arbuthnot:

That's cool and like you say if you're coming from Call Manager and the web GUI in call manager this is not dissimilar you know in an approach whereas going to Teams Admin Center and it's a whole new world not even just Teams Admin Center because the reality is to look at your resource account creation you have to be in the admin.microsoft.com portal the Exchange portal, and still there's a bunch of things for those resource accounts that has to be PowerShell.

Michael LaMontagne:

And there's two resource accounts, right? There's a resource accounts for call flows, auto tenants, to call queues, and then there's a resource accounts for devices, and they're very different.

Tom Arbuthnot:

Yeah. But both resource accounts.

Michael LaMontagne:

And both important to Teams.

Tom Arbuthnot:

That's awesome. So what's the next things you're looking at in, on the pipeline? Is there anything coming up next?

Michael LaMontagne:

Yeah, we're doing a whole bunch of automation stuff. So like I was mentioning, we can just define a simple call flow kind of template. And then based on that, we do all the back end pieces. That platform that we've built can cover any scenario. So we're thinking of redoing our resource account management based on that. So now all your rule logic is really easy to do from a naming convention versus having to customize it per customer. You just nicely define what that looks like. And then you just throw your info at it. It's going to give you a nice chase on what's required to build all that. And then we put that through our automation engine to build all the pieces across AD Exchange and Teams. So that's our next fun project. And so taking resource accounts from just visualizing it, but then being able to put a desired stage around it.

Tom Arbuthnot:

That's really cool. If people want to try this out, if they want to kick the tires how can they do that?

Michael LaMontagne:

Yeah, they can just go to the teamsboss.com. You can ping me always via email as well michael@teamsboss.com. I have a couple of videos, but yeah, you can hit sign up in a, in your production tenant and demo tenant pre low effort to get up and running. And then as I mentioned, just add your number inventory if it's direct routing and then you can create some profiles and you're off to the races.

Tom Arbuthnot:

That's so cool. I definitely recommend people check this out. I say, Michael is someone I'll always go to when I get in a jam with any API stuff or PowerShell stuff. So I'm sure this is really solid. Cool. Thanks for joining us Michael. Yeah, if anybody's got any questions or comments around this, drop them below and I'm sure Michael will be able to answer them. But otherwise look out for another podcast soon and Michael will definitely have you back when you've got some new toys to show because I know you're always working on different things.

Michael LaMontagne:

Yeah, thank you, Tom, for having me on.