1
votes

I'm currently working on a custom Outlook add-in and having trouble finding additional information on support for task pane pinning. I've implemented the SupportsPinning element in the projects manifest with version override support for schema versions 1.0 and 1.1 using the example provided at https://docs.microsoft.com/en-us/outlook/add-ins/pinnable-taskpane. I can currently pin the task pane in the Outlook for Mac client but have not been able to find any information about pinning on Outlook on the web. "Outlook on the web" is referenced in the documentation I've linked to above but only briefly. I've tested pinning using both a free and premium account without luck.

My question is, are there additional steps needed to enable task pane pinning for Outlook on the web that go beyond what is provided in the linked documentation above or the code snippet that I've included below. It's strange to me that pinning works in the desktop client but not on the web.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<OfficeApp
  xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
  xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides"
  xsi:type="MailApp">

  <Id>092ef841-4956-4ff0-ba08-6723f15583dd</Id>

  <Version>1.0.0.0</Version>
  <ProviderName>Client</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>

  <DisplayName DefaultValue="Client CRM"/>
  <Description DefaultValue="Client Microsoft Office Outlook Add-in"/>

  <!-- Icons -->
  <IconUrl DefaultValue="https://localhost:9001/assets/client-64.png"/>
  <HighResolutionIconUrl DefaultValue="https://localhost:9001/assets/client-128.png"/>

  <!-- URLS -->
  <SupportUrl DefaultValue="https://client.test/support"/>

  <!-- Domain Whitelist -->
  <!-- https://docs.microsoft.com/en-us/outlook/add-ins/manifests#app-domains -->
  <AppDomains>
    <AppDomain>https://client.test/</AppDomain>
  </AppDomains>

  <!-- Hosts -->
  <!-- https://docs.microsoft.com/en-us/outlook/add-ins/manifests#hosts -->
  <Hosts>
    <Host Name="Mailbox"/>
  </Hosts>

  <!-- Requirements -->
  <!-- https://docs.microsoft.com/en-us/outlook/add-ins/manifests#requirements -->
  <!-- https://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.4/outlook-requirement-set-1.4 -->
  <Requirements>
    <Sets>
      <Set Name="Mailbox" MinVersion="1.4"/>
    </Sets>
  </Requirements>

  <!-- Form Settings -->
  <!-- https://docs.microsoft.com/en-us/outlook/add-ins/manifests#form-settings -->
  <FormSettings>
    <Form xsi:type="ItemRead">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://localhost:9001/taskpane.html"/>
        <RequestedHeight>450</RequestedHeight>
      </DesktopSettings>
    </Form>
    <Form xsi:type="ItemEdit">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://localhost:9001/taskpane.html"/>
      </DesktopSettings>
    </Form>
  </FormSettings>

  <!-- Permissions -->
  <!-- https://docs.microsoft.com/en-us/outlook/add-ins/manifests#permissions -->
  <Permissions>ReadWriteItem</Permissions>

  <!-- Activation Rules -->
  <!-- https://docs.microsoft.com/en-us/outlook/add-ins/manifests#activation-rules -->
  <Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit"/>
  </Rule>

  <DisableEntityHighlighting>false</DisableEntityHighlighting>

  <!-- VersionOverrides for the v1.0 schema -->
  <!-- https://docs.microsoft.com/en-us/office/dev/add-ins/reference/manifest/versionoverrides#attributes -->
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Requirements>
      <!-- https://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.5/outlook-requirement-set-1.5 -->
      <bt:Sets DefaultMinVersion="1.5">
        <bt:Set Name="Mailbox"/>
      </bt:Sets>
    </Requirements>

    <Hosts>
      <Host xsi:type="MailHost">
        <DesktopFormFactor>
          <!-- Message read ribbon -->
          <ExtensionPoint xsi:type="MessageReadCommandSurface">
            <OfficeTab id="messageReadTab">
              <Group id="messageReadTab.mainGroup">
                 <Label resid="GroupLabel"/>
                 <Control xsi:type="Button" id="openSidebarReadButton">
                  <Label resid="TaskpaneButton.Label"/>
                  <Supertip>
                    <Title resid="TaskpaneButton.Label"/>
                    <Description resid="TaskpaneButton.Tooltip"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.16x16"/>
                    <bt:Image size="32" resid="Icon.32x32"/>
                    <bt:Image size="80" resid="Icon.80x80"/>
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Taskpane.Url"/>
                  </Action>
                 </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>

          <!-- Message compose ribbon -->
          <ExtensionPoint xsi:type="MessageComposeCommandSurface">
            <OfficeTab id="messageComposeTab">
              <Group id="messageComposeTab.mainGroup">
                <Label resid="GroupLabel"/>
                <Control xsi:type="Button" id="openSidebarComposeButton">
                  <Label resid="TaskpaneButton.Label"/>
                  <Supertip>
                    <Title resid="TaskpaneButton.Label"/>
                    <Description resid="TaskpaneButton.Tooltip"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.16x16"/>
                    <bt:Image size="32" resid="Icon.32x32"/>
                    <bt:Image size="80" resid="Icon.80x80"/>
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Taskpane.Url"/>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>

    <Resources>
      <bt:Images>
        <bt:Image id="Icon.16x16" DefaultValue="https://localhost:9001/assets/client-16.png"/>
        <bt:Image id="Icon.32x32" DefaultValue="https://localhost:9001/assets/client-32.png"/>
        <bt:Image id="Icon.80x80" DefaultValue="https://localhost:9001/assets/client-80.png"/>
      </bt:Images>

      <bt:Urls>
        <bt:Url id="Taskpane.Url" DefaultValue="https://localhost:9001/taskpane.html"/>
      </bt:Urls>

      <bt:ShortStrings>
        <bt:String id="GroupLabel" DefaultValue="Client CRM"/>
        <bt:String id="TaskpaneButton.Label" DefaultValue="Add a Journal Entry"/>
      </bt:ShortStrings>

      <bt:LongStrings>
        <bt:String id="TaskpaneButton.Tooltip" DefaultValue="The Client CRM Add-In for Outlook"/>
      </bt:LongStrings>
    </Resources>

    <!-- VersionOverrides for the v1.1 schema -->
    <!-- https://docs.microsoft.com/en-us/office/dev/add-ins/reference/manifest/versionoverrides#attributes -->
    <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
      <Requirements>
        <!-- https://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.5/outlook-requirement-set-1.5 -->
        <bt:Sets DefaultMinVersion="1.5">
          <bt:Set Name="Mailbox"/>
        </bt:Sets>
      </Requirements>

      <Hosts>
        <Host xsi:type="MailHost">
          <DesktopFormFactor>
            <!-- Message read ribbon -->
            <ExtensionPoint xsi:type="MessageReadCommandSurface">
              <OfficeTab id="messageReadTab">
                <Group id="messageReadTab.mainGroup">
                   <Label resid="GroupLabel"/>
                   <Control xsi:type="Button" id="openSidebarReadButton">
                    <Label resid="TaskpaneButton.Label"/>
                    <Supertip>
                      <Title resid="TaskpaneButton.Label"/>
                      <Description resid="TaskpaneButton.Tooltip"/>
                    </Supertip>
                    <Icon>
                      <bt:Image size="16" resid="Icon.16x16"/>
                      <bt:Image size="32" resid="Icon.32x32"/>
                      <bt:Image size="80" resid="Icon.80x80"/>
                    </Icon>
                    <Action xsi:type="ShowTaskpane">
                      <SourceLocation resid="Taskpane.Url"/>
                      <!-- Support Pinning -->
                      <!-- https://docs.microsoft.com/en-us/outlook/add-ins/pinnable-taskpane#support-task-pane-pinning -->
                      <SupportsPinning>true</SupportsPinning>
                    </Action>
                   </Control>
                </Group>
              </OfficeTab>
            </ExtensionPoint>

            <!-- Message compose ribbon -->
            <ExtensionPoint xsi:type="MessageComposeCommandSurface">
              <OfficeTab id="messageComposeTab">
                <Group id="messageComposeTab.mainGroup">
                  <Label resid="GroupLabel"/>
                  <Control xsi:type="Button" id="openSidebarComposeButton">
                    <Label resid="TaskpaneButton.Label"/>
                    <Supertip>
                      <Title resid="TaskpaneButton.Label"/>
                      <Description resid="TaskpaneButton.Tooltip"/>
                    </Supertip>
                    <Icon>
                      <bt:Image size="16" resid="Icon.16x16"/>
                      <bt:Image size="32" resid="Icon.32x32"/>
                      <bt:Image size="80" resid="Icon.80x80"/>
                    </Icon>
                    <Action xsi:type="ShowTaskpane">
                      <SourceLocation resid="Taskpane.Url"/>
                    </Action>
                  </Control>
                </Group>
              </OfficeTab>
            </ExtensionPoint>
          </DesktopFormFactor>
        </Host>
      </Hosts>

      <Resources>
        <bt:Images>
          <bt:Image id="Icon.16x16" DefaultValue="https://localhost:9001/assets/client-16.png"/>
          <bt:Image id="Icon.32x32" DefaultValue="https://localhost:9001/assets/client-32.png"/>
          <bt:Image id="Icon.80x80" DefaultValue="https://localhost:9001/assets/client-80.png"/>
        </bt:Images>

        <bt:Urls>
          <bt:Url id="Taskpane.Url" DefaultValue="https://localhost:9001/taskpane.html"/>
        </bt:Urls>

        <bt:ShortStrings>
          <bt:String id="GroupLabel" DefaultValue="Client CRM"/>
          <bt:String id="TaskpaneButton.Label" DefaultValue="Add a Journal Entry"/>
        </bt:ShortStrings>

        <bt:LongStrings>
          <bt:String id="TaskpaneButton.Tooltip" DefaultValue="The Client CRM Add-In for Outlook"/>
        </bt:LongStrings>
      </Resources>
    </VersionOverrides>
  </VersionOverrides>
</OfficeApp>

1
<SupportsPinning>true</SupportsPinning> is all you need in the manifest, no other change is required on the manifest. We are unable to reproduce the issue, can you share your manifest, so that we can try to install and repro the issue?Outlook Add-ins Team - MSFT
@OutlookAdd-insTeam-MSFT I've updated my question to include the complete manifest. I've replace my clients name with "Client" per their request but everything else is exactly the same. I've also done some additional testing and it appears that pinning works everywhere for our 365 development account but only on the Windows and Mac desktop apps when using a free or personal outlook.com email address.Brad Lilley
@OutlookAdd-insTeam-MSFT, I am also noticing this problem in Shared Mailboxes on Web. Is that a known/expected behavior? Please note that taskpane pinning works for both primary and shared mailboxes on Desktop client.Swasti Gupta

1 Answers

0
votes

Thanks for reporting the issue regarding pinning of an add-in on a free/consumer account in Outlook Online. It has been put on our backlog. We unfortunately have no timelines to share at this point