Sooner of later most SAAS applications find they need to integrate with Microsoft’s ecosystem to satisfy their customer’s needs. This post looks at the four technologies which are available to integrate with Microsoft Outlook, Exchange, and Office 365, and starts to examine when each might be used.
Bespoke Development
Changing the icon for an Outlook message
We were recently asked to change the icon showing in Outlook for messages when they had been filed to a CRM system.
The image below shows an example of the icons in Outlook. The top message has been forwarded and shows the icon for a forwarded message. The second message is a copy of the first, but the icon has been changed to one of the standard icons.
It is possible to set the icon to one of the many pre-defined icons within Outlook. The full list of icons is shown below.
In order to change the icon, the field PR_ICON_INDEX must be programatically set to the value of the required icon.
This way, when a user has carried out a particular action on a message, the message icon can be changed so that the user knows it has been completed.
What can Outlook-for-Mac add-ins do?
Outlook 2016 for Mac has been able to install add-ins since late 2016, and they are proving to be a welcome addition. Previously missing from Outlook for Mac, add-ins now makes Outlook a more competitive option for users who are looking for more than just email from their email client; more a central hub for the office work space.
Davton create add-ins for Software as a Service providers to resell or offer as part of their service. In this blog we are going to look at what features and functions are possible to integrate into Outlook for Mac, by looking at examples of existing add-ins. We will focus on what add-ins offer the user and any limitations. (For a general overview of add-ins for Outlook see here).
Types of Add-in
Add-ins extend email and calendar items, and there are two types of add-in available for Macs, compared to three for PCs.
- Ribbon menu add-ins with a task pane – show as buttons in the Outlook ribbon menu, with potential to open a panel in the right hand side for more flexible display/data capture.
- Contextual add-ins with an add-in card – show up above the message and only show when their ‘context’ is valid. For example if there is an address in the message.
- (The missing type not available in Outlook for Mac is Module Extensions – which replace the whole Outlook window with a new window)
Processing emails and appointments
Outlook for Mac add-ins can can ‘Grab’ information from an email or appointment and process it. A typical example would be to log an email to a CRM system, or use the information in the mail to create a task. A button can be added to the Ribbon tab to start the process and open a panel for any interactions or required edits etc.
This technique can be used to log emails to a range of systems such as accounting, project management, IT helpdesks and CRM. Often, with just one click you can create a card or task and it is logged into the system. It is a simple, but effective productivity improvement.
Logging emails directly from Outlook
The Trello add-in is a good example. It is a Ribbon Menu add-in with a task pane.
To use it – highlight your required email and click the Trello icon in the ribbon.
This will open the right hand task pane from where you can select the project and list to add the card to. The subject of the email becomes the subject of the card and email body is the description. Both of these fields are editable.
Finally, you can add a due date if required.
Once the card is added you can access the card from the task pane and make any further updates. (Note: if Trello had implemented the ability to assign the work to a team member it would be even better!)
This whole process makes adding a card to Trello from an email a quick process. A nice final touch is the notification that says the email has been added to Trello.
Inserting text into an email or meeting request
Outlook for Mac add-ins can can insert text into Emails and appointments. Again a button can be added to the ribbon to start the process and open a panel for any interactions or required edits etc. A classic use for this is to create meeting invites, but it could also be to insert standard text or template data into emails.
Meetings are one of the most popular uses of Outlook add-ins. With the click of a button, template text can be inserted into the body of a new meeting Item. This template can also have text that is created ‘on the fly’, such as a new pin number for each new conference, and can be updated if required.
An example of this is the Con-Flab conference calling add-in. Clicking the icon in the main ribbon opens the task pane; clicking another button in the task pane generates the text to be inserted.
In Outlook for Mac, there is a difference between what is possible when using the Main outlook window (Explorer) or when viewing a single window opened with just one message (Inspector). The text to be inserted can be created in the right hand tab, but it can only be automatically inserted into the appointment in an inspector view. In Explorer view the user must manually copy the text from the right hand panel and paste it into the appointment.
Main Outlook Window (Explorer View)
You can see below that we are viewing the message in the reading pane of the main Outlook window. (This is called the Explorer view.)
Individual Appointment (Inspector View)
By creating a new meeting message below, we have opened an Inspector window. When we click on ‘Create conference’ the task pane opens. There is an option to enter a name for your conference. If details are entered, this will be inserted into the subject line text.
Clicking on ‘Create’ sees the same text inserted into the task pane, but also inserts the conference call telephone numbers and pin number.
This example shows a meeting, but the text could just as easily be a standard description of a product for a quotation email, or any other text requiring to be inserted.
Find contextual information in an email
Contextual add-ins ‘review’ the information in an email and give the user feedback. They are opened from the bar at the top of the email and present the user with information.
A good example is Bing Maps. The ‘Context’ for Bing Maps is whenever it identifies what it thinks is an address in the body of the email. If it finds one, it offers the user to open up a map of the location (North America only currently).
Here you can see that the Bing Maps add-in has located an address and inserted it into the add-in card, pinpointing the address on the map. There are also options in the bottom left of the card to get directions and view a full size map. These open in a new browser window.
Another example is Ask Emma. This add-in reviews the content of the email and reports back the tone of the email. It can be a received email or one you have composed.(Note: This app does not appear to us to be particularly discerning, but it illustrates the point.)
Online organiser
Increasingly add-ins allow users can organise their diaries and schedule work from their inbox. Rather than moving from the inbox to calendar and back to the inbox, it is possible to give options for available time and automatically generate meeting requests from the reply, schedule a time to send an email and request an reminder if a reply hasn’t been received.
A good example is an app called Boomerang, which also illustrates some of the limitations of the Outlook for Mac version when compared to the Outlook for Windows version. In Outlook for Windows, the main features are available through the main ribbon and the side task bar. In Outlook for Mac it is currently only possible to access some features through the Read view.
Windows Ribbon
Mac add-in bar
Meeting times can be suggested in an Outlook email from a Windows environment. The times that are suggested are presented as links for the one to be confirmed and an image can be inserted to the email body to show a graphic representation. The information can be seen but the Boomerang link is not yet available in the add-in bar.
Once one of the suggested times has been selected, a confirmation email of the meeting is sent to the everyone involved in the meeting. This is when the add-in link appears in the bar.
Clicking the link opens the add-in card, which accesses the calendar to add items. Enter the details and save to the calendar.
Conclusion
The ability to create add-ins which add functionality to Outlook-for-Mac is a significant step forward. There are now many add-in functions which can be used to add features for integration with other Software as a Service (SAAS) products. While the functions available for Mac users do not quite reach those of Windows users, there is considerable overlap.
If you are considering creating an add-in to integrate your SAAS application with Outlook-for-Mac, please do get in touch for an initial discussion on what is possible.
How to upload large email attachments to a CRM system
We recently came across a situation where an Outlook plugin we had built for a SAAS customer started reporting ‘System.OutOfMemoryException’ errors during the synchronisation routine. The plugin was uploading emails and attachments to the SAAS CRM system via an API, which isn’t an unusual scenario for the systems we build, so we were slightly surprised. On closer examination, the errors were only occurring for large files (which in our case meant over 100Mb).
Typically when we need to upload files, we use ‘base 64 encoding’ and then upload them using http requests. There are other methods, but many servers expect base64 encoded data when uploading files. Below is a simple code for encoding the file to a base64 string.
However, with large files, the code above was giving us the ‘System.OutOfMemoryException’ error, so we needed another solution.
Chunking the Data with a MemoryStream
Initially we tried the method shown below (Figure 2) that reads data chunk by chunk from the large file and writes that data to a MemoryStream.
Up to a certain file size this method worked well, but when the file was more than 200Mb, we again got the same error. It turns out MemoryStream uses an internal byte[] buffer to store data. It initializes the buffer with a pre-set initial value, but if it reaches its limit, it needs to be re-sized. Instead of just grabbing a bit more memory, it creates a new buffer twice the size of the previous buffer, and then copies data from the old buffer to the new buffer. For example if the length of a buffer is 200Mb and new data needs to be written, .Net has to find another 400Mb block of data. So the total memory required is at least be 600Mb.
Back to the drawing board!
Using a FileStream instead of MemoryStream
We then looked at the FileStream class in the System.IO namespace. It helps reading from, writing to and closing files. While MemoryStream writes data to the internal memory, FileStream writes data to a file. (I guess the clue is in the name.) As FileStream writes all the data to a file, there is no inherent memory limit, so using FileStream avoids the Out-of-Memory exceptions.
Uploading base64 encoded data to http Server
Now the base64 encoded data from the original file is saved in to another external file. It can then be read from the saved file and uploaded to the server using an http POST request (figure 4).
In this code, we can read the data in small chunks and can write these chunks to the request stream.
Summary
In this article, a large file is encoded to base64string and saved in a file using FileStream, then the source file is read chunk by chunk and written into the target stream. This is a good method for uploading very large files as base64 encoded data to a server.
19 Ways your Competitors are using Outlook Add-ins
The Microsoft Office Store currently includes around 250 Outlook add-ins. If you are not familiar with Office add-ins, they are Microsoft’s latest feature to let third party applications integrate with Office – or in our case specifically integrate with Microsoft Outlook. They run in traditional desktop Outlook as well as Outlook for Mac, Outlook Web Access, and Outlook mobile, so they have some significant benefits over traditional plugins – which only work in Windows Desktop versions of Outlook.
Having built a few add-ins ourselves, we thought we would take a look at just what they are being used for. And if you look carefully, you may just see a competitor of yours who is already starting to explore the possibilities.
We analysed and categorised 244 add-ins. Some add-ins defy categorisation, while others cover several categories, but we put each add-in in just one category which we (subjectively) thought was the best fit. We may not have got every one right, but we think the overall result is still worth reviewing.
CRM
Easily the most popular category was Outlook integration with CRMs. The flexibility to access and work directly in your CRM from Outlook is a great way to save time. Many of the add-ins are provided by the CRM provider and support contact management, creating tickets, opportunities and projects and calendar appointments. Outlook add-ins definitely enhance the user experience of CRMs and as add-in functionality develops, they will become a more useful addition to Outlook.
Examples:
Act!, Insightly, LawVu, Pipedrive, Rocket Matter, Salesforce, Yoxel, Zoho CRM.
Document Management, Filing and Storage
Document management covers a range of services; the most popular being the ability to upload emails and attachments directly to your cloud storage. It’s a great way to unclutter your inbox and be certain files are securely stored in the location you choose. Of course, the reverse is true and documents can easily be retrieved and inserted in to correspondence from the cloud.
Other ways to manage your documents through add-ins include inserting a link to large documents stored in the cloud, printing from any device and attaching files in DropBox. All ways to streamline your document management and improve workflow.
Several add-ins work specifically with Sharepoint – allowing users to conveniently upload emails, attachments and snippets directly to Sharepoint, show Sharepoint notifications in Outlook.
Examples:
Attachment Manager, DocSend for Outlook, Dropbox to Outlook Import, harmon.ie: SharePoint Online Client (Mac), MediaValet Library for Outlook, MessageFiler, Moxtra – Team Collaboration and Communication, OnePlaceMail, Progressly – Live SharePoint process notification, ShareFile, SharePoint Connect.
Information Enhancement
This category predominantly covers add-ins that give extra information based on email content or the sender. For example, FEDEX trackers take the information from an email telling you if something has been dispatched and adds the delivery date to your calendar. Other services provided are telephone number retrieval, flight tracking, restaurant reviews and shopping recommendations.
For business there are add-ins that sync information with your CRM and instantly display information on a contact, such as Cirrus Insight which syncs with Salesforce.
Examples:
App in the Air – Track your itinerary, CloseFox, Cirrus Insight for Office 365 and Salesforce, CVR Lookup, Fiind Signals – Tune-in to your customer signals, Motifworks – Real-time Trials Insights, Package Tracker, SalesForce Inbox – Sales Intelligence for Email.
Productivity
For lots of people their work day starts in Outlook, so it makes sense that add-ins will focus on work that can be done directly from your inbox or calendar! We found a lot of add-ins that didn’t have a particular category they belonged to, but were aimed at increased productivity.
Functions they perform include:
Translation, syncing tasks to Sharepoint, multichannel messenger – send messages via SMS, email, voicemail through Outlook, email scheduling and reminders, convert emails to Word, manage email signatures for multiple business and more.
Examples:
Boomerang, Brainshark, Evernote, MailNotes, Maps for Outlook, Messageware Utility Belt, TimeZone Finder, Workday for Outlook
Calendar
There are many add-ins which interact with Outlook’s Calendar. These can be categorised as Conference calling apps, Roombooking apps, Meeting Agenda apps, and others.
General Calendar apps
Applications include: time management, calculating travel time between appointments, signing in buildings for meetings, room finders, and checking the availability of people outside of an organisation. These are all useful tools that support time management and facilitate the smooth running of meetings.
Examples:
FreeBusy Scheduling Assistant, FedEx Tracking at the top of your hand, FindTime, GreenJobInterview Schedule Live, LawToolBox Deadlines, Times – Event Time Picker, Uber Ride Reminders
Calendar – Conference Calling
Conference calls have been central to changing the way businesses work, making meetings possible from anywhere in the world with only the need to agree a time, internet access and your chosen conference call software. Add-ins for this software facilitate conference call arrangements from Outlook, and normally across any platform. They insert details of the meeting and dial in numbers directly into the meeting invite, and many have the ability to securely add agendas and other documentation. A good example of this is GreenJobInterview that has an add-ins that allows users to schedule video interviews or live interviews if required.
Examples:
ConferenceCall.co.uk, Free Conference Calling, join.me meetings for Office 365.
Calendar – Meetings / Agenda
Meeting and Agenda add-ins focus on ensuring people are available before sending out invites; and building agendas from within Outlook. Other meeting materials can often be accessed from the cloud and added to the meeting invite.
Examples:
Agenda Builder for MeetingSquared, Agenda Manager, Meeteor – Meetings wth Impact, On Board – Board Meeting Tool, RunYourMeeting agenda builder.
Calendar – Room Booking
Many of the add-ins for room bookings make checking the availability of rooms and equipment an easy job, and confirmation is done with just one click. Accessing this information from your smart phone or tablet only adds to the convenience. Often it is not only the room you can book, but also equipment, order refreshments and check participant availability!
Bookings are confirmed and synced to your own calendar, even providing reminders. These really are time saving, avoiding contacting different departments for things and storing the information in your appointment.
Examples:
Approved Contact Schedule Open Times, Robin – Room Scheduling, Smartway2
Task Management
Task management includes two distinct categories. ‘To do’ lists such as Wunderlist, and full on task management for Projects and Project Management.
Typical ToDo tasks enable sharing with others, setting reminders, and access from any platform.
Project Management tasks typically include the ability to add or update project tasks directly from Outlook, and enables task tracking and easy updates when out of the office. In addition, notifications or changes received by email can be added directly to task.
Examples:
InLoox now! Tasks, Dovico Timesheet, Kanban for Outlook, Trello, Wunderlist for Outlook
Email apps included two specific but distinct types – ‘Insert info’ which added information specific to a time, person or event, and Templates which provided template responses.
Email – Insert info
These add-ins insert a range of information into Outlook emails and meetings. Most allow the user to access documents and photos that are stored in the cloud without leaving Outlook.
Other add-ins insert information about a business, meeting locations, photos and reviews. It is a handy way of confirming everyone included in your email has the correct information of where to meet, the type of venue and ratings.
Examples:
Kwilt – Your Photos for Email, Kstudio – Outlook Script Editor, GIPHY, Yelp
Email – templates
Email template add-ins enable the user to select and use a template -either the entire email or a snippet.
Examples:
DeviantArt, Parrot365 Email Templates, SMART Template (outlook), WittyParrot Email Templates (Mac), Qorteq90 Easy Intelligent Autoreplies
Specialist
This group are add-ins which don’t fit any other categories. These include an email header analyser, an email mood analyser, API tutorials, a flower ordering service, the option to send accolades in recognition of work and an add-in to increase reading speed.
Examples:
Book your train tickets with Voyages-sncf.com, Email Recovery, Emma: E-Mail-Mood-Analyzer, Paypal for Outlook, RedCritter Accolades
Security
Several add-ins provide security through encryption. Some require active accounts with a specialist data protection services.
Examples:
Bait – Phishing Analyzer, CudaSign (formerlySignNow) for Outlook, Egress Switch – Secure Email, IXD Secure Mail
Contact Management
Add-ins that identify the person you are emailing or who emailed, bringing up their contact details, company details or website, directly in Outlook is a great way easily add information recall information and respond appropriately.
Many add-ins categorized as Contact Management connect directly to a paid service that shares this information across your company. This is a great way for recruiters to maintain records, or sales teams to ensure they have a current business contact.
Examples:
Contact Plus, Corporate Address Book, People+, TextMiner – Email Signatiure Extractor
Accounting / Invoicing
Accounting and invoicing encompasses a broad range of services, but what has stood out in this category is expense reconciliation. Add-ins that assist with expense reconciliation enable the user to submit electronic receipts from Outlook to the associated accounting software, meaning expenses incurred while, for example, on a business trip can be captured as soon as they arrive in your Outlook inbox.
Other areas covered are payroll and invoice management through access to accounting software such as Quickbooks.
Examples:
Billy Invoice, Companyexpense, Fyle – One Click Expense Management, Nmbrs.hr, Process It Approval
Workflow
One area to reap significant benefits from Outlook is workflow. This is relevant for a lot of middle management where signatures are required and for a variety of functions. The ability to access and authorise leave, purchases, contracts and timesheets from your inbox and on any platform keeps the workflow moving and working away from the office does not hinder the process. Other features include the ability to check if a document has been signed and to set reminders, so there is no reason for there to be a delay in the workflow. Other add-ins let you set reminders and schedule tasks from your inbox.
Examples:
Appogee Leave for Office, Aras Workflow Approval, Employee Approvals for Office 365, Docusign for Outlook, smartQ Workflow Management.
Helpdesk
Creating tickets directly from emails and attachments is an excellent way to improve productivity and ensure all help requests are captured and turned into work tickets. Some add-ins also allow actions or tasks to be added to an existing ticket.
Examples:
Kayako Ticket Creator, TeamViewer servicecamp – Your Service Desk, Zendesk
Click Tracking
The ability to see who has opened a document, when and how long it was viewed for is a distinct benefit for sales people, helping to analyse which prospects to follow-up with a phone call or email. However, a lot of these add-ins don’t stop there. Some can show which links were clicked and pages visited. A valuable tool for those in sales.
Examples:
Attach – Document Tracking and Control, Tilkee – Track your proposals and boos your sales, Yesware Email Tracking,
Video
Although Video comes at the end of our list, we predict this area to grow. The concept of videos directed at a specific person to follow up leads is proving a successful way to convert opportunities into sales. Sectors using videos as a sales tool include, Real Estate, Mortgage and Automotive. The add-ins being provided by video sales allow users to browse their videos in the side panel and simply drop the video into an Outlook message.
Examples:
BombBomb, Canned.me – Your video communication platform, GoAnimate – Video Player,VBOT – send secure and private videos.
[/vc_column_text][/vc_column][/vc_row]
Integrate your SAAS Application into Outlook and Office 365 using Add-in Technology
Office 365 will have over 100 Million users by the end of 2017*
Whoever your application is targeting, it makes sense to integrate with Office 365.
Outlook Add-ins
Microsoft provide several ways to integrate SAAS applications with Office 365. In this article, I review one of them in detail – Office add-ins. Office add-ins enable you to extend Office clients such as Word, Excel, PowerPoint, and Outlook using web technologies like HTML, CSS and JavaScript. Since they are based on web technologies, they can do almost anything a webpage can do inside the browser. I am looking specifically at add-ins for Outlook.
Key Features of Add-ins
Simple installation
Add-in installation is a very simple process – either select the add-in from the office store, or paste a URL into a text box. There are no files to download, and nothing to be saved locally.
Install once per mailbox – not per machine/client
Add-ins are associated with a Mailbox, not a client machine. The information on which add-ins are installed is saved within the mailbox – either on Microsoft Exchange or Office 365. Any client application (e.g Outlook desktop, Outlook for Mac, Outlook Web App) which logs on to that mailbox once the add-in is installed will see the add-in. (Unless it uses features not available to that client).
Code once – use in multiple clients*
The application only needs to be written once to cover all the potential clients. Outlook Web Access, mobile versions of Outlook, Outlook for Mac as well as Desktop versions of Outlook can all benefit from Outlook add-ins. (*Subject to the feature limitations between clients.)
Work with email and calendar items
Add-ins currently work with email and calendar items, including recipients of emails and attendees of meetings. Standard Outlook contacts in contact folders are not accessible. Tasks, journals and other Outlook items are also excluded.
More limited User Interface
Compared to plugins which have a range of user interface options, add-ins are more limited in how they can be displayed, and what menus and options can be offered.
No access to events, no background processing
Add-ins are not able to respond to events in the way that plugins can. (Plugins can do something when a window is closed for example.) This means that with an add-in, anytime you want something to happen – the user has to click something on the user interface. [*The new ’On-Send’ feature is a welcome exception]
Synchronizing items in the background is not possible through an add-in in the way it can be with a plugin, but a separate server based application could carry out this function – although this is beyond the scope of this discussion.
Types of Outlook Add-ins
There are three main types of add-in – each of which have different user interface options:
- Contextual add-ins with an add-in Card
- Add-in Commands (Menu buttons) with a Task Pane
- Module Extensions
Not all add-in types are available in all Outlook clients. The Outlook 2016 desktop client offers the most features while Outlook for Mac and Outlook for mobile offer the least.
Contextual Add-ins with Add-in cards
Contextual add-ins with add-in cards are the most widely available add-ins. Use contextual add-ins if you want your add-in features to be available over the widest selection of Outlook clients, or if you plan to use their contextual nature.
Contextual add-ins appear in the user interface when the criteria for their ‘Context’ is fulfilled. Activation criteria includes:
- No criteria (Default) – appear for any item in the mailbox or calendar
- Appear only for a specific items such as an email message, meeting request message, or appointment
- Appear for specific entities in a message or appointment, such as if Outlook thinks it finds a task to do, or an address.
- Appear when a specific word or text is found in a message
When a contextual Add-in is activated, the user will typically see the name of the add-in in the add-in bar, which is the line between the sender and the body of a message. In the example below there are three add-ins – Bing Maps, Chimp-View, and Emma.
When the add-in name is clicked, the card appears below the add-in bar and above the message. The content of the add-in card is provided by the add-in using HTML and JavaScript. Note that it is quite a limited area to display information – with a limited depth.
Add-in Commands with a Task Pane
Add-in commands are the ribbon buttons and drop down menus which are available in some clients. These are arguably the most flexible type of add-in from a design and user interface perspective, but they are not yet available in all Outlook clients.
Add-in commands appear on a ribbon as a group of buttons labelled with the add-in name. Each add-in can have one ribbon group with up to 6 commands (or 10 if a custom tab is used) – more than enough for most add-in applications. The example below shows several add-in ribbon groups, each with one or more button.
If the user adds more add-ins, or if they use a small window, the add-in commands automatically collapse into a minimalized (smaller) state.
Currently a button can do one of three things:
- Show a drop down with more buttons.
- Display a task pane (more on task panes below)
- Execute something. (e.g. run some JavaScript that makes something happen)
Task Pane
The task pane is a vertical 300px width panel ( which can be resized by the user) which displays to the right of the reading pane when one of the buttons is clicked.
The content of the pane is provided by the add-in as HTML and JavaScript. There are guidelines on what it should look like in order to provide a consistent look and feel with Outlook, and if IOS is targeted, the guidelines are quite strict.
The task pane is opened when the user clicks on one of the command buttons. The Task pane can be closed again by the user. By default it closes every time a different item is selected. In Outlook 2016 for Windows Task panes can be pinned (i.e. stay open) and receive events when a new message is selected.
Module Extension Add-ins
A Module Extension add-in takes over the main user interface surface of Outlook – replacing the main Outlook window when the add-in is selected. A good example is Microsoft’s latest add-in – Outlook Customer Manager.
A module add-in can be used to create a line of business application which does not need to directly interact with specific Outlook items. The full window access gives a much more flexible space to provide a sophisticated user interface. Currently Module Extensions are only available in Office 2016.
On-Send Feature
The discussion of types of add-in would not be complete without mentioning the ‘On-Send’ feature
The ‘On Send’ feature allows the add-in to get notification when a message is sent (Outlook Web App in Office 365 only). This allows it to carry out some checks on the message, perform an action or changes, and then cancel or release the message. So for example it could be used to:
- Add a recipient to the cc line.
- Prevent the user from leaving the subject line blank.
- Validate content in the message
- Copy the message to a CRM system as it is sent.
The ’On-Send’ feature must be specifically enabled by the administrator, and any add-in using it must be installed by an administrator.
Which features work with which versions of Outlook?
All Outlook clients do not give you the same feature availability. So a key question becomes – what add-in features are available in each of the Outlook clients? The following table gives a summary:
*All data is believed to be correct in May 2017. It is likely feature sets will improve rapidly over time.
Scenarios
Now that we understand what types of add-in we can create, let us look at a few scenarios to understand which types of add-in we can use to fulfil different requirements.
These are the scenarios we will review:
- Copy an email to a folder or Log an email to a CRM system while reading the email
- Insert Text while composing an email / meeting request
- Find contextual information in an email while reading the email
- Find and use the email sender or other recipients while reading the email
- Log an email to a CRM system when it is sent
- Manipulate Attachments
- Use functions directly on the Office 365/Exchange store
1. Copy an email to a folder or Log an email to a CRM system while reading the email
- This is a READ function so available in all versions of Outlook.
- For maximum Outlook client type coverage use a Contextual add-in with an add-in bar. The user clicks the add-in name on the bar to open the add-in card.
- Place a button on the add-in card (add-in card content is HTML/JavaScript) which the user clicks to execute item save/copy functionality.
- Or use a Command bar application with a Task pane for a better user interface
For example the Zendesk add-in (below) allows the user to copy the current email to the Zendesk system in order to create a new support ticket from it. The application uses a Command bar add-in so that the email can be categorised as it is added.
2. Insert text while composing an email / meeting request
- This is a COMPOSE function so it is available in all Outlook versions except Outlook for Mobile.
- Use a command bar button to trigger insert text.
- If configuration is required, a further button opening a task pane can be implemented.
For example using the Conference Call add-in (below), the user clicks a button to insert details into a Meeting Request about ‘how to participate in the conference call’.
3. Find contextual information in an email while reading the email
e.g. phone numbers, a mailing address, potential tasks or TODOs, potential Meetings
- These are READ functions requiring a Contextual add-in so available in all versions of Outlook.
- Use a Contextual add-in with an add-in bar. The user clicks the add-in name on the bar to open the add-in card.
- The add-in can recognise those and provide information based on the entity found. For example where an address is found, the add-in can provide a map of that address.
The Bing Maps add-in (below) allows the user to open the map at an address found in the email.
4. Find and use the email sender or other recipients while reading the email
- This is a READ function requiring a Contextual add-in so available in all versions of Outlook.
- Use a Contextual add-in with an add-in bar. The user clicks the add-in name on the bar to open the add-in card.
- The add-in reads the recipient information for the current message and can display or process information accordingly.
For example the Davton Chimp-View add-in (below) allows the user to see if the sender is subscribed to a MailChimp mailing list. (and subscribe them if they are not).
Other Scenarios
5. Log an email to a CRM system when it is sent
- Use the ‘On Send’ feature.
- Or tag the email using a compose app, and use a separate back-end application (using EWS) to process the email directly in Exchange/Office 365.
6. Manipulate Attachments
Add-ins have access to the attachments on an email or meeting request.
- In compose mode attachments can be added to the message.
- In read mode, attachments can be filed to specific locations or projects.
7. Use functions directly on the Office 365/Exchange store
Add-ins can access a range of Outlook objects to read, move, copy, edit,process etc. (Add-ins use a subset of Exchange Web Services (EWS) to do this.)
Actions include:
Items (emails/appointments etc.)
Get, Find, Create, Move, Copy, Send, Update, Move to junk folder
Emails or Appointments can also be tagged with data specific to each item – such as a databaseID, or category tag to be used by the add-in next time it accesses that item.
Folders
Get, Find, Create, Update folders – and their contents
Conversations
Get, Find and enumerate conversations (one or more sets of items organised in nodes in a conversation)
In addition there is a general mailbox level store which could save the user’s personal preferences for the add-in, or perhaps some login details or configuration data. The data saved in each item or at the mailbox level will be saved and shared from session to session and across all clients (from desktop to phone for instance.)
Single Sign On
If the add-in needs to access non-public information from behind a protected network, it is possible to set up SSO – Single Sign On – so that the fact that the user is logged in to Outlook can be used to log the user into the application. The add-in receives a token from Outlook – which must be passed and decoded to define who the user is and what permissions they have.
Security
Microsoft have implemented a comprehensive security system which can be managed by system admins. The add-in needs to request and be granted permission to access the user’s data. There are four levels of permissions to which it can operate:
- Restricted: very limited access to certain elements of messages
- Read item: basic access to each item
- Read/Write: Full access to each item, set item properties, but not to EWS features
- Read/Write mailbox: Create, read, write items and folders; send items
The security model provides the following features:
- Messages protected by Outlook’s Information Rights Management do not interact with Outlook add-ins
- Before installing an add-in, the user can see the list of permissions that are being requested by the add-in. The user or administrator must explicitly confirm acceptance.
- An end user can only install an add-in that affects his/her own mailbox. Organizational level add-ins must be added by Administrators.
- Context sensitive add-ins can be installed while still minimizing security risks
- Manifest files of all add-ins are stored securely in the user’s email account.
- The end user can at any time verify the permissions requested, and disable or subsequently enable an add-in.
Conclusion
Outlook add-ins are now a viable alternative to plugins as a method of integrating third party systems with Outlook.
The ability to write once and use in all the different Outlook clients is a big advantage over plugins, despite the variation in feature availability between clients.
For companies who already have plugins, or who are wanting to target the 100 Million Office 365 users many of whom will be using the latest versions of Outlook and Exchange, add-ins have to be looked at as a very serious option for maximising return on investment.
There is no solution which meets all requirements, but as add-in capabilities continue to grow, and as more users switch to versions of Outlook which plugins can not satisfy, add-ins will become the first choice for Outlook integration.