Skip to content

Releases: peterruiter/d365-contactcenter-alm

XrmToolBox tool 0.1.31

Choose a tag to compare

@peterruiter peterruiter released this 18 Oct 17:57

What's new in 0.1.31

  • Conversation orchestration playbooks move (preview feature). A playbook and the natural-language prompt under it are matched on their name and the scenario they are built on, so a second compare of the same two environments sees them as the same instead of writing them again. They move as drafts: publishing compiles the prompt into a rule naming that environment's own queues, so the tool lists each playbook that still needs publishing in the target.
  • Agent scripts and their steps move, matched on the unique name the product keys them on. A step that routes to another script arrives pointing at the target's own copy of it. A step that runs a macro keeps its text and order but is reported, because a macro is a solution component: move it by solution and pick it on the step there.
  • Agentic routing rules are reported, not moved. They live in an elastic table partitioned by the environment's own id, so a copy would land where the runtime does not look; the review tab lists them with what to do.
  • Checked against two real environments, not only the test data: playbooks, prompts, scripts and steps moved, read back identical, and the next compare had nothing left to do.

What's new in 0.1.28

  • The Plan check and Run tabs are no longer empty until you find the right button in the toolbar. Opening Plan check checks the plan - it reads nothing from Dataverse, so it is instant and writes nothing. Opening Run checks it too and says how many records are ready, with the Dry run button on the tab. Before a compare, each tab says which step comes first.

What's new in 0.1.27

  • Fixed: a compare emptied itself a few seconds after it finished, leaving a blank tree next to "147 of 147 selected" and a greyed-out Check the plan. XrmToolBox tells a tool about its connection again when its metadata cache has loaded, and the tool took that for a new environment. Only a different source environment clears a compare now, and the fresh connection is used from that moment on, so impersonating someone after a compare writes as that person.
  • Fixed: choosing the target renamed the source in the toolbar. Both labels said the same environment while the compare itself used the right two.
  • Starting over clears the screen: the selection count, the plan summary, the notices and the details pane go with the tree.

What's new in 0.1.26

  • Another Tool Library packaging fix: the package now carries only an iconUrl (a .png in the repository) and no packed icon, because nuget.org serves a packed icon from an endpoint the Tool Library will not take as a logo. The tool itself is the same as 0.1.24.

What's new in 0.1.25

  • The Tool Library package carries an iconUrl as well as the icon packed in the file: xrmtoolbox.com reads the first, nuget.org the second. The tool itself is the same as 0.1.24.

What's new in 0.1.24

  • The review tree shows the structure, not a list per table. Every record sits under the workstream, channel or queue it belongs to, and what each one uses - the ruleset a step runs, the queue it routes to - is shown where it is used, marked "uses". A record says how much sits under it, how much of that is ticked, and, after a plan check, how many records under it are blocked. Show: By table gives the old list per table back.

    Workstreams (3)
      Mortgage chat - workstream  [New] - 5 under it, 5 of 5 ticked
        Contact center routing configuration - routing configuration  [New]
          Route to queue - routing step  [New]
            uses Mortgage route - ruleset  [New]
        uses Mortgage queue - queue  [New]
    
  • A record now says where it is used: what points at it and through which column, next to what it needs and everything under it. A double-click on a row in any of those lists goes to that record; the line under the title goes up to the record it sits in.

  • The plan check says why a record is in the plan: a record added because something else needs it names that record ("Needed by workstream 'Mortgage chat'").

  • A new icon, the same one the local runner's exe and the Tool Library listing carry.

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.31. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.28

Choose a tag to compare

@peterruiter peterruiter released this 18 Oct 11:39

What's new in 0.1.28

  • The Plan check and Run tabs are no longer empty until you find the right button in the toolbar. Opening Plan check checks the plan - it reads nothing from Dataverse, so it is instant and writes nothing. Opening Run checks it too and says how many records are ready, with the Dry run button on the tab. Before a compare, each tab says which step comes first.

What's new in 0.1.27

  • Fixed: a compare emptied itself a few seconds after it finished, leaving a blank tree next to "147 of 147 selected" and a greyed-out Check the plan. XrmToolBox tells a tool about its connection again when its metadata cache has loaded, and the tool took that for a new environment. Only a different source environment clears a compare now, and the fresh connection is used from that moment on, so impersonating someone after a compare writes as that person.
  • Fixed: choosing the target renamed the source in the toolbar. Both labels said the same environment while the compare itself used the right two.
  • Starting over clears the screen: the selection count, the plan summary, the notices and the details pane go with the tree.

What's new in 0.1.26

  • Another Tool Library packaging fix: the package now carries only an iconUrl (a .png in the repository) and no packed icon, because nuget.org serves a packed icon from an endpoint the Tool Library will not take as a logo. The tool itself is the same as 0.1.24.

What's new in 0.1.25

  • The Tool Library package carries an iconUrl as well as the icon packed in the file: xrmtoolbox.com reads the first, nuget.org the second. The tool itself is the same as 0.1.24.

What's new in 0.1.24

  • The review tree shows the structure, not a list per table. Every record sits under the workstream, channel or queue it belongs to, and what each one uses - the ruleset a step runs, the queue it routes to - is shown where it is used, marked "uses". A record says how much sits under it, how much of that is ticked, and, after a plan check, how many records under it are blocked. Show: By table gives the old list per table back.

    Workstreams (3)
      Mortgage chat - workstream  [New] - 5 under it, 5 of 5 ticked
        Contact center routing configuration - routing configuration  [New]
          Route to queue - routing step  [New]
            uses Mortgage route - ruleset  [New]
        uses Mortgage queue - queue  [New]
    
  • A record now says where it is used: what points at it and through which column, next to what it needs and everything under it. A double-click on a row in any of those lists goes to that record; the line under the title goes up to the record it sits in.

  • The plan check says why a record is in the plan: a record added because something else needs it names that record ("Needed by workstream 'Mortgage chat'").

  • A new icon, the same one the local runner's exe and the Tool Library listing carry.

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.28. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.27

Choose a tag to compare

@peterruiter peterruiter released this 18 Oct 11:29

What's new in 0.1.27

  • Fixed: a compare emptied itself a few seconds after it finished, leaving a blank tree next to "147 of 147 selected" and a greyed-out Check the plan. XrmToolBox tells a tool about its connection again when its metadata cache has loaded, and the tool took that for a new environment. Only a different source environment clears a compare now, and the fresh connection is used from that moment on, so impersonating someone after a compare writes as that person.
  • Fixed: choosing the target renamed the source in the toolbar. Both labels said the same environment while the compare itself used the right two.
  • Starting over clears the screen: the selection count, the plan summary, the notices and the details pane go with the tree.

What's new in 0.1.26

  • Another Tool Library packaging fix: the package now carries only an iconUrl (a .png in the repository) and no packed icon, because nuget.org serves a packed icon from an endpoint the Tool Library will not take as a logo. The tool itself is the same as 0.1.24.

What's new in 0.1.25

  • The Tool Library package carries an iconUrl as well as the icon packed in the file: xrmtoolbox.com reads the first, nuget.org the second. The tool itself is the same as 0.1.24.

What's new in 0.1.24

  • The review tree shows the structure, not a list per table. Every record sits under the workstream, channel or queue it belongs to, and what each one uses - the ruleset a step runs, the queue it routes to - is shown where it is used, marked "uses". A record says how much sits under it, how much of that is ticked, and, after a plan check, how many records under it are blocked. Show: By table gives the old list per table back.

    Workstreams (3)
      Mortgage chat - workstream  [New] - 5 under it, 5 of 5 ticked
        Contact center routing configuration - routing configuration  [New]
          Route to queue - routing step  [New]
            uses Mortgage route - ruleset  [New]
        uses Mortgage queue - queue  [New]
    
  • A record now says where it is used: what points at it and through which column, next to what it needs and everything under it. A double-click on a row in any of those lists goes to that record; the line under the title goes up to the record it sits in.

  • The plan check says why a record is in the plan: a record added because something else needs it names that record ("Needed by workstream 'Mortgage chat'").

  • A new icon, the same one the local runner's exe and the Tool Library listing carry.

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.27. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.26

Choose a tag to compare

@peterruiter peterruiter released this 18 Oct 11:16

What's new in 0.1.26

  • Another Tool Library packaging fix: the package now carries only an iconUrl (a .png in the repository) and no packed icon, because nuget.org serves a packed icon from an endpoint the Tool Library will not take as a logo. The tool itself is the same as 0.1.24.

What's new in 0.1.25

  • The Tool Library package carries an iconUrl as well as the icon packed in the file: xrmtoolbox.com reads the first, nuget.org the second. The tool itself is the same as 0.1.24.

What's new in 0.1.24

  • The review tree shows the structure, not a list per table. Every record sits under the workstream, channel or queue it belongs to, and what each one uses - the ruleset a step runs, the queue it routes to - is shown where it is used, marked "uses". A record says how much sits under it, how much of that is ticked, and, after a plan check, how many records under it are blocked. Show: By table gives the old list per table back.

    Workstreams (3)
      Mortgage chat - workstream  [New] - 5 under it, 5 of 5 ticked
        Contact center routing configuration - routing configuration  [New]
          Route to queue - routing step  [New]
            uses Mortgage route - ruleset  [New]
        uses Mortgage queue - queue  [New]
    
  • A record now says where it is used: what points at it and through which column, next to what it needs and everything under it. A double-click on a row in any of those lists goes to that record; the line under the title goes up to the record it sits in.

  • The plan check says why a record is in the plan: a record added because something else needs it names that record ("Needed by workstream 'Mortgage chat'").

  • A new icon, the same one the local runner's exe and the Tool Library listing carry.

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.26. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.25

Choose a tag to compare

@peterruiter peterruiter released this 18 Oct 11:00

What's new in 0.1.25

  • The Tool Library package carries an iconUrl as well as the icon packed in the file: xrmtoolbox.com reads the first, nuget.org the second. The tool itself is the same as 0.1.24.

What's new in 0.1.24

  • The review tree shows the structure, not a list per table. Every record sits under the workstream, channel or queue it belongs to, and what each one uses - the ruleset a step runs, the queue it routes to - is shown where it is used, marked "uses". A record says how much sits under it, how much of that is ticked, and, after a plan check, how many records under it are blocked. Show: By table gives the old list per table back.

    Workstreams (3)
      Mortgage chat - workstream  [New] - 5 under it, 5 of 5 ticked
        Contact center routing configuration - routing configuration  [New]
          Route to queue - routing step  [New]
            uses Mortgage route - ruleset  [New]
        uses Mortgage queue - queue  [New]
    
  • A record now says where it is used: what points at it and through which column, next to what it needs and everything under it. A double-click on a row in any of those lists goes to that record; the line under the title goes up to the record it sits in.

  • The plan check says why a record is in the plan: a record added because something else needs it names that record ("Needed by workstream 'Mortgage chat'").

  • A new icon, the same one the local runner's exe and the Tool Library listing carry.

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.25. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.24

Choose a tag to compare

@peterruiter peterruiter released this 18 Oct 10:42

What's new in 0.1.24

  • The review tree shows the structure, not a list per table. Every record sits under the workstream, channel or queue it belongs to, and what each one uses - the ruleset a step runs, the queue it routes to - is shown where it is used, marked "uses". A record says how much sits under it, how much of that is ticked, and, after a plan check, how many records under it are blocked. Show: By table gives the old list per table back.

    Workstreams (3)
      Mortgage chat - workstream  [New] - 5 under it, 5 of 5 ticked
        Contact center routing configuration - routing configuration  [New]
          Route to queue - routing step  [New]
            uses Mortgage route - ruleset  [New]
        uses Mortgage queue - queue  [New]
    
  • A record now says where it is used: what points at it and through which column, next to what it needs and everything under it. A double-click on a row in any of those lists goes to that record; the line under the title goes up to the record it sits in.

  • The plan check says why a record is in the plan: a record added because something else needs it names that record ("Needed by workstream 'Mortgage chat'").

  • A new icon, the same one the local runner's exe and the Tool Library listing carry.

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.24. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.21

Choose a tag to compare

@peterruiter peterruiter released this 17 Oct 18:58

What's new in 0.1.21

  • Routing steps that share a name are moved (work classification and route to queue).
  • Identical copies are moved as one; quick replies are told apart by their text.
  • Custom channel settings are moved to an existing channel.

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.18. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.20

Choose a tag to compare

@peterruiter peterruiter released this 17 Oct 17:30

What's new in 0.1.20

  • Quick replies are linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies. Links are created at the end of the run, checked afterwards, and removed on rollback.

Contact Center ALM for XrmToolBox, version 0.1.18. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

XrmToolBox tool 0.1.18

Choose a tag to compare

@peterruiter peterruiter released this 17 Oct 17:10

Contact Center ALM for XrmToolBox, version 0.1.18. The same compare, plan check, dry run, apply with a check afterwards, and rollback as the Dynamics app and the local runner, as an XrmToolBox tool on your own connections: no backend, no app registration.

Install by hand

  1. Download ContactCenterALM-XrmToolBox.zip below and unblock it (right-click, Properties, Unblock).
  2. Close XrmToolBox, unzip the two DLLs into %AppData%\MscrmTools\XrmToolBox\Plugins, start XrmToolBox.
  3. Connect to the source environment, open Contact Center ALM, Choose target…, Compare.

Needs XrmToolBox 1.2025.10 or later. The .nupkg is the Tool Library package.

What it does

  • Review every difference, grouped like the app; ticking a workstream ticks its routing configuration, work classification and route-to-queue steps, rulesets and queues.
  • Plan check before anything runs, with the reason for every blocked record and Add what is missing.
  • Dry run from what the compare read; apply re-reads the target, snapshots what it changes, and checks afterwards that the target matches the source.
  • Roll back the last run or any earlier one from its snapshot, including the routing contract Dataverse provisions for a new workstream.

The engine is a C# port of the PowerShell engine. On a real Dev to Test it found exactly the same differences and plan. Full guide: docs/xrmtoolbox.md

Local runner 0.3.0 (build 32)

Choose a tag to compare

@peterruiter peterruiter released this 15 Oct 18:35

Run Contact Center ALM on your own machine against a client's environments, using only the app registrations the client gives you. No Azure Function, no custom connector, nothing to create in Entra.

What's new (version 0.3.0, build 32)

  • Fixed: the Table access check crashed with "Cannot index into a null array", so the last step of Setup never passed, in any environment. It asked the manifest for each table's entity set name and columns; the manifest stopped carrying those when the engine began reading them from each environment. It now asks the environment, and a table that is not installed there is skipped instead of counted as a failure.
  • Setup no longer asks for write access it does not need. Reference and detect tables (languages, record routing hubs, orchestration scenarios, agentic routing rules) are only read, but the check wanted create, update and delete on them, which made a correctly set up environment look wrong.

What's new (version 0.3.0, build 31)

  • Conversation orchestration playbooks move (preview feature): a playbook and the prompt under it, matched on their name and the scenario they are built on. They move as drafts - publishing compiles the prompt into a rule naming that environment's own queues - so each playbook that still needs publishing in the target is listed under what to set up by hand.
  • Agent scripts and their steps move, matched on the unique name the product keys them on. A step that routes to another script arrives pointing at the target's own copy. A step that runs a macro is reported instead of arriving empty: a macro is a solution component, so move it by solution and pick it on the step there.
  • Agentic routing rules are reported, not moved, because they live in an elastic table partitioned by the environment's own id.
  • The engine behind all three is the same one the XrmToolBox tool uses, and all of it was checked against two real environments.

What's new (version 0.3.0, build 24)

  • The exe has an icon and says who built it. ContactCenterALM-LocalRunner.exe now carries the product icon, and its file properties (right-click, Properties, Details) give the description, product, author, copyright and licence, the project link, and the version with the build number and commit, so an exe on a laptop can be traced back to a commit.
  • The runner itself is unchanged from build 21; there is no need to update unless you want the icon.

What's new (version 0.3.0, build 21)

  • Fixed: work classification and route-to-queue steps with the same name were not moved, so workstreams arrived with empty routing rules.

  • Identical copies (a quick reply created three times) are moved as one instead of blocking the record.

  • Custom (Messaging API) channel settings are moved to an existing channel.

  • Fixed: quick replies are now linked to the workstreams they move with, and tags to their quick replies. Ticking a workstream ticks its quick-reply links and the quick replies.

  • Ticking a workstream ticks everything under it: its routing configuration, work classification and route-to-queue steps, their rulesets and queues.

  • Fixed: record workstreams (email, case) could not be created, which also skipped their routing configuration, steps and rules. Set up record routing for that table in the target first.

  • Fixed: an empty selection planned everything.

  • New workstreams no longer wait 90 seconds each during a run.

  • Dry runs, applies and plan checks are much faster after a compare. They reuse what the compare read instead of reading both environments again: a dry run reads nothing, an apply re-reads only the target. Compare within the hour before you run.

  • Select all from one checkbox above the list (with the filters and search), and per group.

  • Fixed: a white page right after a compare, when unchanged records or records with one changed setting were in the result.

  • Every apply checks its own work. When it finishes writing, it compares again and reads back every record it wrote. It then says the target matches the source, or lists each record that still differs with the setting and both values, and why when Dataverse is the reason. Records Dataverse added on its own during the run are listed too.

  • Version and updates. The footer shows the version and build. When a newer build is released here, the runner shows a banner with the download link. To update, download the new exe or zip, close the old one and start the new one; profiles and secrets stay where they are. This is the first build with the check, so from this one on you will be told.

  • Fixed: a new ruleset could fail on its second write (the one that makes Dataverse record its dependencies), holding back the routing steps that use it.

  • Tested offline against an in-memory Dataverse, including a replay of a real Dev to Test of 125 records: apply, check and rollback.

Earlier (build 7e7210b)

  • Runs happen in the background. Dry runs, applies and rollbacks return at once and show live progress: a progress bar, the record being written, and outcomes as they arrive. The runner keeps responding while a run is busy. If a run stops halfway, it shows as Interrupted with a Continue button that writes only what is still missing, and it can still be rolled back.
  • Select a record with everything under it. On a workstream, one click selects its routing configurations and steps, context variables, capacity links and channels, plus the rulesets, queues, templates and hours they use.
  • Fixed: records with no dependencies were blocked with "Needs a , which cannot be found".

Before that (build f660a86)

  • Dependencies are checked before anything runs. Each record in the plan shows what it needs: already in the target, created earlier in the run, linked at the end, or missing. Missing records are added for you, or one click adds the whole chain. A dry run no longer reports a parent "not found in target" when the same run creates it.
  • Far more accurate comparisons. Settings and lookups come from each environment's own schema, so every writable setting is compared and moved, and routing steps, rulesets, templates and assignment methods match correctly across environments.
  • Capgemini design system. A new guided flow: environments, review, plan check, dry run, apply, rollback and run history, in light and dark.

Two downloads, pick one

Needs Start it
ContactCenterALM-LocalRunner.exe (51 MB) Nothing. .NET and PowerShell 7 are inside. Double-click, type a profile name
ContactCenterALM-LocalRunner.zip (0.7 MB) PowerShell 7 (winget install --id Microsoft.PowerShell -e) Unzip, double-click Start-LocalRunner.cmd

Neither needs Node.js, npm or git: the app comes pre-built.

About the exe. It is not code-signed. The first time, SmartScreen says "Windows protected your PC": choose More info -> Run anyway. Endpoint protection (CrowdStrike, Defender for Endpoint) may stop it, because a program running PowerShell that is not powershell.exe looks suspicious to them. On a CrowdStrike laptop it ran fine by double-click and from a PowerShell window, but was killed when started from a Command Prompt. If it closes by itself, double-click it instead, or use the zip, which runs on the signed pwsh.exe.

Then

The browser opens on Setup. For each environment, enter the URL, tenant ID, client ID and client secret value from the client's app registration, and run the checks. They run one at a time, stopping at the first failure, each with what to ask the client for:

  • Tenant: the tenant ID exists
  • Sign in: client ID and secret get a token. Common errors explained, including the Secret ID entered instead of the secret Value.
  • Application user: the app registration is an enabled Application user with a security role
  • Contact Center: installed, workstreams and queues readable
  • Table access: read on every table, create/update/delete at organization level

Environments that pass show up in Compare: compare, plan, dry run, apply and rollback, the same engine as the hosted version.

Where things are stored

%LOCALAPPDATA%\CcAlm\<profile>, with secrets encrypted for your Windows user (DPAPI). The exe also unpacks itself to %TEMP%\.net and %LOCALAPPDATA%\CcAlm\runtime, and logs starts and crashes to %LOCALAPPDATA%\CcAlm\runner-exe.log.

Full guide: docs/local-runner.md