Incoming E-Mails are not Tracked in CRM

Hi all,

I’ve written a few blog posts to explain how to use tracing to troubleshoot E-Mail issues.
Here I would like to provide a series of steps to check in order to fix these issues without having to analyze any trace.

We assume that the CRM User or Queue we want to troubleshoot in CRM is using the Email Router to track Emails.
We assume also that the Test Access in the E-Mail Router Configuration Manager is working fine for this CRM User or Queue.

NB: If the above is not true, there will be soon a document on the Developer Blog to troubleshoot this.

1°) Check the CRM User / Queue properties (E-Mail Filtering Method/Incoming Profile/E-mail address/etc…).

  • For a CRM User, you need to log on the CRM Web Application as this CRM user and check in Tools \ Options \ E-Mail Tab.
    Make sure you have the proper settings here. Switch to “All e-mail messages” to facilitate troubleshooting.

PersonnalOptions

Also you can use the CrmServerReportInformation Log generated by the CrmDiagTool4.
Go to the section called “All Users Information”. Here you can find all the information you need to check (E-Mail Address, Incoming Profile, Filtering Method)

 ----------------SDK: All Users Information----------------
[Organization N°1............................]: TrevorsBangers
[ORG[1]USER[1] Fullname......................]: Peter Chimaera
[ORG[1]USER[1] DomainName....................]: TITAN\chimaera
[ORG[1]USER[1] Internal E-Mail Address.......]: chimaera@Titan.co.uk
[ORG[1]USER[1] Incoming Email DeliveryMethod.]: E-mail Router
[ORG[1]USER[1] Outcoming Email DeliveryMethod]: E-mail Router
[ORG[1]USER[1] Incoming Email FilteringMethod]: E-mail Router
[ORG[1]USER[2] Fullname......................]: John Griffith
  • For a QUEUE, you need to go to Settings \ Business Management \ Queues. Open your Queue record.

Make sure you have the proper settings here. Switch to “All e-mail messages” to facilitate troubleshooting.
Make sure all other settings are ok, the Email Address, the owner, the business unit, the Incoming profile.

NOTE: Make sure the owner of the Queue has a proper CRM Role assigned to him.

queue

Also you can use the CrmServerReportInformation Log generated by the CrmDiagTool4.
Go to the section called “All Public Queues Information”. Here you can find all the information you need to check.

 ----------------SDK: All Public Queues Information----------------
[Organization N°1......................................]: TrevorsBangers
[ORG[1]QUEUE[2] Queue Name.............................]: Support
[ORG[1]QUEUE[2] E-Mail.................................]: support@CRM4.com
[ORG[1]QUEUE[2] Business Unit..........................]: test
[ORG[1]QUEUE[2] Owner..................................]: First name Last name
[ORG[1]QUEUE[2] Convert to e-mail activities...........]: All e-mail messages
[ORG[1]QUEUE[2] E-Mail access type - Incoming..........]: E-mail Router
[ORG[1]QUEUE[2] E-Mail access type - Outgoing..........]: E-mail Router
[ORG[1]QUEUE[2] Allow credentials for the E-mail Router]: No

2°) Make sure the E-Mail Address used for your CRM User / Queue is not also used by other records (other CRM User, Account, Contact, Lead)

When CRM Receives an Email it needs to know to which CRM Record the Email will belong to. The Email received of course do not say if it is targeted to a Queue a Contact, a CRM user, etc…

So CRM needs to deal with the only information he has in the Email to perform the match: the Email Address of the recipient.

Ex: If CRM receives an email and the recipient is support@CRM4.com, it will search in the database who has an email address equal to support@CRM4.com.
If other records like an Account, Contact, User, Queue, Lead are also using support@CRM4.com in their email address field, the email will simply be rejected and will not be tracked in CRM at all.

In order to verify this, the quickest and easiest way is to do a search in the Organization Database using the following SQL Script:

 declare @emailAddress as varchar(100)

set @emailAddress = 'email address to search for'


SELECT FullName, SystemUserId, InternalEmailAddress, PersonalEMailAddress 
FROM SystemUserBase
WHERE InternalEMailAddress = @emailAddress
OR PersonalEMailAddress = @emailAddress


SELECT Name, QueueId, EMailAddress 
FROM QueueBase
WHERE EMailAddress = @emailAddress

SELECT Name, AccountId, EMailAddress1, EMailAddress2, EMailAddress3 
FROM AccountBase
WHERE EMailAddress1 = @emailAddress
OR EMailAddress2 = @emailAddress
OR EMailAddress3 = @emailAddress

SELECT FullName, ContactId, EMailAddress1, EMailAddress2, EMailAddress3 
FROM ContactBase
WHERE EMailAddress1 = @emailAddress
OR EMailAddress2 = @emailAddress
OR EMailAddress3 = @emailAddress

SELECT Subject, LeadId, EMailAddress1, EMailAddress2, EMailAddress3 
FROM LeadBase
WHERE EMailAddress1 = @emailAddress
OR EMailAddress2 = @emailAddress
OR EMailAddress3 = @emailAddress

Usage: Change the following part to match the Email Address you are searching.

Example:

 set @emailAddress = 'support@CRM4.com'

Run the search against your XXXX_MSCRM Organization Database and check if you have more than ONE result. Check if the other place where this email address is used is a User or a Contact.. etc., open this record in CRM and clear or change it’s email address.

Do this until the script returns only one result.

NOTE: Run also the script on ALL your organization databases (XXX_MSCRM, YYYY_MSCRM, AAAA_MSCRM, etc……)

These two steps are the most important, I’ll probably add other latter on.

Kind regards

Benjamin LECOQ