Now let’s shift our focus on troubleshooting to incoming email issues. This is where the Email Router is going to connect to a mailbox and process the mail. There are a few things to take into consideration when we talk about troubleshooting incoming emails. The first one is to figure out if the user configuration is set to use Email Router or Forward Mailbox. Each of these have different troubleshooting steps.
Troubleshooting the Incoming Email option for Email Router is relatively simple. It’s very similar to the Outgoing troubleshooting steps. For this route, the user’s “Incoming Email” option must be set to Email Router:
Since this user is configured to use the Email Router for “Incoming Email” lets refer to the following mail flow diagram referenced from the earlier blog post (Email Router Demystified – Explanation) in the section labeled “E-mail Router – Incoming E-mails”:
Each step constitutes a potential problem so let’s break down each step below:
Someone must send an email to the user. Now, it’s important to ensure that the Email Router is connecting to the same mail profile that the user is using within Outlook. I have actually run into cases where the user’s mail profile is configured for a different mailbox within Outlook and the Email Router is configured to use another one. Typically, this is seen where the Email Address for the user in CRM does not match what is in Outlook.
The Email Router connects to the user’s mailbox. There are a few things that could be an issue here:
Connecting to the user’s mailbox: This is done by what is specified in the Incoming profile, specifically what is set under Access Credentials.
If Access Credentials is set to Other Specified, then this is going to be using a service account or the user’s own credentials to connect to the mailbox. If using a service account, that account must have permissions to access user’s mailboxes.
You can give permissions, within Exchange, per mailbox using the Add-MailboxPermission or you can set the service account to use a Role Group such as View-only Organization Management. However it is done, the credentials must allow for GetFolder and GetItem requests within the mailbox.
Exchange is not the only protocol we can use to process incoming emails. We can use POP3 as well. In this case, you need to work with the POP3 provider to determine how to give access to a service account to other user’s mailbox
User has not specified credentials in the Mailbox profile: If you have defined the Access Credentials within the Email Router to use User Specified, the user must enter in their credentials within their mailbox profile
The user is not listed in the Email Router Configuration Manager after clicking on Load Data: This could be due to the Email Access Configuration for the user not set to Email Router for Outgoing or the user’s email address has not been approved.
Lastly, once the Email Router has processed the inbox and it has items to send to CRM, it must connect to CRM and query to see if the email should be a CRM email. A user’s personal options dictate what emails make it into CRM. If we go into the Personal Options for Email, what is the option for “Select the email messages to track in Microsoft Dynamics CRM”? Based on the setting determines what emails are created or promoted into CRM:
All email messages – This will promote every incoming email the user receives
Email messages in response to CRM email – This will promote only emails that were either sent out of CRM or they were in response to an email that was tracked within the CRM Outlook client
Email messages from CRM Leads, Contacts and Accounts – This will promote any emails that have an email address that correlate to a Lead, Contact, or Account
Email messages from CRM records that are email enabled – This will promote any emails that have an email address to any CRM records that are email enabled.
Additionally, if you are sending emails between users and you want both the outgoing and incoming emails to be created into Microsoft Dynamics CRM, you must check the Email System Setting for “Track emails sent between CRM users as two activities”
If the user’s profile for “Incoming Email” is set to Forward Mailbox, then this will mean that the Email Router is going to be connecting to a Forward Mailbox and processing email from that mailbox:
This would mean that we would need to refer to the following mail flow diagram referenced from the earlier blog post (Email Router Demystified – Explanation) in the section labeled “Forward Mailbox”:
Again, each one of these steps indicate a potential break point in the email routing process for the forward mailbox. You’ll notice that this is very similar to the Email Router method except that the email router is no longer connecting directly to a user’s mailbox but to a forward mailbox. Additionally, emails are being forwarded as an attachment from the user mailbox into the forward mailbox. Hence why we call it the forward mailbox.
Since most of what we talked about previous applies to the Forward Mailbox option, I will simply highlight them rather than going through those steps in detail:
Someone must send an email to the user.
The email is being forwarded as an attachment from the primary user’s mailbox into the forward mailbox. We use the Rule Deployment Wizard to try and help to automate this task by applying the forwarding rules programmatically for users. However, there are situations where the Rule Deployment Wizard does not work and you must manually create this rule. The bare necessities of the rule is that you forward the email as an attachment to the mailbox you designated as the forward mailbox:
The Email Router connects to the Forward Mailbox. The Forward Mailbox is defined within the Email Router Configuration Manager:
Lastly, once the Email Router has processed the forward mailbox and it has items to send to CRM, it must connect to CRM and query to see if the email should be a CRM email. A user’s personal options dictate what emails make it into CRM as we discussed above.
Once the Email Router has been able to process the email for the forward mailbox, it has the ability to delete the message out of the mailbox for the forward mailbox as long as the option within the Forward Mailbox profile has been set: This helps maintain the size of the forward mailbox and not to retain emails that are unnecessary for the forward mailbox.
So now that we understand the various breakpoints, we can now determine what tools we can use based on the different Incoming protocols being used. Troubleshooting incoming issues are the same as troubleshooting outgoing email issues. Our two options, realistically, is Exchange Web Services (EWS) and POP3.
When we are connecting to Exchange, we are connecting using Exchange Web Services. We’ve already seen how we can troubleshoot EWS issues by using Fiddler and by using EWS Editor.
Troubleshooting POP3 issues are like troubleshooting SMTP issues. To troubleshoot POP3 issues, we use a network sniffer like Microsoft Network Monitor (NetMon).
Demo: Inline Visualizations in Microsoft Dynamics CRM 2011
The ability to create "Inline Visualizations" is a rich new feature in Microsoft Dynamics® CRM 2011. With Inline Visualizations, you can leverage real-time data analytics to create and share business information, in a visual way, complete with drill-down capabilities. Armed with this new way to look at information, you can more easily uncover patterns and insights that are important to your organization.
Microsoft Dynamics CRM 2011: Creating a Planning Activity
Process control in Microsoft Dynamics CRM 2011
This demo shows the different ways in which managers can gain greater control of their business processes using Microsoft Dynamics CRM 2011.
Dynamics CRM 2011 - What's New Session 1: Workflows
CRM 2011 Workflows -- or "Processes" as they're now called -- are even better than they were in 4.0. One of the biggest improvements is the addition of a "Dialog" category of process, which allows you to create a user experience -- prompts and responses -- as part of an automated process. That's what I focused on in this session. More to come in later sessions!
Feedback And Rating in Dynamics CRM 2016 Update1
A new entity called “Feedback” has been introduced in Dynamics CRM 2016 Update 1. The purpose of adding this entity is to provide the feedback and rating for particular entity in CRM. This is useful for the organizations for tracking the feedback for the product they are selling, or support/services that they are providing to the customers. This Feedback and Rating in Dynamics CRM 2016 helps to improve the product’s quality or customer experience with your organization.
Let us see how we can use this entity.
Assign Privileges for Feedback Entity:
For using the Feedback entity, first you need to make sure that you have the Read, Create, Update privileges for this entity.
As you can see in the above screenshot, we have given all the privileges for the Feedback entity at Business Unit level for the security role “Salesperson” and we have assigned this security role to the user “Test User1”.
Enable Entity for Feedback:
Once the privileges have been assigned for the Feedback entity, the next step is to enable entity for Feedback. For this go to Settings >> Customizations >> Select entity for which you want to enable Feedback >> Under Communication & Collaboration >> Check “Feeedback” checkbox.
As you can see in the above screenshot, we have enabled the Product entity for the Feedback by ticking the check box provided for the Feedback.
So now, the Feedback entity will appear in the associated view of the Product entity and you can create Feedback for the Product entity.
So now, we can add a Feedback for Product. Click on “ADD NEW FEEDBACK” of the associated grid view.
Once we click on the Feedback, a Feedback entity Form will be opened where you can specify the below information.
Title: A short title for the Feedback, specifying parameter for response.
Regarding: The Feedback created for the entity. In our case, it is Product Exchange Online (Sample).
Source: Here you can select two options, Internal or Portal. For example, if you are capturing the Feedback from within the CRM i.e. through phone or email then you can select Source as Internal. In addition, you can add more options to this field as per your requirement.
Comments: Comments for the Feedback being created.
Rating: A number to specify how useful the product is.
Minimum Rating and Maximum Rating: Define the minimum and maximum rating numbers for the rating scale. For example, in our case, we are using the rating scale as 1-10, then minimum rating as 1 and maximum rating as 10 can be provided.
Normalized Rating: The value for this field is auto calculated, as this is the calculated field. The calculation is done based on the below formula.
However, you can change the calculation for the Normalized Rating by changing the formula for this field from Customizations.
Created By (Contact): It is the customer contact on behalf of whom you are creating a feedback.
Closed By: This field gets automatically populated with the user who deactivates the Feedback record.
Closed On: This field gets auto populated with the date and time when the user deactivates the Feedback record.
When you deactivate the Feedback, it will ask if you want to close this feedback as Closed or Rejected.
If you select the Status as Closed then the Status Reason of the Feedback changes to Closed and if you select the Status as Rejected then the Status Reason of the Feedback changes to Rejected.
As you can see in the above screenshot that once we have deactivated the Feedback, Closed By and Closed On populates automatically.
This blog explains about the newly added entity “Feedback” which is a useful entity where you can provide the rating and calculate the rating as per your requirement. Creating Feedback will help to track or improve the quality of the services or the products being sold by your organization and improve the customer experience.
Dynamics CRM 2011 Goals - Sales Goals
This will show you how to create a sales goal suitable for an individual sales rep, and then how to create a team goal. The team goal demo illustrates the important and initially confusing concept of a "Rollup Query".
Order Management : Fields on the Order Form
Listed below are the default fields on the Order form in Microsoft Dynamics CRM:
Order ID: Order number for customer reference and to use in search. The number cannot be modified.
Name: Descriptive name for the order.
Currency: Local currency for the record to make sure budgets are reported in the correct currency.
Price List: Price list associated with this record to make sure the products associated with the campaign are offered at the correct prices.
Prices Locked: Status of prices specified on the invoice. They may be locked from any further updates or unlocked.
Requested Delivery: Delivery date requested by the customer for all products in the order.
Date Fulfilled: Date that all or part of the order was shipped to the customer.
Services required for debugging a Plugin?
a. Running the application in online mode - w3wp.exe b. Running the application in offline mode - Microsoft.Crm.Application.Hoster.exe c. Asynchronous Registered Plug-ins - CrmAsyncService.exe d. Sandbox (Isolation Mode) - Microsoft.Crm.Sandbox.WorkerProcess.exe
Error Handling in Plug-ins
For synchronous plug-ins, the Microsoft Dynamics CRM platform handles exceptions passed back to the platform by displaying an error message in a dialog of the web application user interface.
For asynchronous plug-ins, the exception message is written to a System Job (AsyncOperation) record.
For plug-ins not registered in the sandbox, the exception message (System.Exception.Message) is also written to the Application event log on the server that runs the plug-in.
Sandboxed plug-ins should use tracing.
Tracing is to provide isolated (sandboxed) plug-ins and custom workflow activities with a way to output runtime information when an exception is thrown because isolated plug-ins and custom workflow activities cannot write information to the system event log or the file system.
The tracing service was implemented to provide sandboxed plug-ins and custom workflow activities with a means to output run-time information when an exception is thrown. In addition, tracing is also supported in plug-ins that is not sandboxed.