Friday, April 12, 2013

Email and Process Automation with Office 365

New Site Mailboxes

I have been asked many times about email enabled document libraries in SharePoint Online. With the new SharePoint Online (SharePoint 2013 in the cloud) there are new Site Mailboxes.

Site mailboxes are a rather interesting solutions as it brings together the ability to both documents and emails into the same user interface, while continuing to leverage both Exchange and SharePoint to store data.

Here are some really good articles about Site Mailboxes:

You can read about many features but the big one is emailing items to the site mailbox.

Initiating a Process Based on Email Arrival

The next question I have come up against is now that we can email items to a site mailbox, can we do any automation when an item arrives (i.e. some code needs to be executed or a process initiated)? That is the part that must be thought through.

As you see in the picture below and read the referenced articles I provided, you will see that some data is stored in Exchange and some is stored in SharePoint. Emailing to a Site Mailbox will store the item in Exchange while dragging / dropping a file through Outlook to a Site Mailbox will store the document in SharePoint. Knowing that, you would have to have code implemented in two places.

Hybrid Configuration Engine

What are the options?

For SharePoint Online it is simple enough to create an event receiver or configure the document library to initiate workflow when an item arrives.

For Exchange Online, it is possible to use Exchange Web Services (EWS) is it possible to write code that will listen for arrivals of emails and then execute code to do “something”. Please read following on setting up a streaming subscription to a Exchange mailbox using Exchange Web Services (EWS) Managed API - http://code.msdn.microsoft.com/Exchange-2013-Set-push-82738cc5.

Areas to Get Started

In Office 365, if you really need to build a solution that will initiate automated business processes based on an arrival of an email, it would be better to start with EWS. Create a mailbox that emails would be sent to. When email arrives your code will be connected to Exchange through EWS which can connect with line of business systems across the enterprise, integrate to SharePoint Online through remote APIs/Web Services, etc.

If you just need to support business processes when email arrives but does not be highly automated you have lots of options:

  • Site Mailboxes – Which we have already discussed. This is a great solutions to enable group collaboration around shared email and document data. This works great for projects.
  • Shared Mailboxes – This is a great solution where an email address can be created and then allow multiple to monitor and then respond from that email address.
  • Distribution Groups – Email is sent and stored in each person’s individual mailbox.
  • Public Folders – Yes they are now support on Exchange Online. They have typically been used to storage email and allow people to centrally access it. Public folders are not a recommended solution for storing large files nor is it a document management system.

No comments: