Outlook Plug-In for custom CRM - plugins

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.

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.

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.

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

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

Related

What is the best way to programmatically extract text from an email from a additional inbox?

I recently started working at an IT company as a support agent and one of the things we do is managing the backup of our clients' servers.
It's all working nicely, but one part is just terrible, which is the backup log. The backup log is a excel file with a list of all the clients and for each of them a list of dates and whether or not the backup has succeeded on that date. The data in that document comes from emails rapports that are automatically sent when the backup finishes.
But here comes the bad part: Once in a week there is an employee who checks ALL THE EMAILS and manually fills the backup log. This was too much for me, especially knowing that we only have about 5 employees.
Solution: Make a script that does it for you. Yeah, I know and I think I'm capable of doing that, but there's a few things that I'm not sure about and I hope you guys could help me with it:
The mails are all in a different folders in an inbox that I had to add to my outlook manually and I don't know how I can programmatically reach it.
I don't know in what language I should use for this. I'm able to do it in a lot of languages, but I don't know which one suits this best
These are the only two things that I don't know and I would really appreciate it if you could help me with this.
EDIT:
The server is an exchange server with IMAP enabled. I eat java for breakfast and I've used JavaMail before, so I think I'll go with that, thanks
This is a pretty open-ended question....
You should pick a language that you're comfortable with and that has a good email support library, e.g., JavaMail for Java.
If the messages are in an Exchange server that has enabled IMAP support, you should be able to read the messages using JavaMail or any other library that support IMAP. If the server only supports the Microsoft proprietary protocol, you have fewer choices.
We really need to know more about the mail server you're using to offer much more guidance.

Programmatically add an alert for a user in Sharepoint Online (Office 365)

We have an Office 365/Sharepoint Online instance, and a complicated Ticket system that we've migrated there. However, we don't seem to have the ability to set up "Everyone" to receive alerts when they're listed in a ticket (via custom fields). We could manually add each and every person in the company to a list view to accomplish what we want, but that is both tedious and silly. I've done some research, and talked with a consultant, and it appears that we may not have access to create Alerts any other way than manually.
Does anyone have any insight into this issue? I don't care if the solution is .NET, Powershell, or even fancy javascript. Any help would be appreciated.

Distributing media query emails through Exchange without Outlook 2007

I have a problem. We've designed some beautiful, responsive email templates that work across mobile/tablet using media queries but contain MSO conditionals to work on Outlook. Turns out, the client now claims they can only send through an exchange-based mailing list. Ouch.
Problem:
If I send from Mac OSX's Mail, it retains the media queries and works (they are then stripped in Outlook when opened by receiver, but that's inevitable)
If I send from Outlook, it strips media queries completely and sends without them
From my thinking, the only solutions are:
Distribute through a different email client that supports both viewport media queries such as Mac Mail and allows connection to Exchange (know any? Thunderbird?)
Somehow obtain the mailing list and distribute through MailChimp or similar
Appreciate any advice anyone may have.
Depends on how good you care in code and whether you'll need clients to access your system. You can go with user friendly, feature packed options like Mailchimp or Campaign Monitor.
Much cheaper but less featured (relies heavily on you integrating through their api) is Sendgrid
If you want to stick to free, PHPList might be a good option.

How to save Lync conversation history when Corp has blocked this feature?

I am using Lync 2010 (4.0.7577.4356), which we use on my small development team for IM'ing. Lots of technical Q&A are handled through this program and lots of other items that need to be documented. Unfortunately, our parent company has a policy that turns off "Converation History", so once the window is closed, it's gone.
I've done a fair bit of research and I haven't found a way to save this data since the settings have been made at our parent Corporation's level (through Active Directory, or whatever). This is information that we need and even my boss has tried finding a way to save this information (everything short of copy-pasting everything before closing the window or computer).
How can I accomplish this task? Are there any programs out there (freeware or otherwise) that can save these conversations? Does anyone know of a way that I can hook up Lync (the instant messaging module) to another instant messenger (GTalk, Jabber, ICQ, Yahoo, or whatever) -- then record each message from there? I'm a software developer, so if anyone knows of a means of communicating with Lync, and is able to access the messages, that would help too!
Anything at this point would help... thanks in advance!!!
-Panuvin
Try this https://github.com/bujocek/LyncIMLocalHistory. I've used the Tom Morgans answer and created own local lync (Skype for Business) conversation history tracker.
You can build it from source or just unpack and run latest release here: https://github.com/bujocek/LyncIMLocalHistory/releases
There's a client-side Lync SDK, which is pretty easy to use if you're already a .NET developer.
It's easier to do something like this and have it running on every member of your small dev team's machine alongside Lync - easier than trying to re-invent a central conversation store.
I recently blogged about recording the length and status of Conversations, and also about identifying different sorts of Call within the Conversation (you'd be looking for Instant Message Call type).
After that, you'd need to subscribe to the Flow and catch every message to and fro, and log them to a database or whatever. There's a really good book which could help you with this: Unified Communications with Microsoft Lync. If you're serious about doing Lync development, this is definitely the book for you!
With Lync 2013, CTRL+S will save the current tab to your Outlook/Exchange Conversation History folder. I'm not certain if this works with 2010.
You may try this: https://github.com/PhilippeRaemy/LyncLog.
This tool saves the conversations in text files, using a file naming convention that makes it easy to identify the time and participants.

Outlook Emails to assigning database

I'm def not looking for someone to do this project for me, just bouncing off some ideas with a guru or two.
I have emails going into a global box that is shared by a few employees. I need to find a better way to assign the work out. In the past, it was grab and go. Today, an employee assigns the work out.
I'm trying to find a simple way using maybe Excel or Access, that I could copy/drag the email and it would provide who should work it and how much work they have done by week/month/year.
It's not possible to use an inhouse ticketing system, because it is non employees that send mail to this inbox, so they would not have access to using the in house ticketing system.
Would it be easily possible to design something like this or is this a more daunting task? What software would you recommend or method would you use?
Thanks for your time.
I recommend converting emails to Tickets, using a CRM/ticketing system with such feature. It would save you the hassle of developing and mantaining custom code, for a commom feature needed not only by you, but many other firms:
A quick search for "convert emails to tickets" yielded:
https://wiki.vtiger.com/index.php/Mail_Converter
http://community.geminiplatform.com/blogs/15/how-to-convert-emails-to-tickets-with-gemini
Both vTiger and Gemini are free to use.