Update! Presence now respects a user's coexistence mode
Published Oct 30 2018 11:50 AM 108K Views

Based on customer feedback, we are updating how presence works when organizations are using both Microsoft Teams and Skype for Business.  With this update, routing and presence are fully aligned. To ensure that routing follows presence, presence publishing is now based on a user’s coexistence mode

If a user is in TeamsOnly mode, then any other user, whether in Teams or Skype for Business, will see presence based on the user’s activity in Teams.

If a user is in any of these modes: SfbOnly, SfbWithTeamsCollab, SfbWithTeamsCollabAndMeetings – then any other user, whether in Teams or Skype for Business, will see presence based on the user’s activity in Skype for Business.

If a user is in Islands or Legacy mode, presence is independent and the values need not match.


  • From Teams, any other user within the same tenant will see presence based on that Island user’s activity in Teams. Chat and calls from Teams users in same tenant to that Islands user will land in Teams.
  • From Teams, any other user in a federated tenant will see presence based on the user’s activity in Skype for Business. Chats and calls from Teams users in a federated tenant to that Islands user will land in Skype for Business. 
  • From Skype for Business, any other user will see presence based on the user’s activity in Skype for Business.

Please note that If a recipient you previously had a conversation thread with is subsequently upgraded to Teams, that thread will no longer reflect accurate presence and will no longer be routable. You should start a new thread.

You can find more information about co-existence modes here


Coexistence modes.png 


Is this rolling out now and to all tenants? 

I thought I notice my status get stuck on Away the other day. Assuming it was part of this push. Changing status in Teams seems to be much more responsive now. That's nice! 


@Deleted - Yes, this change has been rolled out to all tenants earlier today. Please note that it may take up to a day for the update to take affect for some users!

@Chris Webb - Glad you're liking it! Thanks

Great news. Is there any estimate on the release date of this user voice request: https://microsoftteams.uservoice.com/forums/555103-public/suggestions/16925461-allow-different-notif...?


I also share my opinion on how to enhance the notification behavior that I believe is vital in Teams.


This is what I think should be the behavior or it should be allowed the user to configure (one to one or group chats or channel conversations).

- One to one chat or group chat: When someone starts a conversation, a callout message should be displayed (to allow the person to know someone wants to chat) 
Then, if we reply and someone in the conversion replies back, we should be able to not see a callout message for every message they send. A simple notification count with the number of unread messages in the Teams icon in the taskbar and the Teams icon blinking for a few seconds after the message is sent should be enough. This is what is the behavior in both Skype Consumer and Skype for Business and is the one that makes more sense to me

- One to one chat or group chat: In resume, when someone starts a new conversation, the other involved persons should receive a callout message but not for the remainder of the conversation, where only taskbar blinking and showing notification counts should be displayed

- Channel conversations: if a channel conversion is started, there shoudn't be any callout messages unless a person is mentioned directly, only the Teams icon blinking for a few seconds and the indication of the number of unread messages

The main goal here is to be less interrupted by Teams notifications and in particular by callout notifications that are distracting and can make people to lose focus.


Does this makes sense and is the team actively working on any of this?






This is fantastic news. Thank you!

Senior Member

It would be great if there was a way to control users being sent an message in teams when they have not been migrated yet. If we have users in Teams Only mode and they send an IM to a user who is offline in S4B, they  receive an email that someone tried to message them in teams and click here to join teams. This is not the functionality we want to see happen and is killing out piloting of Teams. Users who are Skype only and haven't launch teams need to receive messages in Skype only, not teams. Teams only users need to know that message sent to users on skype will only go to users on skype and not try to have them launch Teams. This causes confusion and has caused pilot users to no longer want to use Teams in fear that the users they are trying to IM will not receive the IM in skype properly. Teams is a great replace for skype, but to get the business to buy in and pilot the product we need to make sure that they know that messages sent to users will be received in the correct tool. Islands mode is not a valid option for this as users do not want to run 2 tools. It is to confusing and complicated, considered a hassle limiting adoption for pilots users.  

Senior Member

@Rahul Kayala - I thought I would like this update; however, now my SfB-only users are complaining they are showing up as completely Unavailable in Teams vs what I expected was for their Skype presence to appear in Teams.  If you end up with the Skype-version of someone in Teams, it does show their Skype presence... but not on the Teams version of them.  


UPDATE:  Now that I'm moving people to Teams-Only mode, the Skype users are complaining that the Teams people are now showing as Offline in Skype.  This just really doesn't sound like what this blog post was supposed to fix.  Please help clarify.  Is my only option to go back to Islands mode?


UPDATE:  Or... is it just that the changes mentioned in this blog post just haven't hit my tenant yet?  I'm hoping that's the answer.  If so, please clarify when we should anticipate this change being fully rolled out.  THANK YOU!!  :)

Senior Member

@Kevin Oliver - Our solution was to move the Org-Wide setting to SfBOnly, then Teams users to TeamsUpgrade (Teams Only).  This has most-definitely helped... except for the issue I'm having above.  But I don't think it's supposed to work that way based on how I'm interpreting this blog post, so I'm awaiting confirmation of this before deciding what to do next.

Respected Contributor

@Rahul Kayalawill this deployment have any impact on how the Presence icon works in Outlook? specifically, provide the ability to easily start a Teams chat instead of Skype chat.

@Kevin Oliver If you set other users to be in SfB only mode then exactly what you want will happen. While they are in islands or legacy then you can get these non delivery scenarios, you won't get that when you have defined the mode for each user.

Senior Member

@Steven CollierThanks for the suggestion, I will try moving a couple users to SfB mode and test. 

@Dean Gross That feature seems to have rolled our recently, look in your Teams settings for Register Teams as the chat app for Office (requires restarting Office applications) on the general tab.

@Matt Wilson to my knowledge it's fully rolled out. I suspect that you are looking at old threads that may will become disconnected during the change. 

Senior Member

Is this rolling out the Government Tenants as well?

I wouldn’t think so but @David Rosenthal might know! 

Senior Member

Nice update. And when will I be able to contact people with Skype account with Teams app?


@Steven Collier@Matt Wilson I experience the same in my tenant. In teams everybody appears as offline. In Skype for Business the status works as usual. 


@Marek Rabas I believe you are referring to being able to contact Skype (consumer version) contacts. If that is the case I wouldn't expect to see that feature. That was formerly a roadmap item but from what I have been told, because Teams is now free, they will not be adding the ability to communicate with people that have Skype accounts and are using the Skype client. 

@Alexander Auras Is your Skype for Business hosted online or in your company (on premises) ?

Occasional Contributor

@Rahul Kayala 


My only choices for Teams Upgrade (org-wide setting) in my Teams Admin Center are Islands or SfB only.


My only choices for individual users under their Teams Upgrade is:  Use Org-Wide Settings or Islands or SfB Only.


I do not yet see the new Teams option.


So when you say it's rolled out to all tenants...am I looking in the wrong locations?



@Eug It should be rolled out to everyone so that you can still set it via Powershell. I did a blog long while back with the commands and how to install / use the Skype Online power-shell module. to set it. 





Occasional Contributor

@Chris Webb Thank you!  I will give it a shot!

Not applicable

Please note that If a recipient you previously had a conversation thread with is subsequently upgraded to Teams, that thread will no longer reflect accurate presence and will no longer be routable. You should start a new thread.

How exactly do we "start a new thread" with a person who has changed upgrade modes? The previous conversation is still in the Chat tab, and trying to start a new thread by using the New Chat button (pencil icon in the purple banner) seems to just bring up the previous conversation again.

If it was already to their teams then it won’t change.  It’s only if you used their “Skype” chat that had the icon next to it etc. if it’s not changing then it should work without issue. If you click the menu next to the chat and you can’t remove it then it’s a Teams chat already.   

Not applicable

@Chris Webb- Thanks.  So to confirm, if I've communicated with someone in Teams, my conversation with them is forever in Teams? Take a user who was Islands before we realized Islands is awful and we needed to set everyone to SfBOnly… if I communicated with them from Teams while they were still Islands, I (as a Teams user) am never going to be able to chat with them and have it land in SfB on their side, right?


Also, do I understand from your response that I *should* be able to remove a conversation that's with a SfB user (aka has the Skype icon)?  Because I definitely don't see a remove/delete/etc. option in the menu.  The only difference between SfB and Teams conversations is the menu on a Teams conversation has "Manage Apps" in addition to Pin, Add to Favorites, Mute, and Hide which appear for both.  


Sorry to go a little off the topic of presence, but the article makes it seem like this is pretty straightforward.  Our experience with the Teams/SfB interop has been anything but straightforward. ;)

It’s been awhile since I messed with this. I guess it was just hiding it. I do know if your trying to prevent people cross chatting to Skype you turn that option in policy off so they chat with Skype users in teams goes away so you don’t even have the option to chat with Skype users. I saw that mess long before coexistence and disabled it. It’s moved now I’d have to go track it down. But what is end goal for your chats now? 

Not applicable

@Chris WebbGoal is basically just to have them work in some consistent way that we can confidently (and concisely) explain to users and support teams. Right now it's kind of chaotic, but probably because we have a handful of us in TeamsOnly, a few dozen in Islands, and the rest in SfBOnly.  The SfBOnly people started as Islands, and test conversations with them before switching them to SfBOnly seem to be stuck in Teams forever.  At some point, we'll probably throw the switch and move everyone to TeamsOnly. Thankfully we don't have any calling or phone system integration to worry about, and online meetings in SfB were barely used. 

Senior Member

@Jon Ostroushko Yes, I referred the consumer version of Skype. It's a logical step to add anybody to the video conference e.g. who has Windows 10 installed included Skype app. The other way is to widely extend free Teams app into every Windows 10 installation and send Skype into the application heaven :) It will bring a lot of new functions to Windows users, so there is no wait I think :)


Senior Member

I agree with @Marek Rabas. Within my line of business (import/export fruit and vegetables) the Skype for consumers is widely used, all over the world actually. So communication from Teams with Skype for consumers is almost a must for us. As long Skype for consumers is not being sent to application heaven ;) and Teams is added to W10, my collegues and customers and clients will keep using Skype for consumers. That makes adopting Teams a lot harder for companies like ours.

Senior Member

@Ewoud Vreugdenhil Oh yes, communication is the foundation of success. I believe that development will move in the right direction soon.

Regular Visitor
Can you provide a link to the associated PowerShell cmdlets for making these changes such as TeamsOnly mode?
Occasional Contributor

Duplicate post

Senior Member

@Jeff HuttoSee the link below for the cmdlets for changing user status



Make sure you connect to Skype Online connector first 

Import-Module SkypeOnlineConnector

$credential = Get-Credential

$S4Bsession = New-CsOnlineSession -Credential $credential 

Import-PSSession $S4Bsession


Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams -Identity <UserPrincipalName>

Occasional Contributor

@Chris Webb 


It worked.  I was able to set myself to Teams only and now SfB won't let me sign in to the desktop client, which is all good.


I also changed my entire org last night to be SfB only.  Most users are still set to follow the org settings.


I did change a few people to individually not be Org Settings but to be SfB only.  One of these people was Erin. 


Still when Erin messages me from her SfB, she gets the warning that I'm using Teams and that she should upgrade because what is she thinking not being on Teams?  I hate that message.  Need to get rid of it so we can roll this out without everyone calling the help desk saying they need to be on Teams because why aren't they indeed?


Overall, Presence is not working for me in Outlook 365.  (We are hybrid but all user mailboxes are in Exchange Online).  I show the SfB user I exchanged IM's with (me in Teams) and I see one SfB user (Erin!) with a red dot and one SfB user with a yellow dot (another user I individually set to be SfB Only).   


But everyone else has a white dot (in my Outlook).  The other members in my Team who may still use either/both Teams or SfB are showing offline (white dot) as well.  (me and my dept have been testing Teams for a while)


To Sum Up:


Today I will be changing individuals to not follow Org Settings of SfB Only but rather to have their individual settings be SfB only in an attempt to fix presence to work for me (being a Teams Only individual).   I expect this to fix me seeing everyone as offline in Teams and Office 365 programs such as Outlook.


People who are on Teams and SfB - their presence is not showing up for me in my Teams.  These are people who are on my IT Team and have been testing Teams with me for months.


People on SfB can now see my presence so that is good.


Getting rid of the "Eugene is using Teams - why aren't you Loser?" message SfB only individuals see when they IM me (as a Teams Only user) is still an issue without a solution?  Or is there something I am missing here?




Super Contributor

@Rahul Kayala

Will this affect also for hybrid organizations? Or is it expected that your users are all in Skype online?

Occasional Visitor


I just moved from "legacy" to "islands" in one tenant, and in another tenant i was moved from "legacy" to "islands" (at least i didn´t do the upgrade).

when i now try to write in teams between these 2 tenants i can´t see the state of the users in the other tenant. and then it says it sent a mail because the user is offline.

anyone else experienced that?

When you switch to islands that's expected if your users aren't logged in and using Teams, they won't get the message as they did previously in Skype since islands means Teams and Skype, so from Teams, to them will go to Teams. You would have to send messages from Skype to them for them to get it in Skype. 

Occasional Visitor

to reproduce it i was loged in with teams.microsoft.com in Firefox with the first tenant and in the teams-app with the other user from the 2nd tenant.

so i guess i should see the other user - didn´t

and i should be able to write to each other - didn´t, cause it showed as offline


If you are in two complete different tenants, then you have to have external access enabled for both tenants. And in order to write from Teams to Teams, the end point has to be in Teams Only mode. otherwise by default they will get messages in Skype for Business in any other modes. 

Regular Visitor

 @Rahul Kayala I've recently(exactly on Oct-26) created a c# application using UCWA Web Sdk which updates the user's presence from Microsoft teams. I created a azure AAD Native application configured with SFB Online API with required admin consents and used its App ID in the c# application. I got the user's presence correctly. But from November, I am not able to get my user's presence as it shows Offline all the time. Do i need to make any mode changes or modify any changes in my AAD Application? Thanks in advance.


@Rahul Kayala


Loving this!


Any words about hybrid interop? Given that alot of organizations still user on-prem deployments of SfB or hybrid with SfBO.

New Contributor

Hi All - I had a weird problem. I moved all users to TeamsOnly mode a few weeks back even though our tenant didn't have the option and using the powershell command to grant the upgrade policy org-wide. This worked fine and our SkypeforBusiness deactivated and diverted us to Teams. However, we noticed that we only had one-way presence with external contacts where we could see theirs, but nobody could ours. After a lot of reading tweaking settings, I noticed that two-way presence worked if I granted the upgrade policy to each user invidually:

Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams -Identity username

I hope this helps someone and saves them a few hours.

Odd, I've upgraded 2 tenants now just doing the tenant and didn't have an issue with external federation. Guess a good trick up the sleeve if it doesn't work the org setting way! Thanks for the info!

Super Contributor



thanks for the information .. I am working on this currently.



New Contributor

OK, so our two-way presence was resolved by granting each user the upgrade policy one by one, but now their desktop Teams client disconnects after a few minutes and restarts. Mobile and web apps are fine. We did have an on-prem Skype for Business deployment that we decommissioned and moved to Online before making the upgrade, so I would imagine this has something to do with my problems. Debug logs giving me nothing to go on. :( I will report back if I find a solution.

New Contributor



OK, so I think that our sessions are timing out since we upgraded each user to TeamsOnly mode because of a service issue here in the UK. A polling server is not responding and this times out and disconnects our sessions, which quickly re-establish when the app is restarted. Perhaps we jumped the gun and enabled TeamsOnly on our tenant before it was truly ready. I have logged a ticket with MS to find out more.


2018-12-05T15:52:07.774Z Inf NotificationBannerStore: Showing user the disconnected banner.
2018-12-05T15:51:54.018Z Inf AUTHSSO: Return cached token for resource: https://presence.teams.microsoft.com/
2018-12-05T15:51:54.017Z Inf AUTHSSO: Start acquiring Adal tokens -- resources: https://presence.teams.microsoft.com/.
2018-12-05T15:51:54.016Z Inf UnifiedPresenceService: successfully published endpoint presence, activity - Available, availability - Available
2018-12-05T15:51:53.730Z Inf AUTHSSO: Return cached token for resource: https://presence.teams.microsoft.com/
2018-12-05T15:51:53.729Z Inf AUTHSSO: Start acquiring Adal tokens -- resources: https://presence.teams.microsoft.com/.
2018-12-05T15:51:53.727Z Inf UnifiedPresenceService: attempting to set availability - Available, activity - Available, isUserInitiated - false
2018-12-05T15:51:53.723Z Inf PresenceService: Trying to set status, isUnifiedPresenceService=true, isForced=false, isRetriable=true, status=Online
2018-12-05T15:51:53.723Z Inf PresenceService: restoreMyStatus with appState Disconnected, machineState MachineActive, isForced=false, currentStatus=Online, newStatus=Online
2018-12-05T15:51:52.724Z War SyncLongPollService: No events from long poll in 90 seconds, notifying chat sync is down
2018-12-05T15:51:52.722Z Inf PresencePostActiveService: checkTransition: appState: Disconnected, machineState: MachineActive(1), isPostingActive: true, shouldPostActive: true
2018-12-05T15:51:52.720Z Inf UnifiedPresenceService: app state changed to 7
2018-12-05T15:51:52.720Z Inf AppState: App health changed to false after 273.644 seconds
2018-12-05T15:51:52.719Z Inf AppState: App state changed from Interactive to Disconnected due to longpoll.sync is down with code undefined after 110.292 seconds
2018-12-05T15:51:52.719Z Inf AppState: Service ChatSync up state changed from true to false due to longpoll.sync is down with code
2018-12-05T15:51:40.236Z War HTTP request DM longPollSubscription GET failed: GET "https://uksouth-prod.notifications.teams.microsoft.com/users/8:orgid:e6729775-09ea-4e7f-a1d5-9d13ae3...", status: 429, response: {"Code":"LimitExceeded","Subcode":"Too Many Requests","Message":"ThrottlingMessageHandler. The current concurrent request limit …, errorCode: undefined, requestId: undefined, correlationId: undefined
2018-12-05T15:51:36.144Z War HTTP request DM longPollSubscription GET failed: GET "https://uksouth-prod.notifications.teams.microsoft.com/users/8:orgid:e6729775-09ea-4e7f-a1d5-9d13ae3...", status: 429, response: {"Code":"LimitExceeded","Subcode":"Too Many Requests","Message":"ThrottlingMessageHandler. The current concurrent request limit …, errorCode: undefined, requestId: undefined, correlationId: undefined
2018-12-05T15:51:34.903Z War HTTP request DM longPollSubscription GET failed: GET "https://uksouth-prod.notifications.teams.microsoft.com/users/8:orgid:e6729775-09ea-4e7f-a1d5-9d13ae3...", status: 429, response: {"Code":"LimitExceeded","Subcode":"Too Many Requests","Message":"ThrottlingMessageHandler. The current concurrent request limit …, errorCode: undefined, requestId: undefined, correlationId: undefined
2018-12-05T15:51:27.099Z Inf DesktopEventsService: Purging memory - on inactive
2018-12-05T15:51:27.098Z Inf message-list: shouldScrollWithUpdates(): isScrolledToBottom = true, AppActive = false, isComposingEditOrReply = false, appStateService = Interactive
2018-12-05T15:51:24.525Z Inf AppState: network status verified as online
2018-12-05T15:51:24.508Z Err {"statusCode":-1,"headers":{},"errorMessage":null,"errorCode":null}
2018-12-05T15:51:24.507Z Inf AppState: verify network status

New Contributor

Thanks to all who have posted here. It has been helpful.  As of today, is it correct to expect that all tenants should allow for setting the "Teams Upgrade"/co-existence setting to "Teams Only" via the Admin Center/Org-wide setttings/Teams Upgrade UI?


I have audited a number of our client's tenants (along with our own) and none appear to allow the co-existence mode of "Teams Only" either at the Org-wide level, or at the user level.


I do understand that this can be done via PS (thanks for the blog @Chris Webb!)



Confused in Montana

Yeah, we are all waiting for the Admin center to have the options. Still only way is PS. 

New Contributor

@Chris:  Perhaps things have changed in the PS environment as well.   After executing the Grant-CsTeamsUpgradePolicy for a specific user, I get a warning:
"WARNING: Users with this policy will become full Teams-only users. They will no longer be able to use Skype for Business clients, except to join Skype for Business meetings. For details, see http://aka.ms/UpgradeToTeams"


When I then view the user account in the Teams Admin center, they still show "Use Org-wide Settings"..


Screw loose in the main driver? :)

it should show blank, I'll have to check mine and see what it's showing, but that warning is new but it should change. I think it might take a bit.

Version history
Last update:
‎Jan 26 2021 10:45 AM
Updated by: