Microsoft Graph presence API
currently you can only query the present status via the API interface.
It would also be very important for providers who want to dock their tools to MS teams that the present status can also be set via the API interface.
is there any information about when this will be possible via the API interface?
Thank you for your feedback! Presence Graph API is now available. For more information on the available features, and how to use it, please visit https://docs.microsoft.com/en-us/graph/api/resources/presence?view=graph-rest-1.0.
Get and subscribe functionality is also available, please reference the link above to learn more.
378 commentsComments are closed
dev hijleh commented
@Kenneth, any idea how "Dantelo" was able to do it?
www.Dantelo.com managed to set status to Busy in Teams when in a native call on phone. We have their solution and it works great and really opt the presence flow now working from home.
Dan Register commented
would like voicemail and missed calls status to be available to busylight.
Antony Little commented
We very much need this ASAP!
We have a similar need. Our company would like to set your Teams' status based on the "hot desk" or building you are currently working from.
Would be great!
The API is necessary for integration with our UC Client.
It's technically possible to do this already in powershell as I posted in github at https://github.com/microsoftgraph/microsoft-graph-docs/issues/7010 with a similar issue, however I haven't worked out the authorization bit yet. The graph api does not have a (documented) method of setting permissions to allow setting the presence. If anyone knows how to do this - feel free to update the github issue
The app currently has a method to set the status and status text through clicking the user icon and this overrides any auto detected status. I would expect the api to function in the same way.
I think some kind of high-level comment from Microsoft is required, either to the effect of 'this isn't going to appear in Graph' or (hopefully) 'it is in the road-map but will not start work on it until approx X' -- not commenting either way and leaving people in the dark for so long just feels plain wrong.
Marco Borm commented
That's urgently needed but not that easy as requested here:
There can't be something like a single changeable presence status for a whole ecosystem like this. There can only be a single aggregated value to get, but never to set.
For example MS Teams think: ok, he is on the machine. He is there. So it set "available" for its own.
Outlook "think", Oh, he has a appointment now, its not a teams meeting but anyway: you are busy.
You started a call for this meeting using whatever other app from non-MS, that uses the new "presence API", it set you also to busy. After the call the non-MS set the status to available, but you now leaved the seat and are at launch. What status should now be visible and how should that be calculated if there is only a global status? It can't!
So at the end every app has to maintain his own presence status, it should never set something like a global status, as a app does not and can't know something about your global status. The global status must be some aggregation of all the different app statuses. I already see a lot of issues already where only outlook and teams trying to set the correct presence status, that's often already wrong.
So Microsoft: Please add an per app status option and do some nice status aggregation for that then.
Silas Ontrup commented
Would be really helpful!!!
Many orgs (like the one I have tried to leverage this with) are going to have permissions for Graph set to require admin approval, even for the users own status. This is a showstopper for things like busy lights unless the organisation admins have a good understanding of what is required to approve and what they are approving. If I requested Admin Approval for the Graph API to retrieve my own presence it would no doubt go into some circle of InfoSec review/approval hell requiring API security assessment and pen tests just to have a little colored light show if I am on a call. Surely the Teams app running locally on a machine can expose the local user presence status for a local device to consume?
We want to integrate with teams but can't until the presence API allows setting as well as getting.
In addition to this, I would like to have the ability to post the Time on the device I'm logged into. Or I guess more generically, allow custom Properties that could be created locally and automatically or manually populated and be used in the Status message. I work with employees all over the world and it would be helpful if we could mandate across the company that the users update their status with something like "The current local time is @System.Time and I am logged into my @Properties.DeviceName" and it would display like "The current local time is 08:46:52 and I am logged into my iPhone". Where the @System would reference some System/Environment variables and @Properties would reference the custom Properties list (that doesn't actually exist yet).
I'd like to just be able to grab the status messages via the API. Ideally we'd be able to grab the custom status messages and display them on a page, so we can us Teams as bit of a in/out board for our organization.
Guilhain Rouyer commented
Microsoft being an advocate of the open source world, this should not be a problem ?!
We've kitted out our entire office with this Busylights because they are brilliant, and they worked great with Skype for Business. Microsoft, please sort this out ASAP (since Teams' own feature set in this area is non-existent)
Eddie Parker commented
Is there a way to set a users presence? i.e., we often have users in a full screen application, and it would be nice to set them to 'do not disturb' to turn off pop-ups. Is this possible? I only see 'get' in the API.
manon latneigne commented
Working from home or office or working remotely.
We need this now
This is the new trend
This feature is urgently needed.