Tag Archives: lync2013

TL;DR Just Tell Me How to Edit Lync IVR from PowerShell

The previous article was a bit of a walkthrough on creating and modifying a Lync Interactive Response Group from the Lync Management Shell.  However, the meat of that and the reason it was written was really focused around how to modify an existing group.  The method to accomplish this isn’t clear at all if you’re just starting out and reading through TechNet.  As promised, here’s the short version for those who already know their way around.

To modify a workflow, we first need to pull it into a variable like so:

$workflow = Get-CsRgsWorkflow -Name “Our IVR”

To review settings, we can drill down into the object a bit at a time.  For example, we can see what the DefaultAction of the workflow is by typing $workflow.DefaultAction.  We see that the action is TransferToQuestion and there’s a Question attribute.  So now we can drill into the question attribute by typing $workflow.DefaultAction.Question.  We can also see there’s an AnswerList attribute, which is an array of answers.  We can access that array directly by specifying $workflow.DefaultAction.Question.AnswerList.


You’ll notice that the AnswerList is a variable, and we can access it as such.  To get at a specific answer we can use $workflow.DefaultAction.Question.AnswerList[2] the same way we’d access any array in PowerShell.


We can add responses by $workflow.DefaultAction.Question.AnswerList.Add($YourNewAction).  This allows us to drill down deeper into the new answer the same way.  In the example below, you can see me getting at an answerlist that is an option from a previous answer.


To remove an answer, you’d use AnswerList.Remove() and specify which answer in the array you’d like to remove as seen here: $workflow.DefaultAction.Question.AnswerList.Remove($workflow.DefaultAction.Question.AnswerList[1]).

So far, we’ve only modified our $workflow variable, to write our changes back, we only need to type: Set-CsRgsWorkflow $workflow and we’re done!

Thanks for reading!