Microsoft CRM Customization - processing in/out-going email messages
by: Andrew Karasev
We would like to give you several situations, when you may need custom development and programming to improve Microsoft CRM functionality. This overview is for programmer, software developer, IT specialist, database administrator.
Microsoft CRM, the CRM application from Microsoft Business Solutions utilizes almost all the recent Microsoft technologies: .Net (it is actually written in C#.Net with HTML and Javascript at the web client side plus has Microsoft CRM SDK with C# and partially VB.Net samples), Microsoft SQL Server, Microsoft Exchange 2003/2000 and others. Now to give you brief review from the workflow and messages - you can send email directly from Account, Contact or Lead and it will be processed by Microsoft CRM-Exchange connector. This email will have GUID in the message header. When addressee answers the email - it will be processed by the connector - it will recognize the GUID and will find the original activity and will attach this email as closed activity to the original object: contact, account or lead. This is very nice feature, but in the real world you may have these situations:
1. CRM user will not use CRM interface and will send email from his/her Outlook. Addressee will receive and respond and these emails will not be handled by Microsoft CRM-Exchange connector. They will not have GUID and connector has no idea on what to do with them.
2. Imagine, that you have Account Best Corporation, with contact person John
[email protected]. Now new person in Best Corporation, Susan sends you message from
[email protected] - and her email will not be connected to your Best Corporation account, because this email doesn't have GUID and it also doesn't have matching email in the contact person. So - it is probably nice to catch emails by domain name as well, say - all the emails, coming from
www.bestcorporation.com should be attached to Best Corporation account.
3. Now - your sales rep initiated the first email to the client from Microsoft CRM and got response, transferred back into CRM account. Then he occasionally replied on the reply from outlook - this reply, having GUID will be replied back and not transferred into MS CRM, because MS Exchange connector "thinks" that this message was already replied by the first reply.
4. To decrease the possibility that users will use outlook to send new messages and answer the messages from there - you would probably like the idea to delete them from MS Exchange database when they are transferred to the CRM. In this case they will not be seen in MS Outlook (We are not talking about Microsoft CRM Outlook client, where you actually see CRM data and objects)
If you are programmer or software developer - you can actually program these advancements and we'll give you the direction.
This technique is COM+ applications, registered as Microsoft Exchange sinks or handlers. You can use VisualStudio.Net, but you will not have debugging available, because these applications will work as event handlers. Microsoft Exchange allows you to alter it's logic in the events, exposed for custom handling. Incoming emails should be handled, when ONSYNCSAVE Microsoft Exchange Database event is fired before the commitment. You use Microsoft CRM SDK to create the email activity. You should use direct SQL update to flag the activity as closed (however not recommended by Microsoft - but Microsoft CRM SDK doesn't have the method to close the activity - so you really don't have an option from SDK side). Outgoing emails should be handled with so-called transport events firing, which is more complex and less documented part of Microsoft Exchange SDK.
Happy customizing! if you want us to do the job - give us a call 1-866-528-0577!
[email protected]About The Author
Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies – USA nationwide Microsoft CRM, Microsoft Great Plains customization partner, based in Chicago, California, Colorado, Arizona, Texas, Minnesota, New York, Georgia and Florida, Canada, UK, Australia and having locations in multiple states and internationally (
www.albaspectrum.com), he is Great Plains Dexterity, SQL, C# and VB.Net, Crystal Reports and Microsoft CRM SDK developer.
[email protected]