Guest Post from J. Christie

Fellow geeks and ladies, we have a guest post for you today! This comes from J. Christie in Scotland. He’s talking with us on creating custom Lync Presence states. Enjoy!

I’m the Director of ICT at an independent school in Scotland. After trialling (playing with) OCS 2007, I paid serious attention when Lync was announced. Like many businesses our PBX was aging. It was underused (in terms of features – voicemail, conference calling, call forwarding, etc.) due to its complexity. And it was a right royal pain wiring new extensions in old buildings!

So – Lync’s been installed. All staff have the Lync 2010 client. Reception staff have the Attendant for fielding calls. Department heads and non-teaching staff have USB handsets (Polycom cx200, Jabra dial 520 for ‘roaming’ staff). Mobile clients are now supported.

But there’s still a few niggles.

Custom Presence States: When You Must Be Able to Interrupt

For example, Calendar integration – wouldn’t it be nice if Lync not only read the calendar’s Free/Busy info, but could also set your status depending on the category assigned? And use a custom status to indicate, for instance, teaching?

There’s also the issue of DND (Do Not Disturb). DND is easily abused. Yes the user can add in contacts who can interrupt, but wouldn’t it be nice if Lync handled this a bit better. If Reception staff has to locate a pupil, they might need to interrupt a teacher to do that. But if the teacher’s status is DND, they can’t interrupt.

We badly needed that level of detail. With all the different roles education professionals play each day, I needed a way to identify what exactly everyone was doing at that moment AND still reach them in emergencies.

(We also want the ability to break through DND if necessary. But that’s another blog post!)

So I decided to implement custom presence states. Here’s how I did it.

Step 1: Create Custom Presence Code in XML

There’s a good article on TechNet which describes the steps necessary. Link: Configuring Custom Presence States – TechNet

I’ve used the code below to set 4 additional custom status presence states.

  1. Teaching
  2. Department Meeting
  3. Interviewing
  4. Working from Home

The code reads as follows:

<?xml version=”1.0″?>

<customStates xmlns=”“>

  <customState ID=”1″ availability=”busy”>

    <activity LCID=”1033″>Teaching</activity>


  <customState ID=”2″ availability=”busy”>

    <activity LCID=”1033″>Department Meeting</activity>


  <customState ID=”3″ availability=”do-not-disturb”>

    <activity LCID=”1033″>Interviewing</activity>


  <customState ID=”4″ availability=”online”>

    <activity LCID=”1033″>Working from Home</activity>




As you see, I set “Interviewing” to Do Not Disturb level. But the others are set to either Busy or Online, so interruptions are permitted.

Name the file something easily recognizable and valid – like mine, CustomPresence.xml.

Step 2: Make the Code Available to Lync Clients using Powershell

There’s a couple ways to implement this code on clients. I could push it out via Group Policy/SCCM to copy a file locally, and set a registry entry. But that wouldn’t cover all clients.

Instead, using the client policy on the Lync server, I uploaded the custom states file to a server that’s available internally and externally. And referenced from there.

Open Lync Management Shell (Powershell) and make the new custom states available to everyone with this command (switch the URL with your own file’s location):

Set-CsClientPolicy –Identity Global –CustomStateURL “”

Step 3: Logout, Log Back In & Verify

Log out and back in to Lync and the new Presence states will appear (eventually). Don’t expect instant results, as the policy can take a while to kick in. Default is 3 hours according to TechNet.

At the school, the Lync windows clients are working. Mobile devices don’t yet show custom states (but we’re working on that). Here’s a screenshot of my own Lync client to show them:

Lync 2010 with Custom Presence States

Ta da! Custom Presence states, available on-click. Now we just have to encourage the teachers to use them.

Thanks for the post J! Great information.

Have you implemented custom Presence states in your organization? What was the motivation?

How to Create Custom Lync Presence States

6 thoughts on “How to Create Custom Lync Presence States

  • August 29, 2014 at 7:19 am


    So you have! Great to see. I’d like take it for a spin & blog on it soon.

  • October 1, 2014 at 5:42 am

    I have tried to set up custom presence on the client (not on the server) per Jeff Schertz’ blog:
    I am using Lync 2013 with Office 365. After completing these steps, there are no additional status / presence listed when I log into Lync 2013.

    Anybody working with Lync 2013 / Office 365 and able to get custom presence to work?

    Thanks for any help!

    • October 1, 2014 at 7:45 am

      Those instructions were intended for Lync Server 2010 (later updated to include Lync Server 2013). Both server-based installations, not cloud-based. Jeff is always thorough, but I suspect these steps won’t work properly when using Office 365.

      Instead, try the Custom Status Tool I posted about last month:

      I’m not 100% sure it will work with Office 365, but since it’s a purely local tool it should work.

  • October 5, 2018 at 2:21 am

    Is it possible to use the yellow or “away” symbol to custom status?

    • October 5, 2018 at 7:14 am

      Yes! If you use the Custom Status Tool I linked in another comment on this post, you’ll see you can use the same symbols. I did that for my “Wrestling a Wolverine” custom status, using the “Busy” symbol.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.