How to make add-in pinned to email items? - outlook-web-addins

Like on the image:
Can't find any info on msdn. Also found sample Outlook add-ins on github, but they don't have icons on email items. Any help is appreciated.

It definitely does not apply to all add-ins installed from the marketplace. I have Salesforce plugin from marketplace and it is not pinned.
The configuration of the area where add-ins are pinned (known as "SurfaceArea") is stored in your mailbox under 7ae974c5-1af7-4923-af3a-fb1fd14dcb7a\OutlookOptions\RawJSON as a JSON object. If you are in a controlled environment, you can add GUID of your add-in to "ReadSurfaceAddins" property. You can use ApplicationImpersonation to do this for other people's mailboxes in your organization.
There are some plugins that pin themselves on install (the two examples I know are both from Microsoft Corporation). I tried to grab the cached manifest of one of those addins, change its GUID (so it won't conflict with the existing app in the store) and sideload it both as a user and via centralized deployment -- no luck, the add-in doesn't pin automatically. So the whatever magic makes those addins pin, does not happen in the manifest, but rather in some app store settings that aren't available to third party developers like us. UPD: I stand corrected, this feature is available to third parties as well - I've seen a third party add-in (Hubspot) that pins itself - again, this is an app store addin, not sideloaded.

You can go to Settings -> View all Outlook Settings -> Customize Actions -> Toolbar to configure the add-ins that appear on the Message compose surface. Additional documentation is here: https://support.office.com/en-us/article/customize-actions-on-your-messages-in-outlook-com-c8110dcb-892e-4903-94b3-f6eb41ada2a3

Related

How do I distribute excel office add-in(w/ office.js) in privately?

Q1. Are there any method to distribute excel office add-in(w/ office.js) in privately?
(Will office.js add-in also be distributed like VSTO's .exe OR .xla/.xlam macro files with password?)
Q2. If I run office add-in server(node.js) on my on-premise server, What will have to be distributed to the end-users?
(I want to hide the core source logic unlike VBA macro.)
I am now developing an excel office add-in. But there seems to be some limitation to deploy to the end-users in my company.(We are now testing environment for pilot, and using office 365 but it is restricted by IT's policy)
When I refer to the official documentation below, the docs says that the way to deploy add-in in privately are Microsoft 365 admin center OR SharePoint catalog.(AppSource is publicly for everyone.)
refer. https://learn.microsoft.com/en-us/office/dev/add-ins/publish/publish
However, it seems that it have to use Microsoft's services or components like SharePoint or admin center. I don't want to use these items because I want to flexibly cope with various environments.
I have also read the article as below.
refer. How to distribute private office add-ins?
But the reply thread seems that the writer couldn't get the appropriate answer what I also want to know.
I want to know the other ways to distribute excel office add-in(w/ office.js) without unveiling my core source logic and what is the minimum materials I have to provide to the end-users(i.g. manifest or something).
Typically, as you have already know, you need to host the add-in's source code on the web server anywhere. The manifest file just refers to the place where the sources are stored. And the single file which should be provided to be able to side-load add-ins locally is the manifest file. Everything else is hosted under your control.
Due to the nature of the web technology you can't hide the source code from users. The add-in acts like a regular web page. The best what you could do is to obfuscate your code.

Office.Settings not retrievable in Excel Online when created and set in Excel Desktop

According to the API docs, the Office.Settings objects are saved per add-in and per document. That is, they are available only to the add-in that created them, and only from the document in which they are saved.
I'm a bit confused regarding the Office.Settings interface. I've created a gist in the ScriptLab Add-in where I set 2 setting objects (queries and queryIDs) and then retrieve them (log them to console).
Gist: https://gist.github.com/VivianVenter/e5489628384f96f2d3bf9a50aace8728
If I run this gist on Excel Desktop, then I can create the settings and retrieve them successfully. If I save this workbook and open it in Excel Online and run the gist again then I cannot retrieve the settings, it returns null for both settings object.
According to my knowledge the ScriptLab Add-in is the same for the Desktop and Online version, am I missing something, or is it the intention of OfficeJS to not make the settings available/visible in the Online version if it was created and set in the Desktop version?
Settings desktop found:
The settings objects was found in Excel Desktop
Settings online null:
The settings objects was NOT found in Excel Online
Office add-in's setting is stored based on the add-in's id.
And once it is installed by side-loading, a new id is allocated to the add-in every time.
This means you can't sync settings on multiple platforms while developing.
Once you submitted the add-in to the AppSource, a static id from AppSource is allocated to the add-in and it is used while installing the add-in from AppSource.
So, you should submit the add-in to AppSource to test/implement this feature.
The issue was caused by a bug in office-js which has now been fixed upstream.

Possibilities of MS Outlook Web Add-ins on the header/Ribbon in web apps and Independent

I am working with outlook Web-Addins. Addin type is "ItemRead". Now I want some thing unrelated to mails as in i want to have button on header as i see the skype button on the top.
Also we can create Addin on mail compose. I am not sure if this is possible to have separate buttons on header separate from mail section
example in the image of skype button.
I have also tried with Outlook Add-in ModuleExtension but cannot seems to be work as expected in outlook web app.
The command controls for invoking add-on are described in manifest part of the add-in. Those controls will be displayed in predefined place of the UI depend on particular client design (Outlook online, Outlook desktop, etc.). As the developer you are able to set control's setting, such as title, icon and so on, but not the place where control will be displayed. This would be up to Microsoft dev/design team.
Bottom line: You are not able to place your control in the specific place of the client interface.
Module extension add-in currently available for Outlook 2016 desktop. There is request to make it available for Outlook online which you can upvote if you like.
Additional Questions:
So is it is not possible right right now?
Module extension add-in for Outlook online is not currently available. To place your control into the place you want is not available, either and never will be. This is because of obvious reasons ... can you imagine what's happen with user interface if every extension will be able to modify the UI as it needs? Total disaster.
Or can you help me with other option ?
Outlook add-in works with single item, as of the controls will appear when item (e-mail, appointment, etc.) selected or compose window invoked, there is nothing you can do.
Also one more thing that is it possible to store a custom global setting value for the outlook organization using addin or any other way?
To store the settings for particular mailbox, user inside organization, there is Office.context.roamingSettings object. If you need some global settings for your app for entire organization, you would set them inside JS part for this particular organization and make the deployment just withing this organization. In case you want to distribute the app via Office store and customize it per organization you may want to write some service which delivers custom settings for add-on on start-up. For example you have rest service which returns custom configuration depend on domain; in this case when add-on invoked you may request custom configuration by sending rest call with user domain and after cache it in mailbox.

Office AddIns sub menu inconsistent

Can anyone please explain why the Office Add-In sub menu appears inconsistent?
The image below shows the dialog displayed after selecting 'Insert', 'My Add-Ins', 'See All'.
The 3 dialogs are from 3 machines that have the same version of Office installed, logged into the same live account and each machine has the same Trusted Location entry https://[???????].sharepoint.com/sites/AppCatalog/.
Yet i get 3 different sub menus. Any ideas?
I assume you refer to the tabs/section inside the dialog? It appears you have 3 different catalogs configured and potentially different identities on each machine. To give you context:
My Add-ins Tab: Shows all the add-ins for your current liveId/individual account.
My Organization: Only appears when you sideload an add-in via a file share. As you point out, via the trusted catalogs section on File>Options>Trust Center>Trusted Catalogs. We should probably rename that tab to "Developer" as reality is that is mostly intended for developers to sideload add-ins for testing purposes.
Office 365: This is the new Centralized Deployment feature that is currently in preview. It only appears when you are signed-in with an organizational account AND the tenant you are connected to supports the feature
Store. Self-explanatory.
So, double check your configuration and make sure to restart the application as configuration changes might not take effect until you do.
thanks for the reply Humberto,
I now have my Add-ins appearing for Desktop Excel.
If I deploy my Add-ins via the Centralized Deployment method, and they appear under 'Office 365' in Desktop Excel, how do i access them in Excel Online? The sub menu only contains 'My AddIns', 'My Organisation' and 'Store'

Is it possible to develop for Office 365 (confusion due to new-to-365)

I'm not even sure if it's possible at all. Earlier, I've been designing addons to Outlook and Excel (using VSTO and VBA). Now, my company got into this Office 365 thinking and we have all our environment online, no local software at all, strictly and only web client approach.
It's got its advantages. But the downside is that out support have no clue how it works (except to tell us to click the settings and look for options, sigh). So, I wonder if it's possible to develop and somehow upload my own customizations (NB we have no servers in the cloud - everything is provided on SAS basis).
Suppose I'd like to:
mark all emails from a certain sender with yellow background in the list in Outlook, or
highlight every occurrence of the word "donkey" in the text mass in Word.
Is it doable at all?
I've googled for it but all I can see is that there's an API and that we need to runt the stuff on our own servers. Am I just confusing myself here?
First of all, if you have O365 subscription, you actually still have the ability to download all desktop version of Office. So your existing customizations should still work on Desktop version of Office.
Second,check out Office Add-in on dev.office.com. Office Add-ins extend the functionality of Office with a web app that lives within Office applications. They work similar to traditional VBA add-ons and we have a rich set of API that helps you interact with Office. This is basically a web app with JavaScript, HTML and CSS. You can build it with any tools you are familiar with and host it anywhere. It is really easy to build and let us know if you have more questions.
Thanks,
Sky
Your best bet for highlighting messages from specific senders would be to use the Outlook REST APIs to access the messages and either stamp a specific category color on the messages, or a flag to highlight the message in the list view. That approach would work across both Web, Outlook, and even Mobile (if you use flags). The new Outlook add-in model is powerful and works for Outlook on the Web, as well as Outlook on Windows, but doesn't allow you to update the colors of the list view add-ins.

Resources