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.