views:

1684

answers:

4

I would like to write a plug-in that will allow a custom written CRM to read and write to their local Outlook client. I know that this poses a security concern. But, my clients are asking that their CRM "be connected" to Outlook. They would like to be able to do the following:

A) When a contact sends them an email (reply or free standing email), they'd like the details of this email to go INTO the CRM. Yep. They would like me to save the body, time and date it was sent, etc.
B) They want to be able to send new emails (or replies to existing emails) from within the CRM itself. Basically, "a form that looks like Outlook's send/reply email form".
C) Want the ability to search for contacts and the related emails with a search for tags/keywords facility. (i.e. if a product name or code appears in an email then they want the email returned in the search). D) Having performed a search of many contacts, they will want to prepare a mailer and shoot out some sort of email announcement to their qualified leads. This could be 50, 100, or more persons. So its got to be able to allow bulk mailing. E) Given a list of new prospects, that arent currently contacts in the CRM, they will want to do the same and if they get replies from this mailer to the prospects, the will want the replies to be saved in the DB and contacts be inserted into the DB. F) They would like to be able to utilize the calendar and task list facilities of Outlook from the CRM, as well.

More or less, they want this pretty basic (as it is today) CRM that I created to integrate with Outlook and have it do so seamlessly as if it was an add-on to the CRM. A plug-in is what I am thinking...

But, I dont know where to begin. My environment is Windows XP/Vista and is going to be ASP.NET and I am going to use the VB.NET language to accomplish this. What do I need? Are there resources out there that can describe how to build a plug-in to Outlook as I have been asked to? This is not Exchange, none of the clients use exchange (not so far). They all run Outlook. Mostly 2003. Most clients are XP right now but some are upgrading to Vista.

For some reason I cant seem to wrap my head around this. I think the whole security issue is thwarting my ability to see past what is probably a simple thing. The client doesnt want to be prompted by any security messages asking them if they are sure they want to send 382 emails to their contacts. Not once and certainly not 382 times.

Where do I begin? I've searched the internet for similar but mainly what I found are already-written products and I've got to write this from scratch.

+3  A: 

You should take a look at the Visual Studio for Office Tools. You can easily create add-ins for Outlook, Word, Excel ... pretty much the entire Microsoft Office family of products.

You can also take a look at Add-In Express, but I didn't have much luck with their controls, and the VSTO for 2008 is extremely easy to use.

mattruma
I am not well versed in VSTO but will become so. :) If an add-in for Outlook can be 'connected' to that CRM I built, then very cool.
Optimal Solutions
+6  A: 

I was part of the team that created the original Outlook Plug-In for Frankley Covey time management tools. It was quite an adventure!

The first thing I would do is make your client pick a version of Outlook, and stick with it. DO NOT let the client add support for additional Outlook versions, unless they are willing to pay for it, and willing to have the delivery time pushed back to a reasonable date.

The team I was with swore by the Slipstick website. There are several solutions to the Outlook security prompts in there.

If you can, talk to Microsoft and see if they can get you the object model for the specific version of Outlook you will be working with. We had this model printed on a large scale color printer and put it on a large wall. IIRC, it was something like 7'x5' object map. This helped tons.

You might end up creating specific classifications/namespaces for your Outlook code. It's been a while, but I remember something about a dot notation like .Email, .Task, and several others. I had to create a couple new dot namespaces for the Outlook Task object.

As razorfish noted, look up the new Visual Studio For Office Tools. This has made some stuff a lot easier.

Talk to your client and find out if they will need to connect to Exchange servers. There were two distinct ways of building Plug-ins. One mode only worked with Outlook itself, while the other talked with Exchange. This is very important to your development efforts. The models are VERY different and will cost you extra time if you pick the wrong one.

EDIT: There are a couple books that were helpful with this. The books are for Outlook 2000, so you might want to see if there are updated versions.

Building Applications with Microsoft Outlook 2000 Technical Reference

Building Applications using Outlook 2000, CDO, Exchange, and Visual Basic

Both have a lot of information on how to do deep integrations with Outlook.

hectorsosajr
Thank you Hector! And I shall upvote you when I get more votes later as well! Good info. Slipstick - cool site!
Optimal Solutions
We're going to stick with OL2003 and XP.
Optimal Solutions
hectorsosajr
+2  A: 

Check out Kayxo Insight. It's a framework for creating the kind of solution you are describing.

Alejandro Bologna
Thank you for that. It looks interesting. I've got it bookmarked.
Optimal Solutions
+1  A: 

Check out www.softomate.com they offer plugins and integration solutions for various projects.

Tom Handelman