Category Archives: CRM
The Summit EMEA 2018 conference in Dublin is almost there and we have been preparing some tough, fun and educational questions for those who like a challenge.
The Quiz will be focus, mainly from a technical perspective, on Dynamics 365 Customer Engagement, CRM and other related technologies like Azure.
The whole Quiz will be an interactive session where you will be able to provide your answers from your mobile device and see the results in real time. We will take one question at the time, share the results in the main screen and discuss the different answers.
Our purpose is to create an entertaining contest where everyone can learn something.
But that is not all! For those who win the Quiz, there will some great awards, don’t miss it 🙂
You can join the event and add this session to your list following this link:
See you in Dublin!
Session Title: DEV02 – Dynamics 365 CE Quiz! Who Will Be the Winner?
When: Thursday, April 26. 10:30 – 12:00
Where: Wicklow Meeting Room 3
This article describes how to simulate a long operation in Dynamics 365 (CRM) using a simple custom plugin that introduces a delay using the Thread.Sleep function.
Background: recently we have been investigating an issue regarding some timeouts happening in a third party application which connects to our Dynamics 365 service. At the moment, it is difficult to tell if those timeouts are due to some slow connections to Dynamics or other reasons. In order to help us with this investigation, we are going to set the Timeout property of the OrganizationServiceProxy in the client application, which by default is 2 minutes.
Before applying this change, we also want to test it and simulate some long queries that would last longer than the client timeout limit set for the OrganizationServiceProxy. Here is where we have created this simple plugin “DelayOperation” that is going to introduce a delay for a certain number of seconds.
For testing purpose, I have prepared a simple test that creates a Task record. See below the corresponding code:
Then we have registered our “DelayOperation” plugin in the create message of the Task entity, see below this plugin registration step:
Notice we pass the number of milliseconds to be used by the Thread.Sleep function as an unsafe plugin parameter. In our example, the client would wait for 10 seconds and the plugin would delay the operation for 12 seconds, causing the client to timeout.
Finally, our “DelayOperation” plugin code is:
You can download all this code from the following Github project:
I hope you find it useful!
Time flies and suddenly 2018 will be there, when the next Summit EMEA will take place in Dublin from 24th to the 26th of April.
During the Summit EMEA, multiple users groups will participate in the conference and offer several events including presentations, essential peer-to-peer knowledge exchanges, product insight forums, and networking opportunities.
My main focus will be on the D365UG|CRMUG user group . This week we have had our first committee meeting to discuss the agenda structure and how the sessions are going to be organised, very exciting… 🙂
If you would like to be a speaker, watch this space because there will be a call for papers very soon.
I’ll keep on posting any news.
Few years ago, I started a project in Codeplex called “Dynamics CRM Custom Emails“, which allows you to send emails from a Microsoft Dynamics 365 / CRM process (e.g. workflow, action) based on an Email Template. Additionally, these emails can contain dynamic values for any entity (out-of-the-box or custom) and any type of attribute (e.g. lookup, option set, currency, etc).
Apart from just migrating the project from one place to the other, I have also updated it to the latest Dynamics 365 version.
There are some open issues in Codeplex that I would like to review, so I will try to do it before Codeplex closes and reflect them in the new Github project. I would like to thank you those guys who have collaborated and provide their feedback.
For those who has never seen this project, I would like to show you a quick example with some screenshots.
Let’s say we had the following Email Template:
We could then produce an email like this:
These would be done by a Dynamics workflow like this one:
This workflow will use the custom workflow activity provided by this solution. You can then specify the corresponding context parameters:
You will find more documentation in the Github project site:
This month my Microsoft MVP award has been renewed! So, definitely, a very positive month 🙂
During more than 6 years, I have enjoyed participating and collaborating with different community initiatives around Dynamics CRM and Microsoft technologies.
With Dynamics 365, there are plenty of things to do this year, so let’s carry on enjoying!
Last week I was running a new Dynamics 365 trial (v 220.127.116.119) and I wanted to use the Voice of the Customer module.
Based on the previous versions of this solution (v.8.x.x.x), I followed the same steps that I used to: Office 365 => Dynamics 365 Admin Portal => INSTANCES => Solutions, see below screenshot:
However, when I tried to install it from this Solutions section, the installation process just failed once and again.
After a quick call with Microsoft Support, they told me the new installation process at the APPLICATIONS tab, see below screenshot:
Once you are there, just click on MANAGE and follow the next few steps choosing your corresponding instance (whose version needs to be >=8.2). Then you can track again the installation process in the Solutions section:
Hope this saves you some time 😉
This article describes how to create a simple Dynamics 365 (CRM) web resource that would allow us to display images based on a dynamics URL. This URL would be stored in an entity attribute and the name of the attribute would passed as a parameter to the web resource.
Preparing the demo for EMEA Summit 2017, I needed to display some logos and organisations images (covers) in the Account entity.
Let me show you a picture and you will immediately get what I mean:
In our demo, we used the account entity to track the different NGOs / charities that would be part of the end solution. Each charity would have their own different logo and image cover that would be, later on, displayed in the PowerApp we also prepared.
Those images would be defined based on the following account attributes:
Solution: A simple web resource that would allow us to specify the attribute name with the URL as a parameter.
Below you can see the form definition, which got 2 web resources to host those previous images:
If we now look at the properties of each web resource, we would see they are using the same HTML web resource behind the scene, but the parameter we are passing is different. The parameter is actually the attribute name to feed the image:
And the other one:
If you want to see the code of that HTML web resource, have a look at my GitHub link.
Hope you find it useful 🙂
We noticed during the last days multiple CRM emails were not sent and they bounced back as undelivered.
This was a CRM Online 2016 implementation using the CRM Email router.
The SMTP error messages were like 550 5.XXX.YYY (e.g. 550 5.1.8; 550 5.0.350) from different providers (Gmail, Outlook, Yahoo, etc).
Using the following online tool mxtoolbox.com, we could quickly confirm the server was blacklisted.
As Microsoft recommendation (see the following article), we had to raise a support ticket to delist it (please see below new update).
Unfortunately, the other challenge was to recover the emails, as Microsoft CRM Online 2016 doesn’t report soft or hard bounces, and all emails are marked as Sent. Some interesting ideas came around this to resolve it, I’ll try to share it in a future post 🙂
***More updates (12/01/2017):
Bounces carried on happening and after more investigation, we noticed some of the new IP’s were not added into the SPF (Sender Policy Framework) records. See the following article for more information:
After updating the SPF records, bounces carried on coming. More IP’s needed to be delisted again, but this time the Microsoft engineer pointed us to a new online tool:
This online tool allows you to delist IP’s in 3 easy steps.
But the challenge didn’t come to an end. It looks like the number of sent emails may be too high… This is where you should check the following recommendations:
Creating scheduled workflows has always been a challenge in Dynamics
CRM 365. The community and ISVs have offered several original options, but there is not yet an official out-of-the-box option. This article brings another alternative to the table using Microsoft Flows.
A scheduled workflow is the one that runs at a certain arranged time and it may recur to run again after a period of time. If you want to understand more about this challenge and how our CRM community has resolved it so far, have a look at the following articles:
Microsoft Flow offers the option to create Recurrence jobs. This can be used to schedule and trigger actions in Dynamics 365, like retrieve, create or update records (see available actions). So, using this functionality you already have a good alternative to create your own scheduled workflows without development effort. You can see some examples in the following article as well as in these Dynamics 365 Flow templates.
The other alternative would be a mix solution where a recurrence Microsoft flow creates a custom Dynamics 365 “Scheduled Job” record and this triggers the corresponding Dynamics 365 workflow. The “Scheduled Job” entity would have attributes like “Process Name”, “Run as” (e.g. system user name), “Query scope” (e.g. FetchXML or view name), …, to specify what and how to run the workflow. This option would require additional development, either a plugin or a custom workflow activity to call on demand the given process, but it would also allow you to reuse the logic and capabilities you already have within Dynamics 365.
Hope you find this article useful. Looking forward to hearing your feedback.