You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/develop/agents-toolkit-overview.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,7 @@ Install the latest version of Agents Toolkit into Visual Studio Code as describe
58
58
-**PowerPoint Desktop (Edge Chromium)**
59
59
-**Word Desktop (Edge Chromium)**
60
60
61
-
1. Press F5. The project builds and a Node dev-server window opens. This process may take a couple of minutes. Eventually, the desktop version of the Office application you selected opens.
61
+
1. Press <kbd>F5</kbd>. The project builds and a Node dev-server window opens. This process may take a couple of minutes. Eventually, the desktop version of the Office application you selected opens.
62
62
63
63
> [!NOTE]
64
64
> If this is the first time that you have sideloaded an Office Add-in on your computer (or the first time in over a month), you may be prompted to delete an old certificate and/or to install a new one. Agree to both prompts.
@@ -82,7 +82,7 @@ Install the latest version of Agents Toolkit into Visual Studio Code as describe
82
82
1.**Close Outlook desktop**.
83
83
1. In Visual Studio Code, open Agents Toolkit.
84
84
1. In the **ACCOUNTS** section, verify that you're signed into Microsoft 365.
85
-
1. Select **View** | **Run** in Visual Studio Code. In the **RUN AND DEBUG** dropdown menu, select the option, **Outlook Desktop (Edge Chromium)**, and then press F5. The project builds and a Node dev-server window opens. This process may take a couple of minutes and then Outlook desktop will open.
85
+
1. Select **View** | **Run** in Visual Studio Code. In the **RUN AND DEBUG** dropdown menu, select the option, **Outlook Desktop (Edge Chromium)**, and then press <kbd>F5</kbd>. The project builds and a Node dev-server window opens. This process may take a couple of minutes and then Outlook desktop will open.
86
86
87
87
> [!NOTE]
88
88
> If this is the first time that you have sideloaded an Office Add-in on your computer (or the first time in over a month), you may be prompted to delete an old certificate and/or to install a new one. Agree to both prompts.
Copy file name to clipboardExpand all lines: docs/excel/custom-functions-troubleshooting.md
+42-1Lines changed: 42 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
ms.date: 06/09/2022
2
+
ms.date: 05/20/2025
3
3
description: Troubleshoot common problems with Excel custom functions.
4
4
title: Troubleshoot custom functions
5
5
ms.topic: troubleshooting
@@ -38,6 +38,47 @@ Generally, these errors correspond to the errors you might already be familiar w
38
38
39
39
Information about custom functions is cached by Office. Sometimes while developing and repeatedly reloading an add-in with custom functions your changes may not appear. You can fix this by clearing the Office cache. For more information, see [Clear the Office cache](../testing/clear-cache.md).
40
40
41
+
### Clear the custom functions cache when your add-in runs
42
+
43
+
There may be times when you need to clear the custom functions cache for an add-in deployed to your end users, so that add-in updates and custom functions setting changes are incorporated at the same time. Without triggering a custom functions cache clear, changes to the **functions.json** and **functions.js** files may take up to 24 hours to reach your end users, while changes to **taskpane.html** reach end users more quickly.
44
+
45
+
> [!NOTE]
46
+
> Once this setting is turned on for a document, it takes effect the next time the document is opened with the add-in. It doesn't apply immediately after the function is called.
47
+
48
+
To ensure that the custom functions cache is cleared by your add-in, add the following code to your **functions.js** file, and then call the `setForceRefreshOn` method in your `Office.onReady` call or other add-in initialization logic.
49
+
50
+
> [!IMPORTANT]
51
+
> This process for clearing the custom functions cache is only supported for custom functions add-ins that use a [shared runtime](../testing/runtimes.md#shared-runtime).
52
+
53
+
```javascript
54
+
// To enable custom functions cache clearing, add this method to your functions.js
55
+
// file, and then call the `setForceRefreshOn` method in your `Office.onReady` call.
56
+
functionsetForceRefreshOn() {
57
+
Office.context.document.settings.set(
58
+
'Office.ForceRefreshCustomFunctionsCache',
59
+
true
60
+
);
61
+
Office.context.document.settings.saveAsync();
62
+
}
63
+
```
64
+
65
+
> [!TIP]
66
+
> Frequently refreshing the custom functions cache can impact performance, so clearing the custom functions cache with `setForceRefreshOn` should only be used during add-in development or to resolve bugs. Once a custom functions add-in is stabilized, stop forcing cache refreshes.
67
+
68
+
To disable the custom functions cache clear in your add-in, set `Office.ForceRefreshCustomFunctionsCache` to `false` and call the method in your `Office.onReady` call. The following code sample shows an example with a `setForceRefreshOff` method.
69
+
70
+
```javascript
71
+
// To disable custom functions cache clearing, add this method to your functions.js
72
+
// file, and then call the `setForceRefreshOff` method in your `Office.onReady` call.
73
+
functionsetForceRefreshOff() {
74
+
Office.context.document.settings.set(
75
+
'Office.ForceRefreshCustomFunctionsCache',
76
+
false
77
+
);
78
+
Office.context.document.settings.saveAsync();
79
+
}
80
+
```
81
+
41
82
## Common problems and solutions
42
83
43
84
### Can't open add-in from localhost: Use a local loopback exemption
| Now | Legacy tokens turned off for most tenants. Admins can reenable legacy tokens via PowerShell. |
27
-
| Jun 2025 | Legacy tokens turned off for all tenants. Admins can no longer reenable legacy tokens via PowerShell and must contact Microsoft for any exception. |
27
+
| Jun 2025 | Legacy tokens turned off for all tenants. Admins can no longer reenable legacy tokens via PowerShell. Admins can request an exception through Microsoft Support at [https://aka.ms/LegacyTokensByOctober](https://aka.ms/LegacyTokensByOctober) (this link requires you to sign in to your tenant). |
28
28
| Oct 2025 | Legacy tokens turned off for all tenants. Exceptions are no longer allowed. |
29
29
30
30
### When is NAA generally available for my channel?
@@ -138,7 +138,7 @@ Use the following steps to perform the test.
138
138
139
139
Yes, there are PowerShell commands you can use to turn legacy tokens on or off in any tenant. For more information on how to turn legacy tokens on or off, see [Turn legacy Exchange Online tokens on or off](turn-exchange-tokens-on-off.md).
140
140
141
-
In June 2025, legacy tokens will be turned off and you won't be able to turn them back on without a specific exception granted by Microsoft. In October 2025, it won't be possible to turn on legacy tokens and they'll be disabled for all tenants.
141
+
In June 2025, legacy tokens will be turned off and you won't be able to turn them back on. Admins can request an exception through Microsoft Support at [https://aka.ms/LegacyTokensByOctober](https://aka.ms/LegacyTokensByOctober) (this link requires you to sign in to your tenant). In October 2025, it won't be possible to turn on legacy tokens and they'll be disabled for all tenants.
Copy file name to clipboardExpand all lines: docs/outlook/onmessagesend-onappointmentsend-events.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Handle OnMessageSend and OnAppointmentSend events in your Outlook add-in with Smart Alerts
3
3
description: Learn about the Smart Alerts implementation and how it handles the OnMessageSend and OnAppointmentSend events in your event-based Outlook add-in.
4
-
ms.date: 03/11/2025
4
+
ms.date: 05/22/2025
5
5
ms.topic: concept-article
6
6
ms.localizationpriority: medium
7
7
---
@@ -340,8 +340,9 @@ While Smart Alerts and the [on-send feature](outlook-on-send-addins.md) provide
|**Supported Outlook clients**|<ul><li>Windows (new and classic)</li><li>Web browser (modern UI)</li><li>Mac (new UI)</li></ul>|<ul><li>Windows (classic)</li><li>Web browser (modern and classic UI)</li><li>Mac (new and classic UI)</li></ul>|
343
-
|**Supported events**|**Add-in only manifest**<ul><li>`OnMessageSend`</li><li>`OnAppointmentSend`</li></ul><br>**Unified manifest for Microsoft 365**<ul><li>`"messageSending"`</li><li>`"appointmentSending"`</li></ul>|**Add-in only manifest**<ul><li>`ItemSend`</li></ul><br>**Unified manifest for Microsoft 365**<ul><li>Not supported</li></ul>|
344
-
|**Manifest extension property**|**Add-in only manifest**<ul><li>`LaunchEvent`</li></ul><br>**Unified manifest for Microsoft 365**<ul><li>`"autoRunEvents"`</li></ul>|**Add-in only manifest**<ul><li>`Events`</li></ul><br>**Unified manifest for Microsoft 365**<ul><li>Not supported</li></ul>|
343
+
|**Supported manifest types**|<ul><li>Unified manifest for Microsoft 365</li><li>Add-in only manifest</li></ul>|Add-in only manifest|
344
+
|**Supported events**|**Add-in only manifest**<ul><li>`OnMessageSend`</li><li>`OnAppointmentSend`</li></ul><br>**Unified manifest for Microsoft 365**<ul><li>`"messageSending"`</li><li>`"appointmentSending"`</li></ul>|`ItemSend`|
345
+
|**Manifest extension property**|**Add-in only manifest**<ul><li>`LaunchEvent`</li></ul><br>**Unified manifest for Microsoft 365**<ul><li>`"autoRunEvents"`</li></ul>|`Events`|
345
346
|**Supported send mode options**|<ul><li>prompt user</li><li>soft block</li><li>block</li></ul><br>To learn more about each option, see [Available send mode options](#available-send-mode-options).|Block|
346
347
|**Maximum number of supported events in an add-in**|One `OnMessageSend` and one `OnAppointmentSend` event.|One `ItemSend` event.|
347
348
|**Add-in deployment**|Add-in can be published to AppSource if its send mode property is set to the **soft block** or **prompt user** option. Otherwise, the add-in must be deployed by an organization's administrator.|Add-in can't be published to AppSource. It must be deployed by an organization's administrator.|
Copy file name to clipboardExpand all lines: docs/outlook/outlook-on-send-addins.md
+17-15Lines changed: 17 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,26 @@
1
1
---
2
2
title: On-send feature for Outlook add-ins
3
3
description: Provides a way to handle an item or block users from certain actions, and allows an add-in to set certain properties on send.
4
-
ms.date: 04/12/2024
4
+
ms.date: 05/22/2025
5
5
ms.localizationpriority: medium
6
6
---
7
7
8
8
# On-send feature for Outlook add-ins
9
9
10
-
The on-send feature for Outlook add-ins provides a way to handle a message or meeting item, or block users from certain actions, and allows an add-in to set certain properties on send.
10
+
> [!IMPORTANT]
11
+
>
12
+
> We recommend using [Smart Alerts](onmessagesend-onappointmentsend-events.md) instead of the on-send feature to check that certain conditions are met before a mail item is sent. Smart Alerts was released in [requirement set 1.12](/javascript/api/requirement-sets/outlook/requirement-set-1.12/outlook-requirement-set-1.12) and introduced the `OnMessageSend` and `OnAppointmentSend` events.
13
+
>
14
+
> Smart Alerts provides the following benefits.
15
+
>
16
+
> - It offers [send mode options](onmessagesend-onappointmentsend-events.md#available-send-mode-options) when you want to provide your users with optional recommendations instead of mandatory conditions, so that they won't be unnecessarily blocked from sending messages. For example, with the **soft block** option, users can still send messages even if the add-in is unavailable during an outage. This option isn't supported by the on-send feature.
17
+
> - It allows your add-in to be published to AppSource if the send mode property is set to the **prompt user** or **soft block** option. To learn more about publishing an event-based add-in, see [AppSource listing options for your event-based Outlook add-in](autolaunch-store-options.md).
18
+
>
19
+
> The on-send feature should only be used to support older Outlook versions that don't support the Smart Alerts feature. For improved security, we encourage users to upgrade to the latest version of Outlook.
20
+
>
21
+
> For more information on the differences between Smart Alerts and the on-send feature, see [Differences between Smart Alerts and the on-send feature](onmessagesend-onappointmentsend-events.md#differences-between-smart-alerts-and-the-on-send-feature). [Try out Smart Alerts by completing the walkthrough](smart-alerts-onmessagesend-walkthrough.md).
11
22
12
-
> [!NOTE]
13
-
> The on-send feature isn't supported in add-ins that use the [Unified manifest for Microsoft 365](../develop/unified-manifest-overview.md). Achieve similar effects by using [event-based activation](autolaunch.md) and implementing a handler for the **OnMessageSend** or **OnAppointmentSend** events, or both. See also the note below about Smart Alerts.
23
+
The on-send feature for Outlook add-ins provides a way to handle a message or meeting item, or block users from certain actions, and allows an add-in to set certain properties on send.
14
24
15
25
For example, use the on-send feature to:
16
26
@@ -21,14 +31,6 @@ The on-send feature is triggered by the `ItemSend` event type and is UI-less.
21
31
22
32
For information about limitations related to the on-send feature, see [Limitations](#limitations) later in this article.
23
33
24
-
> [!NOTE]
25
-
> [Smart Alerts](onmessagesend-onappointmentsend-events.md) is a newer version of the on-send feature. It was released in [requirement set 1.12](/javascript/api/requirement-sets/outlook/requirement-set-1.12/outlook-requirement-set-1.12) and introduced the `OnMessageSend` and `OnAppointmentSend` events. Similar to the on-send feature, Smart Alerts enables your add-in to check that certain conditions are met before a mail item is sent. Smart Alerts differentiates itself from the on-send feature as follows:
26
-
>
27
-
> - It offers [send mode options](onmessagesend-onappointmentsend-events.md#available-send-mode-options) when you want to provide your users with optional recommendations instead of mandatory conditions.
28
-
> - It allows your add-in to be published to AppSource if the send mode property is set to the **prompt user** or **soft block** option. To learn more about publishing an event-based add-in, see [AppSource listing options for your event-based Outlook add-in](autolaunch-store-options.md).
29
-
>
30
-
> For more information on the differences between Smart Alerts and the on-send feature, see [Differences between Smart Alerts and the on-send feature](onmessagesend-onappointmentsend-events.md#differences-between-smart-alerts-and-the-on-send-feature). We invite you to [try out Smart Alerts by completing the walkthrough](smart-alerts-onmessagesend-walkthrough.md).
31
-
32
34
## Supported clients and platforms
33
35
34
36
The following table shows supported client-server combinations for the on-send feature, including the minimum required Cumulative Update where applicable. Excluded combinations are not supported.
@@ -61,11 +63,11 @@ Validation is done on the client side in Outlook when the send event is triggere
61
63
62
64
The following screenshot shows an information bar that notifies the sender to add a subject.
63
65
64
-

66
+
:::image type="content" source="../images/block-on-send-subject-cc-infobar.png" alt-text="An error message prompting the user to enter a missing subject line.":::
65
67
66
68
The following screenshot shows an information bar that notifies the sender that blocked words were found.
67
69
68
-

70
+
:::image type="content" source="../images/block-on-send-body.png" alt-text="An error message notifying the user that blocked words were found.":::
69
71
70
72
## Limitations
71
73
@@ -77,7 +79,7 @@ The on-send feature currently has the following limitations.
77
79
> [!IMPORTANT]
78
80
> When running `npm run validate` to [validate your add-in's manifest](../testing/troubleshoot-manifest.md), you'll receive the error, "Mailbox add-in containing ItemSend event is invalid. Mailbox add-in manifest contains ItemSend event in VersionOverrides which is not allowed." This message appears because add-ins that use the `ItemSend` event, which is required for this version of the on-send feature, can't be published to AppSource. You'll still be able to sideload and run your add-in, provided that no other validation errors are found.
79
81
80
-
-**Manifest**–Only one `ItemSend` event is supported per add-in. If you have two or more `ItemSend` events in a manifest, the manifest will fail validation.
82
+
-**Manifest**–The on-send feature is only supported in add-ins that use the [add-in only manifest](../develop/add-in-manifests.md). It isn't supported in add-ins that use the [unified manifest for Microsoft 365](../develop/unified-manifest-overview.md). In the add-in only manifest, only one `ItemSend` event is supported per add-in. If you have two or more `ItemSend` events in a manifest, the manifest will fail validation.
81
83
-**Performance**– Multiple roundtrips to the web server that hosts the add-in can affect the performance of the add-in. Consider the effects on performance when you create add-ins that require multiple message- or meeting-based operations.
82
84
-**Send Later** (Mac only) – If there are on-send add-ins, the **Send Later** feature will be unavailable.
Copy file name to clipboardExpand all lines: docs/outlook/turn-exchange-tokens-on-off.md
+20-3Lines changed: 20 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Turn legacy Exchange Online tokens on or off
4
4
ms.service: microsoft-365
5
5
ms.subservice: add-ins
6
6
ms.topic: how-to
7
-
ms.date: 05/19/2025
7
+
ms.date: 05/22/2025
8
8
---
9
9
10
10
# Turn legacy Exchange Online tokens on or off
@@ -64,9 +64,26 @@ Blocked: []
64
64
PS C:\>
65
65
```
66
66
67
-
The **Allowed** and **Blocked** sections list the IDs of any add-ins that made recent requests. If an add-in ID is listed in the **Allowed** list, it was granted an Exchange token. If an add-in ID is listed in the **Blocked** list, it was denied an access token because access tokens are turned off.
67
+
The **Allowed** and **Blocked** sections list the IDs of any add-ins that made recent requests. If an add-in ID is listed in the **Allowed** list, it was granted an Exchange token. If an add-in ID is listed in the **Blocked** list, it was denied an access token because access tokens are turned off. The following example shows the Script Lab ID being granted a token on May 16, and also blocked from a token on February 25th. Tokens were turned off for the tenant in February, and turned on in May, so Script Lab appears in both sections.
68
68
69
-
If you have IDs listed in **Allowed** or **Blocked** do additional research to identify the publisher and reach out to them to ensure they are migrating their add-in away from legacy Exchange Online tokens. For more information on identifying publishers, see [Commands to identify the publisher in the FAQ](faq-nested-app-auth-outlook-legacy-tokens.md#what-commands-can-i-use-to-identify-the-publisher).
The report only shows a single entry per add-in. If multiple calls from many users are made from a single add-in for Exchange tokens, those calls appear in the report as one request. The date updates every seven days. In the previous example, the report shows Script lab being granted tokens on May 16. The date won't change unless Script Lab continues to make token requests on May 23rd at which point the report will update the date.
83
+
84
+
To confirm an add-in is no longer requesting Exchange tokens, run the command after seven days and check that the date doesn't change.
85
+
86
+
If you have IDs listed in **Allowed** or **Blocked** that are requesting legacy tokens, identify the publisher and reach out to them to ensure they are migrating their add-in away from legacy tokens. For more information on identifying publishers, see [Commands to identify the publisher in the FAQ](faq-nested-app-auth-outlook-legacy-tokens.md#what-commands-can-i-use-to-identify-the-publisher).
70
87
71
88
> [!NOTE]
72
89
> The `Get-AuthenticationPolicy -AllowLegacyExchangeTokens` command is the only way to view legacy token status. Other commands, such as `Get-AuthenticationPolicy | Format-Table -Auto Name`, don't return the legacy token status.
0 commit comments