{"id":2181,"date":"2015-07-21T16:34:28","date_gmt":"2015-07-21T23:34:28","guid":{"rendered":"https:\/\/www.microsoft.com\/reallifecode\/index.php\/2015\/07\/21\/office-mail-app-for-rallyteam\/"},"modified":"2020-03-19T09:49:20","modified_gmt":"2020-03-19T16:49:20","slug":"office-mail-app-for-rallyteam","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/ise\/office-mail-app-for-rallyteam\/","title":{"rendered":"Office Mail App for Rallyteam"},"content":{"rendered":"<p>The Microsoft Office Platform is focused on enhancing the collaboration experience. This case study introduces you to Mail apps for Outlook and the ease of building, integrating, and enhancing the collaboration experience for users. The example shown here gets you up and running quickly with all the parts necessary to build a Mail app for Outlook customized for your users. Additionally, for IT Pros it illustrates the ease to which you can make your organization\u2019s own mail applications or 3rd party applications available to your users.<\/p>\n<p>Working with Rallyteam, a <a href=\"https:\/\/www.microsoftventures.com\/\">MS Ventures<\/a> Accelerator participant, we created a simple but effective mail app to demonstrate an action-oriented add-in activated within the context of a mail item.<\/p>\n<h2 id=\"background\">Background<\/h2>\n<p>Rallyteam (<a href=\"http:\/\/Rallyteam.com\">http:\/\/Rallyteam.com<\/a>) provides a tool that facilitates project awareness and resource assignment within an organization. The platform is a matching service for projects and people for assignments that wouldn\u2019t normally be visible within an organization. It attempts to achieve optimization of project assignments based upon numerous factors such as interests, kudos (which Rallyteam calls \u201cprops\u201d for proper recognition), experience, and ratings of each person that participates. The goal is to facilitate self-forming teams and optimize resource assignment through matching of individuals. Exposing this information also aids in identification of skill gaps and underutilized resources.<\/p>\n<h2 id=\"rallyteam-features\">Rallyteam Features<\/h2>\n<p>The features of Rallyteam are provided here: <a href=\"http:\/\/rallyteam.com\/#features\">http:\/\/rallyteam.com\/#features<\/a><\/p>\n<p>Generally, uses can:<\/p>\n<ol>\n<li>Create profile about themselves indicating interest, skills, career direction<\/li>\n<li>Collaboration allows teams to identify and assign users based upon skills and initiative<\/li>\n<li>Groups provide shared interests and expertise along with recognition<\/li>\n<li>Recognition provides peers with the ability to reward contributions to the community by earning points, props, and badges over time.<\/li>\n<\/ol>\n<h2 id=\"opportunity\">Opportunity<\/h2>\n<p>Many organization are email-centric. Many users spend considerable time within an email client \u2013 either a desktop application like Outlook, a browser-based application (like Outlook Mail App \u2013 OWA), and\/or their mobile devices.<\/p>\n<p>During any email interaction there are triggers that require a user to switch context to other applications to complete a task. This context switch is something we can optimize with Mail apps for Outlook by providing actionable visual elements within the application the user is currently accessing.<\/p>\n<p>Mail apps for Outlook have the ability to activate an actionable link, then provide a User Interface (UI) that allows the user to interact with an application while never leaving the Outlook interface \u2013 reducing steps, decreasing context switching, and making things happen in a friction free manner.<\/p>\n<h2 id=\"high-level-flow\">High Level Flow<\/h2>\n<p>The following illustrates the high level flow from email creation (outside of Rallyteam and Mail apps for Outlook) to the point where the Rallyteam Action is triggered by the recognition of the key words in any email, then to the creation of a Rallyteam opportunity.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image001.png\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 1 &#8211; High level flow<\/p>\n<h2 id=\"outlook-user-interface-and-mail-apps\">Outlook User interface and mail apps<\/h2>\n<p>Here are some screenshots illustrating the user experience when the system recognizes project opportunities. In the first case, you see an email with no such opportunities, but a series of Outlook Mail applications installed (the yellow bar, called the \u201caction bar\u201d):<\/p>\n<h3 id=\"example-of-an-email--not-about-a-project-or-opportunity\">Example of an email \u2013 NOT about a project or Opportunity<\/h3>\n<p>For a high level overview of the flow, see the diagram Figure 8 &#8211; High level deployment.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image002.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 2 &#8211; Mail app not about a project<\/p>\n<p>In the email above (here we\u2019re using the Outlook desktop client) the normal action bar is showing the various Office Apps that have been installed, either by the administrator or the user.<\/p>\n<p>In the following example, the system has recognized an opportunity and a new application, \u201cProject Unite\u201d appears in the action bar. In this case the email was \u201ctriggered\u201d:<\/p>\n<h3 id=\"example-of-an-email--triggered\">Example of an Email \u2013 triggered<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image003.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 3 -Mail app about a project<\/p>\n<p>When the users open the email, they are presented with an opportunity to participate in a project, as shown below:<\/p>\n<h3 id=\"mail-app--opened\">Mail App \u2013 Opened<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image004.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 4 &#8211; Mail App opened and ready for action<\/p>\n<p>Of course, this also works in the browser-based version (Outlook Web Access, or OWA), as shown below:<\/p>\n<h3 id=\"also-working-in-browser--office-web-app-owa\">Also Working in Browser \u2013 Office Web App (OWA)<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image005.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 5 &#8211; App activated in Browser OWA<\/p>\n<h3 id=\"running-this-in-your-tenant\">Running this in your Tenant<\/h3>\n<p>You can add this yourself to your own Outlook client by adding the app. The following steps will show you how:<\/p>\n<ol>\n<li>Navigate to https:\/\/rtmailapp.azurewebsites.net\/<\/li>\n<\/ol>\n<table>\n<tbody>\n<tr>\n<td>This is a demo site that provides the backing HTML based application utilized by the Office App. For the purposes of this demo the application does very little and simply shows the Outlook integration. No updates are performed; it only recognizes the words \u201cproject<\/td>\n<td>opportunity\u201d within the email item Subject or Body.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ol>\n<li>Copy the Link to Manifest<\/li>\n<\/ol>\n<p>Once on that page, copy the shortcut shown on the page; it should be<\/p>\n<p>https:\/\/rtmailapp.azurewebsites.net\/AppManifest\/ProjectUniteMailAppManifest.xml<\/p>\n<p>If you deploy to your own Azure Web Site a different host name will be used. Note that this MUST be HTTPS. Using Azure Web Apps ensures that HTTPS is supported using the wildcard certificate \u201c*.azurewebsites.net\u201d.<\/p>\n<ol>\n<li>Open \u201cManage Apps\u201d from OWA<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image006.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 6 &#8211; Mange Apps in OWA<\/p>\n<ol>\n<li>Click on the \u2018+\u2019<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image007.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 7 &#8211; Adding an App with a URL<\/p>\n<ol>\n<li>Choose \u2018Add from URL\u2019<\/li>\n<\/ol>\n<p>When Presented with the Entry form, paste in the URL from above; if using the sample here:<\/p>\n<p>https:\/\/rtmailapp.azurewebsites.net\/AppManifest\/ProjectUniteMailAppManifest.xml<\/p>\n<p>Then click \u201cNext\u201d, then accept the \u201cwarning\u201d regarding the app NOT being verified and NOT from the Office Store by clicking \u201cInstall\u201d. When it\u2019s done, click OK.<\/p>\n<p>List of Mail Apps<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image008.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 8 &#8211; App shown in the Manage App list<\/p>\n<p>Once you\u2019re done adding the mail application, it shows in the list \u201cManage Apps\u201d as above. Note the information on the right side regarding what is read from the XML manifest provided before.<\/p>\n<h2 id=\"overview-of-the-solution\">Overview of the Solution<\/h2>\n<h3 id=\"high-level-deployment\">High Level Deployment<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image009.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 9 &#8211; High level deployment<\/p>\n<h3 id=\"application-components\">Application Components<\/h3>\n<h3 id=\"client\">Client<\/h3>\n<p>The client is a form of Outlook \u2013 either the Outlook Office Client, or the browser or mobile based client<\/p>\n<h3 id=\"azure-web-app\">Azure Web App<\/h3>\n<p>The Azure Web App (can be any Web Site or technology such as ASP.NET, PHP, NodeJS) provides the static content and the interactive JavaScript that runs in the context of the client.<\/p>\n<p>In addition, for any further interactivity, the web application could also provide update capabilities that any website generally can provide.<\/p>\n<p>The web application utilized here uses ASP.NET 4.5 for the base site, although no MVC Controllers are utilized. Only static pages are used in this solution; however, you are not restricted.<\/p>\n<p>The page interactivity is basic JavaScript and AngularJS, along with Bootstrap for the presentation tier.<\/p>\n<h2 id=\"deployment-approaches\">Deployment Approaches<\/h2>\n<h3 id=\"development\">Development<\/h3>\n<p>During development, you simply press F5 \u2013 this will deploy the \u201cmanifest\u201d to an Office 365 Exchange Tenant \u2013 the following dialog box will appear. You will require permissions to deploy this to your email account. You can obtain a Trial Tenant from MSDN subscriptions if you wish to isolate (recommended) from your production email.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image010.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 10 &#8211; Visual Studio Office Tools Authentication<\/p>\n<h3 id=\"production\">Production<\/h3>\n<p>There are three ways to deploy; the first two below bypass the Office Store \u2013 which means it hasn\u2019t been verified by Microsoft. Therefore only reference or use apps that you trust.<\/p>\n<ol>\n<li>Via URL \u2013 which this sample uses (see warning below)<\/li>\n<li>Via File \u2013 which is generally the same as URL, just using a local file<\/li>\n<li>Via Office Store \u2013 this requires a publishing process and will make the application available for other Office 365 Tenants and Users to install.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image011.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 11 &#8211; Warning when using non-Office Store App<\/p>\n<h2 id=\"code-artifacts\">Code Artifacts<\/h2>\n<p>The code is published here: <a href=\"https:\/\/github.com\/cicorias\/ProjectUnite\">https:\/\/github.com\/cicorias\/ProjectUnite<\/a><\/p>\n<h3 id=\"required-tooling\">Required Tooling<\/h3>\n<p>The tools required to run the sample are:<\/p>\n<ol>\n<li>Visual Studio 2013 or Visual Studio 2015<\/li>\n<li>Microsoft Office Developer Tools for Visual Studio 2013 \u2013 April 2015 Update<\/li>\n<\/ol>\n<p>a. Not needed if using <strong>Visual Studio 2015 RC or better (do not use any of the Preview releases of VS2015)<\/strong><\/p>\n<p>The following shows installation of the tools using Web Platform Installer which can be obtained from: <a href=\"http:\/\/www.microsoft.com\/web\/downloads\/platform.aspx\">http:\/\/www.microsoft.com\/web\/downloads\/platform.aspx<\/a> (or <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=255386\">http:\/\/go.microsoft.com\/fwlink\/?LinkId=255386<\/a> ).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cse\/wp-content\/uploads\/sites\/55\/2020\/03\/2015-07-21-Office-Mail-App-for-Rallyteam_images-image012.jpg\" alt=\"Screenshot\" \/><\/p>\n<p>Figure 12 &#8211; Web Platform Installer<\/p>\n<h2 id=\"opportunities-for-reuse\">Opportunities for Reuse<\/h2>\n<p>There has been significant interest from various customers related to collaboration tools and applications that surround the Office 365 ecosystem. The example presented here can be used to bootstrap an effort and initiate conversations around what is possible to facilitate collaboration experiences and productivity enhancements<\/p>\n<h2 id=\"follow-up\">Follow up<\/h2>\n<p>Rallyteam is continuing to evaluate Office Mail Apps and looking at additionally providing contextual recognition beyond the simple regular expressions that are provided in this sample. For example, by increasing the permission levels of the application, it is possible to inspect a mail item deeper and use custom backend services, provided by the application and not Office 365, to enrich the experience. This capability requires greater trust level and permissions, but is possible through use of the Office 365 services that allow interaction within a user\u2019s email item, their mailbox, or other O365 Services.<\/p>\n<h2 id=\"links-and-references\">Links and References<\/h2>\n<p>Rallyteam: <a href=\"http:\/\/www.rallyteam.com\">http:\/\/www.rallyteam.com<\/a><\/p>\n<p>Office Development Center: <a href=\"http:\/\/dev.office.com\/\">http:\/\/dev.office.com\/<\/a><\/p>\n<p>Apps for Office Overview: <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/office\/jj220060(v=office.15).aspx\">https:\/\/msdn.microsoft.com\/en-us\/library\/office\/jj220060(v=office.15).aspx<\/a><\/p>\n<p>Creating a Mail App with Visual Studio: <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/a1b11750-7476-477d-9243-56ff145a0e3c\">https:\/\/msdn.microsoft.com\/en-us\/library\/a1b11750-7476-477d-9243-56ff145a0e3c<\/a><\/p>\n<p>Creating a Mail App with Napa (Monaco \u2013 what \u201ccode.visualstudio.com\u201d was built with): <a href=\"https:\/\/msdn.microsoft.com\/EN-US\/library\/office\/jj220072.aspx\">https:\/\/msdn.microsoft.com\/EN-US\/library\/office\/jj220072.aspx<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Microsoft Office Platform is focused on enhancing the collaboration experience. This case study introduces you to Mail apps for Outlook and the ease of building, integrating, and enhancing the collaboration experience for users.<\/p>\n","protected":false},"author":21382,"featured_media":12692,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[16],"tags":[166,254,287,304],"class_list":["post-2181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-email","tag-microsoft-office","tag-outlook","tag-rallyteam"],"acf":[],"blog_post_summary":"<p>The Microsoft Office Platform is focused on enhancing the collaboration experience. This case study introduces you to Mail apps for Outlook and the ease of building, integrating, and enhancing the collaboration experience for users.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/posts\/2181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/users\/21382"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/comments?post=2181"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/posts\/2181\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/media\/12692"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/media?parent=2181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/categories?post=2181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ise\/wp-json\/wp\/v2\/tags?post=2181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}