April 2018

Visualize CRM Solution Deployments across Environments

By |2018-04-16T22:18:39+00:00April 16th, 2018|Azure Functions, CRM, Functions|

One of the things I love about Azure functions is that they are great for scenarios where you need to use a bit of code to do something useful but its not a real world production component, for example if it's a utility to help the team work better. In this case one of the problems I had was allowing the team to visualise CRM deployments across environments so it was easy to see what was deployed where. [...]

March 2018

Powershell to setup Azure AD B2C Guests as users in CRM

By |2018-03-05T22:30:20+00:00March 5th, 2018|Azure, CRM|

Imagine a scenario where you want to add guest users from another Azure AD tenant to your own tenant so that they can use your CRM instance.  This could be a B2B collaboration story or it could also be a story of mergers and acqusitions. In this case we have a business with a parent and 2 child organisations.  The parent organisation is creating a CRM solution and workers from the 2 child organisations will all work together [...]

February 2018

When data in CRM is updated I want to send it to another application

By |2019-04-04T11:16:50+00:00February 11th, 2018|Azure, CRM, Functions, Logic App, Service Bus|

Having worked a lot with Dynamics CRM/365 over the last few years I thought it would be interesting to discuss a common use case and some of the architecture patterns you may consider to implement the solution. Lets imagine a scenario where the business requirement is as follows: The user will be updating a customers record in Dynamics 365 When the user saves the change we need the change to be synchronised with the billing system Now at [...]

September 2017

Dynamics CRM Online Availability and Recovery

By |2017-09-27T22:07:13+00:00September 27th, 2017|CRM, Uncategorized|

Having worked with a number of customers over the last few years who use CRM Online I have found that during the project lifecycle the discussion often comes up that we have chosen the SaaS version of CRM but what does that mean in terms of how high availability works and disaster recovery. While the easiest way to look at it is that you have outsourced the problem to Microsoft who will take this on for you allowing [...]

July 2017

Custom CRM Portals Super-Charged by an Azure Data Layer

By |2017-07-22T10:40:54+00:00July 22nd, 2017|API, Azure, BizTalk, CRM, Logic App, Service Bus, Uncategorized|

I wanted to talk a little about the architecture I designed recently for a Dynamics CRM + Portal + Integration project. In the initial stages of the project a number of options were considered for a Portal (or group of portals) which would support staff, students and other users which would integrate with Dynamics CRM and other applications in the application estate. One of the challenges I could see coming up in the architecture was the level of [...]

March 2017

Dealing with Bad Data in Integration Solutions

By |2017-03-09T16:57:04+00:00March 9th, 2017|BizTalk, CRM, Uncategorized|

When we build integration solutions one of the biggest challenges we face is "sh!t in sh!t out". Explained more eloquently we often have line of business systems which have some poor data in it and then we have to massage this and work around it in the integration solution so that the receivers of the data don't break when they get that data. Also sometimes the receiver doesn't break but its functionality is impaired by poor data. Having [...]

November 2014

Streaming Download from CRM in BizTalk

By |2014-12-30T23:25:20+00:00November 11th, 2014|BizTalk, CRM|

Recently I've been working on some projects which involve integration with Dynamics CRM Online.  While CRM seems a pretty cool system to use there are some complexities that you need to deal with from an integration perspective to be able to effectively integrate with it.  This complexity mainly comes because CRM provides a highly configurable system for your users so the trade off is that when you integrate with it there will be some complexities around generic data [...]