Category | Microsoft Docs article | Related commit history on GitHub | Change details |
---|---|---|---|
microsoft-365-copilot-transparency-note | Microsoft 365 Copilot Transparency Note | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/copilot/microsoft-365-copilot-transparency-note.md | Microsoft provides tools like the Microsoft Copilot Dashboard for Microsoft 365 - [Microsoft AI principles](https://www.microsoft.com/ai/responsible-ai) - [Microsoft responsible AI resources](https://www.microsoft.com/ai/tools-practices) - [Microsoft Azure Learning courses on responsible AI](/ai/)-- [2024 RAI Transparency Report](https://aka.ms/RAITransparencyReport2024)+- [Responsible AI Transparency Report](https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/msc/documents/presentations/CSR/Responsible-AI-Transparency-Report-2024.pdf) |
archive | Archive Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/archive/archive-overview.md | Administrators should notify the site owners and end users before a site is arch ## Limitations -Document Center templates are not available to archive with Microsoft 365 Archive. +Publishing sites, Teams with channel sites, and a handful of legacy site template types are not available to archive with Microsoft 365 Archive. <! ## Preview limitations |
enterprise | Advanced Data Residency | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/advanced-data-residency.md | The following workloads are included in ADR. For more information, see: The Advanced Data Residency ("ADR") add-on is intended for Microsoft 365 enterprise customers who have comprehensive data residency requirements. To be eligible to purchase ADR, customers must meet the following prerequisites: -- The _Tenant_ _Default Geography_ must be one of the countries or regions included in the _Local Region Geography_: Australia, Brazil, Canada, France, Germany, India, Israel, Italy, Japan, Mexico, Poland, Qatar, South Korea, Norway, South Africa, Spain, Sweden, Switzerland, United Arab Emirates, and United Kingdom.+- The _Tenant_ _Default Geography_ must be one of the countries or regions included in the _Local Region Geography_: Australia, Brazil, Canada, France, Germany, India, Israel, Italy, Japan, Mexico, Poland, Qatar, South Korea, Norway, South Africa, Spain, Sweden, Switzerland, Taiwan, United Arab Emirates, and United Kingdom. - Customers must have licenses for one or more of the following products: - Microsoft 365 F1, F3, E3, or E5 (including SKUs without Microsoft Teams) - Office 365 F3, E1, E3, or E5 (including SKUs without Microsoft Teams) |
enterprise | Hybrid Solutions | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/hybrid-solutions.md | Title: "Hybrid solutions" Previously updated : 07/31/2024 Last updated : 11/14/2024 audience: ITPro description: Provides a list of links to useful information for deploying Office With Microsoft Azure, you can deploy some Office Server workloads that were typically deployed on-premises in Azure infrastructure services. -For Microsoft 365 identity infrastructure in Azure: - - [Using Microsoft Entra ID for SharePoint Server Authentication](/azure/active-directory/saas-apps/sharepoint-on-premises-tutorial) -- [Deploy Microsoft 365 Directory Synchronization in Microsoft Azure](deploy-microsoft-365-directory-synchronization-dirsync-in-microsoft-azure.md)- - [Connect an on-premises network to a Microsoft Azure virtual network](connect-an-on-premises-network-to-a-microsoft-azure-virtual-network.md) -For SharePoint Server 2013 workloads in Azure: - -- [Microsoft Azure Architectures for SharePoint 2013](microsoft-azure-architectures-for-sharepoint-2013.md)--- [SharePoint Server 2013 Disaster Recovery in Microsoft Azure](sharepoint-server-2013-disaster-recovery-in-microsoft-azure.md)--- [Internet Sites in Microsoft Azure using SharePoint Server 2013](internet-sites-in-microsoft-azure-using-sharepoint-server-2013.md)+- [Deploy Microsoft 365 Directory Synchronization in Microsoft Azure](deploy-microsoft-365-directory-synchronization-dirsync-in-microsoft-azure.md) ## Related topics |
enterprise | M365 Dr Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/m365-dr-overview.md | In order to promote clarity in the capability descriptions on data residency fun |Macro Region Geography 1 - EMEA <br/> |Data centers in Austria, Finland, France, Ireland, Israel, Italy, Netherlands, Poland, Spain, Sweden <br/> | |Macro Region Geography 2 - Asia Pacific <br/> |Data centers in Australia, Hong Kong Special Administrative Region, Japan, Malaysia, Singapore, South Korea, Taiwan <br/> | |Macro Region Geography 3 - Americas <br/> |Data centers in Brazil, Chile, Mexico, United States <br/> |-|Local Region Geography <br/> |Australia, Brazil, Canada, France, Germany, India, Israel, Italy, Japan, Mexico, Norway, Poland, Qatar, South Africa, South Korea, Spain, Sweden, Switzerland, United Arab Emirates, United Kingdom <br/> | -|Future Local Region Geography <br/> | Future planned data center regions: Indonesia, Malaysia, Austria, Chile, New Zealand, Denmark, Greece, Taiwan, Saudi Arabia <br/> | +|Local Region Geography <br/> |Australia, Brazil, Canada, France, Germany, India, Israel, Italy, Japan, Mexico, Norway, Poland, Qatar, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, United Arab Emirates, United Kingdom <br/> | +|Future Local Region Geography <br/> | Future planned data center regions: Indonesia, Malaysia, Austria, Chile, New Zealand, Denmark, Greece, Saudi Arabia <br/> | |Geography <br/> |_Local Region Geography, Future Local Region Geography_, or _Macro Region Geography_ <br/> | |Satellite Geography <br/> |If a customer subscribes to the Multi Geo service, then they can set policy at a user level to store customer data in other Geographies outside of the _Tenant_ _Primary Provisioned Geography_ <br/> | |Microsoft Entra ID <br/> |Microsoft Entra ID is the new name for [Azure Active Directory](/entra/fundamentals/new-name) <br/> | There are three methods for ensuring that the _Tenant_ data location for a parti | Spain | M-A | M-A | M-A | M-A | A | A | A | A | A | | Sweden | P-M-A | P-M-A | P-M-A | P-M-A | A | A | A | A | A | | Switzerland | P-M-A | P-M-A | P-M-A | P-M-A | A | A | A | A | A |+| Taiwan | M-A | M-A | M-A | M-A | A | A | A | A | A | | United Arab Emirates | P-M-A | P-M-A | P-M-A | P-M-A | A | A | A | A | A | | United Kingdom | P-M-A | P-M-A | P-M-A | P-M-A | A | A | A | A | A | | United States | P-M | P-M | P-M | P-M | - | - | - | - | - | The following Regional Geographies can store data at rest. |South Africa |Cape Town, Johannesburg | |Sweden |Gävle, Sandviken, Staffanstorp | |Switzerland |Geneva, Zurich |+|Taiwan |Taipei | |United Arab Emirates |Dubai, Abu Dhabi | |United Kingdom |Durham, London, Cardiff | |United States |Boydton, Cheyenne, Chicago, Des Moines, Quincy, San Antonio, Santa Clara, San Jose | |
enterprise | Multi Tenant People Search | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/multi-tenant-people-search.md | f1.keywords: description: Learn about People Search in multitenant Microsoft 365 organizations. -# Microsoft 365 multitenant Organization People Search +# Microsoft 365 Multitenant Organization People Search The multitenant Organization (MTO) People Search is a collaboration feature that enables search and discovery of people across multiple tenants. A tenant admin can enable cross-tenant synchronization that allows users to be synced to another tenant and be discoverable in its global address list. Once enabled, users are able to search and discover synced user profiles from the other tenant and view their corresponding people cards. +Learn more about [Cross Tenant Synchronization](/entra/identity/multi-tenant-organizations/cross-tenant-synchronization-overview) + ![Azure AD Sync](../media/mt-people-search/aad-sync.png) Megan's user account has been synced from the _Fabrikam_ tenant to the target te ## Known limitations -- The Microsoft Teams audio and video call buttons will direct the call to the Megan's Contoso tenant Teams instance and not the Teams instance target tenant (Fabrikam).-- The current experience provides limited information on the people card (basic contact information, job title and office location).-- There's no external tag to differentiate synced users and internal users. For example, if there was a megan@fabrikam and megan@Contoso there's no (External) tag to show that megan@fabrikam is a different user.-+The current experience provides limited information on the people card (basic contact information, job title and office location). ## Prerequisites To test the MTO People Search feature, it's assumed that you already have the fo - Two Microsoft Entra / Microsoft 365 tenants - Both tenants have the **Microsoft Entra Cross-tenant Synchronization** feature enabled - Provisioned users from home to target tenants+- Users are provisioned as UserType = member ## Use Cases |
enterprise | O365 Data Locations | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/o365-data-locations.md | description: "Determine where your Microsoft 365 customer data is stored worldwi # Where your Microsoft 365 customer data is stored > [!NOTE]-> The **Spain** local data center region launched on May 31, 2024. If your organization requires the migration of your Microsoft 365 customer data to Spain, and data residency commitments for Spain, see [Advanced Data Residency](/microsoft-365/enterprise/advanced-data-residency). +> The **Taiwan** local data center region launched on November 1, 2024. If your organization requires the migration of your Microsoft 365 customer data to Taiwan, and data residency commitments for Taiwan, see [Advanced Data Residency](advanced-data-residency.md). > [!NOTE]-> The **Mexico** local data center region launched on May 3, 2024. If your organization requires the migration of your Microsoft 365 customer data to Mexico, and data residency commitments for Mexico, see [Advanced Data Residency](/microsoft-365/enterprise/advanced-data-residency). +> The **Spain** local data center region launched on May 31, 2024. If your organization requires the migration of your Microsoft 365 customer data to Spain, and data residency commitments for Spain, see [Advanced Data Residency](advanced-data-residency.md). ++ > [!NOTE] +> The **Mexico** local data center region launched on May 3, 2024. If your organization requires the migration of your Microsoft 365 customer data to Mexico, and data residency commitments for Mexico, see [Advanced Data Residency](advanced-data-residency.md). > [!NOTE]-> For tenants in Australia, Brazil, Canada, France, Germany, India, Israel, Italy, Japan, Mexico, Norway, Poland, Qatar, South Africa, South Korea, Spain, Sweden, Switzerland, United Arab Emirates, and the United Kingdom, additional workloads are available for data residency commitments. For more information, see [Advanced Data Residency](advanced-data-residency.md). +> For tenants in Australia, Brazil, Canada, France, Germany, India, Israel, Italy, Japan, Mexico, Norway, Poland, Qatar, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, United Arab Emirates, and the United Kingdom, additional workloads are available for data residency commitments. For more information, see [Advanced Data Residency](advanced-data-residency.md). See the following links to understand how you can determine current data residency and data residency commitments. |
enterprise | M365 Personnel Location | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/personnel-loc/m365-personnel-location.md | |
enterprise | Setup Guides For Microsoft 365 | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/enterprise/setup-guides-for-microsoft-365.md | To reach the **Advanced deployment guides & assistance** page: 2. Find the _Training, guides & assistance_ card and select **Advanced deployment guides & assistance**. -3. If you donΓÇÖt see that card, access the page directly at (https://aka.ms/advanceddeploymentguides). +3. If you donΓÇÖt see that card, access the page directly at https://aka.ms/advanceddeploymentguides. :::image type="content" alt-text="This screenshot shows the training & guides card in the Microsoft 365 admin center." source="../media/setup-guides-for-microsoft-365/thumbnail_ADG-TrainingCard.png"::: |
frontline | Shifts Custom Wfm Integration | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/frontline/shifts-custom-wfm-integration.md | + + Title: Create a custom integration to sync your workforce management system with Shifts ++++++audience: admin ++search.appverid: MET150 +description: Learn how to create a custom integration using the Microsoft Graph API to integrate your workforce management (WFM) system with Shifts. +ms.localizationpriority: high ++ - M365-collaboration + - m365-frontline + - teams-1p-app-admin +appliesto: + - Microsoft Teams + - Microsoft 365 for frontline workers Last updated : 11/13/2024+++# Create a custom integration to sync your workforce management system with Shifts ++## Overview ++Integrate Shifts, the schedule management app in Microsoft Teams, with your workforce management (WFM) system. This integration allows your frontline workforce to view and manage their schedules directly within Shifts. ++This article guides you through how to create a connector using the Microsoft Graph API to facilitate this integration. ++You can set up your integration for either a one-way data sync or a two-way data sync. ++- **One-way sync (WFM system to Shifts)**: In this setup, schedule data in your WFM system is synced to Shifts. The connector reads the data in your WFM system and writes it to Shifts. However, any changes made in Shifts by users aren't reflected back in your WFM system. ++- **Two-way sync (WFM system and Shifts)**: This setup allows for a bidirectional sync. Schedule data in your WFM system is synced to Shifts, and any changes made in Shifts by users are synced back to your WFM system. The connector validates and approves the changes users make in Shifts according to business rules enforced by your WFM system before the changes are written to Shifts. ++> [!NOTE] +> If you're using UKG Pro WFM, Blue Yonder WFM, or Reflexis WFM, you can also use a managed connector to integrate Shifts with your WFM system. To learn more, see [Shifts connectors](shifts-connectors.md). ++### Terminology used in this article ++|Term |Description | +||| +|connector| An app that syncs schedule data between your WFM system and Shifts. | +|workforce integration| An entity that defines the encryption method for communication, the callback URL for your connector, and the Shifts entities to be synced.| ++## Before you begin ++### Prerequisites ++- Determine what data you want to sync according to your business needs. +- Understand the authentication and authorization concepts in the Microsoft identity platform. See [Authentication and authorization basics](/graph/auth/auth-concepts). +- Admin roles required: + - At least a [Cloud Application Administrator](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json#cloud-application-administrator) to register an app in the Microsoft Entra admin center + - Global Administrator to register the workforce integration ++### Get familiar with the integration process ++Here's an overview of the integration steps. Review this information to get an understanding of the overall process, including who performs each step. ++|Step|One-way sync |Two-way sync|Who performs this step| +||||| +|1|Create your connector:<ul><li>Step 1a: [Sync changes made in Shifts to your WFM system](#step-1a-sync-changes-made-in-shifts-to-your-wfm-system)<ul><li>Implement [/connect endpoint](#post-connect)</li><li>Implement [/update endpoint](#post-teamsteamidupdate) and [make Shifts read-only](#if-you-want-to-set-up-a-one-way-sync-make-shifts-read-only)</li></ul><li>Step 1b: [Sync data from your WFM system to Shifts](#step-1b-sync-data-from-your-wfm-system-to-shifts)</li></ul>|Create your connector:<ul><li>Step 1a: [Sync changes made in Shifts to your WFM system](#step-1a-sync-changes-made-in-shifts-to-your-wfm-system)<ul><li>Implement [/connect endpoint](#post-connect)</li><li>Implement [/update endpoint](#post-teamsteamidupdate)</li></ul><li>Step 1b: [Sync data from your WFM system to Shifts](#step-1b-sync-data-from-your-wfm-system-to-shifts)</li></ul>|Developer| +|2|[Register an app in the Microsoft Entra admin center](#step-2-register-an-app-in-the-microsoft-entra-admin-center)|[Register an app in the Microsoft Entra admin center](#step-2-register-an-app-in-the-microsoft-entra-admin-center)|An account that is at least a Cloud Application Administrator | +|3|[Create teams and schedules for syncing](#step-3-create-teams-and-schedules-for-syncing)|[Create teams and schedules for syncing](#step-3-create-teams-and-schedules-for-syncing)|Developer or Teams Administrator | +|4|Register and enable the workforce integration:<ul><li>Step 4a: [Register the workforce integration in your tenant](#step-4a-register-the-workforce-integration-in-your-tenant)</li><li>Step 4b: [Enable the workforce integration for your team schedules](#step-4b-enable-the-workforce-integration-for-your-team-schedules)</li></ul>|Register and enable the workforce integration:<ul><li>Step 4a: [Register the workforce integration in your tenant](#step-4a-register-the-workforce-integration-in-your-tenant)</li><li>Step 4b: [Enable the workforce integration for your team schedules](#step-4b-enable-the-workforce-integration-for-your-team-schedules)</li></ul>|Step 4a: Global Administrator<br>Step 4b: Developer| ++## Step 1: Create your connector ++To create your connector, complete the following steps: ++- [Step 1a: Sync changes made in Shifts to your WFM system](#step-1a-sync-changes-made-in-shifts-to-your-wfm-system) +- [Step 1b: Sync data from your WFM system to Shifts](#step-1b-sync-data-from-your-wfm-system-to-shifts) ++### Step 1a: Sync changes made in Shifts to your WFM system ++To set up your connector to receive and process requests from Shifts, you need to implement the following endpoints: ++- [/connect](#post-connect) (required) +- [/update](#post-teamsteamidupdate) (required) +- [/read](#post-teamsteamidread) (optional) ++**Determine your base URL and endpoint URLs** ++The base URL (webhook) is `{url}/v{apiVersion}`, where **url** and **apiVersion** are the properties you set in the [workforceIntegration](/graph/api/resources/workforceintegration?view=graph-rest-1.0) object when you [register the workforce integration](#step-4a-register-the-workforce-integration-in-your-tenant). ++The relative paths of the endpoint URLs are as follows: ++- /connect: `/connect` +- /update: `/teams/{teamid}/update` +- /read: `/teams/{teamid}/read` ++For example, if **url** is `https://contosoconnector.com/wfi` and **apiVersion** is `1`: ++- The base URL is `https://contosoconnector/com/wfi/v1`. +- The /connect endpoint is `https://contosoconnector/wfi/v1/connect`. +- The /update endpoint is `https://contosoconnector/wfi/v1/teams/{teamid}/update`. +- The /read endpoint is `https://contosoconnector/wfi/v1/teams/{teamid}/read`. ++**Encryption** ++All requests are encrypted using AES-256-CBC-HMAC-SHA256. You specify the shared secret key when you [register the workforce integration](#step-4a-register-the-workforce-integration-in-your-tenant). Responses sent back to Shifts shouldn't be encrypted. ++#### Endpoints ++##### POST /connect ++Shifts calls this endpoint to test the connection when you [register the workforce integration](#step-4a-register-the-workforce-integration-in-your-tenant). A success response is returned only if this endpoint returns an HTTP `200 OK` response. ++###### Example ++**Request**<br> +ConnectRequest ++```http +{ + "tenantId": "a1s2s355-a2s3-j7h6-f4d3-k2h9j4mqpz", + "userId": "4fbc12d7-1234-56ef-8a90-bc123d45678f" +} +``` ++**Response**<br> +Return HTTP `200 OK` ++##### POST /teams/{teamid}/update ++Shifts calls this endpoint to get approval when a change is made to a Shifts entity in a [schedule](/graph/api/resources/schedule?view=graph-rest-1.0) that's [enabled for the workforce integration](#step-4b-enable-the-workforce-integration-for-your-team-schedules). If this endpoint approves the request, the change is saved in Shifts. ++As your WFM system is the system of record, when the connector receives a request to this endpoint, it should first attempt to make the change in the WFM system. If the change is successful, return success. Otherwise, return failure. ++Shifts calls this endpoint for every change (including changes initiated from the connector/WFM system). If the connector sent an update to Shifts using Graph API and added the `X-MS-WFMPassthrough: workforceIntegratonId` header, the request coming to this endpoint will have the same header, which allows you to identify and handle these requests appropriately. For example, return success without making the same change in the WFM system as it would be redundant and can cause the connector to get stuck in an infinite loop. ++The following diagram shows the flow of data. +++> [!NOTE] +> See [WfiRequest](#wfirequest) in the **Endpoint reference** section of this article for more information on Request and Response models. ++**Return response code**<br> +Any response from the integration, including an error, must have an HTTP response code `200 OK`. The response body must have the status and error message that reflects the appropriate sub call error state. Any response from the integration other than `200 OK` is treated as an error and returned to the caller (client or Microsoft Graph). ++###### If you want to set up a one-way sync, make Shifts read-only ++For a one-way sync, you must make Shifts read-only so that users can't make changes in Shifts. To make Shifts read-only, return a failure response for all requests from Shifts. ++For example, to block users from making changes to shifts in the schedule, this endpoint must return a failure response whenever it receives a request regarding a `shift` entity. ++###### Example ++**Request**<br> +WfiRequestContainer ++The following example shows a request from Shifts that asks whether a shift, whose ID is SHFT_12345678-1234-1234-1234-1234567890ab and has the properties listed in **body**, can be saved in Shifts. This request was triggered when a user creates a shift in Shifts. ++```http +{ + "requests": [ + { + "id": "SHFT_12345678-1234-1234-1234-1234567890ab", + "method": "POST", + "url": "/shifts/SHFT_12345678-1234-1234-1234-1234567890ab", + "headers": { + "X-MS-Transaction-ID": "1", + "X-MS-Expires": "2024-10-11T21:27:59.0134605Z" + }, + "body": { + "draftShift": { + "activities": [], + "isActive": true, + "startDateTime": "2024-10-12T15:00:00.000Z", + "endDateTime": "2024-10-12T17:00:00.000Z", + "theme": "Blue" + }, + "isStagedForDeletion": false, + "schedulingGroupId": "TAG_a3e0b3f1-4a5c-4c2e-8eeb-5b8c3d1e3f8b", + "userId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "createdDateTime": "2024-10-11T21:27:28.762Z", + "lastModifiedDateTime": "2024-10-11T21:27:28.762Z", + "lastModifiedBy": { + "user": { + "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "displayName": "Adele Vance" + } + }, + "id": "SHFT_12345678-1234-1234-1234-1234567890ab" + } + } + ] +} +``` ++**Response**<br> +WfiResponse ++Success: Return HTTP `200 OK` ++This example shows the response returned if the endpoint approved the request. In this scenario, the shift is saved in Shifts, and the user can see the shift in the schedule. ++```http +{ + "responses": [ + { + "id": "SHFT_12345678-1234-1234-1234-1234567890ab", + "status": 200, + "body": { + "eTag": "3f4e5d6c-7a8b-9c0d-1e2f-3g4h5i6j7k8l", + "error": null, + "data": null + } + } + ] +} +``` ++Failure: Return HTTP `200 OK` ++This example shows the response returned if the endpoint denied the request. In this scenario, the user receives a ΓÇ£Could not add the shiftΓÇ¥ error message in Shifts. ++```http +{ + "responses": [ + { + "id": "SHFT_12345678-1234-1234-1234-1234567890ab", + "status": 500, + "body": { + "error": { + "code": "500", + "message": ΓÇ£Could not add the shiftΓÇ¥ + }, + "data": null + } + } + ] +} +``` ++##### POST /teams/{teamid}/read ++This endpoint handles requests from Shifts to fetch eligible time-off reasons or eligible shifts for swap requests for a user. ++> [!NOTE] +> As of October 2024, this endpoint is supported only in the beta version of the Microsoft Graph API. You must also specify values for the **eligibilityFilteringEnabledEntities** property when you [register the workforce integration](#step-4a-register-the-workforce-integration-in-your-tenant). ++The following diagram shows the flow of data. +++**Return response code**<br> +Any response from the integration, including an error, must have an HTTP response code `200 OK`. The response body must include the status and error message that reflects the appropriate sub call error state. Any response from the integration other than `200 OK` is treated as an error and returned to the caller (client or Microsoft Graph). ++###### Example: TimeOffReason ++**Request** ++The following example shows a request from Shifts that asks which time off reasons a user (user ID aa162a04-bec6-4b81-ba99-96caa7b2b24d) is eligible for. This request was triggered when the user requests time off in Shifts. ++```http + { + "requests": [ + { + "id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d", + "method": "GET", + "url": "/users/aa162a04-bec6-4b81-ba99-96caa7b2b24d/timeOffReasons?requestType=TimeOffReason" + } + ] +} +``` ++**Response**<br> +Success: Return HTTP `200 OK` ++The following response shows that the eligible time off reason IDs for the user are "TOR_29f4a110-ae53-458b-83d6-00c910fe2fbc" and "TOR_8c0e8d07-ac1a-48dc-b3af-7bc71a62ff7d". In this scenario, the user sees the corresponding time-off reasons to choose from in Shifts. ++```http +{ + "responses": [ + { + "id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d", + "status": 200, + "body": { + "data": [ + "TOR_29f4a110-ae53-458b-83d6-00c910fe2fbc", + "TOR_8c0e8d07-ac1a-48dc-b3af-7bc71a62ff7d" + ], + "error": null + } + } + ] +} +``` ++Failure: Return HTTP `200 OK` ++In this example, an error response is returned because the connector couldn't reach the WFM system to retrieve time off reasons for the user. ++```http + { + "responses": [ + { + "id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d", + "status": 503, + "body": { + "data": null, + "error": { + "code": "503", + "message": "Could not reach WFM" + } + } + } + ] +} +``` ++###### Example: SwapRequest ++**Request** ++The following example shows a request from Shifts that asks which shifts are eligible for a swap with the shift whose ID is SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029 between 2024-10-01T04:00:00.0000000Z and 2024-11-01T03:59:59.9990000Z. ++```http +{ + "requests": [ + { + "id": " SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029", + "method": "GET", + "url": "/shifts/SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029/requestableShifts?requestType=SwapRequest&startTime=2024-10-01T04:00:00.0000000Z&endTime=2024-11-01T03:59:59.9990000Z" + } + ] +} +``` ++**Response**<br> +Success: Return HTTP `200 OK` ++The following response shows that the shift can be swapped with the shift whose ID is SHFT_98e96e23-966b-43be-b90d-4697037b67af. ++```http +{ + "responses": [ + { + "id": " SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029", + "status": 200, + "body": { + "data": ["SHFT_98e96e23-966b-43be-b90d-4697037b67af"], + "error": null, + } + } + ] +} +``` ++Failure: Return HTTP `200 OK` ++In this example, an error response is returned because the connector couldn't reach the WFM system to retrieve eligible shifts for a swap request for the user. ++```http +{ + "responses": [ + { + "id": " SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029", + "status": 503, + "body": { + "data": null, + "error": { + "code": "503", + "message": "could not reach WFM" + } + } + } + ] +} ++``` ++### Step 1b: Sync data from your WFM system to Shifts ++Use Shifts APIs in Microsoft Graph to read schedule data from your WFM system and write the data to Shifts. ++For example, to add a shift to Shifts, use the [Create shift](/graph/api/schedule-post-shifts?view=graph-rest-1.0) API. ++See the [Microsoft Graph API v1.0 reference](/graph/api/resources/shift?view=graph-rest-1.0) for Shifts APIs, which are listed under **Shift management**. ++> [!NOTE] +> The `MS-APP-ACTS-AS` header is required in requests and must contain the ID (GUID) of the user your app is acting on behalf of. We recommend you use the user ID of a team owner when updating the schedule. ++The following diagram shows the flow of data. +++#### Initial sync ++For the first sync, the connector should read data in your WFM system and write the data to Shifts. We recommend you sync two weeks of future data. ++#### After the initial sync ++After the first sync, you can choose to: ++- **Synchronously update Shifts with changes in your WFM system**: Send an update to Shifts for every change made in your WFM system. +- **Asynchronously update Shifts with changes in your WFM system**: Perform a periodic sync by writing all changes that occurred in your WFM system within a certain timeframe (for example, 30 seconds, 10 minutes) to Shifts. ++ All write operations to Shifts, including write operations initiated by the connector, trigger a call to the connectorΓÇÖs /update endpoint. We recommend you include the `X-MS-WFMPassthrough: workforceIntegratonId` header to all write calls so the connector can identify and handle them appropriately. For example, if your WFM system initiated the change, approve it without applying an update to your WFM system. ++ > [!NOTE] + > If you're setting up your connector for a two-way sync of data between your WFM system and Shifts, exclude changes initiated from Shifts in the periodic sync. These changes are already written in Shifts. ++## Step 2: Register an app in the Microsoft Entra admin center ++Follow these steps to register an app for your connector in the Microsoft identity platform, configure permissions for the app to access Microsoft Graph, and get an access token. ++1. Sign in to the Microsoft Entra admin center as at least a [Cloud Application Administrator](/entra/identity/role-based-access-control/permissions-reference#cloud-application-administrator). +1. Register your app. For steps, see [Register an application with the Microsoft identity platform](/graph/auth-register-app-v2). +1. Assign the *Schedule.ReadWrite.All* [application permissions](/graph/permissions-overview?tabs=http#application-permissions) to the app for app-only access and get an access token. ++ For step-by-step guidance, see [Get access without a user](/graph/auth-v2-service?view=graph-rest-1.0). ++ The access token verifies that your app is authorized to [call Microsoft Graph using its own identity](/graph/auth/auth-concepts#access-scenarios) using the *Schedule.ReadWrite.All* permission. It must be included in the Authorization header of requests. ++## Step 3: Create teams and schedules for syncing ++Set up the teams in Teams that you want to sync. You can use existing teams or create new teams. ++1. Set up teams in Teams to correspond with the teams and locations in your WFM system. Ensure you add the following people to each team: ++ - Frontline managers as team owners. Make sure you add the user in the `MS-APP-ACTS-AS` header as a team owner of each respective team. + - Frontline workers as team members. +1. Create a schedule in Shifts for each team. To learn more, see [Create or replace schedule](/graph/api/team-put-schedule?view=graph-rest-1.0). +1. Add schedule groups to the schedule on each team. Schedule groups are used to group employees based on common characteristics within a team. For example, schedule groups can be departments or job types. To learn more, see [schedulingGroup resource type](/graph/api/resources/schedulinggroup?view=graph-rest-1.0). +1. Add employees to each schedule group. To learn more, see [Replace schedulingGroup](/graph/api/schedulinggroup-put?view=graph-rest-1.0). ++> [!NOTE] +> You can also use the Teams admin center to set up your teams and deploy Shifts to the teams. To learn more, see: +> +>- [Deploy frontline dynamic teams at scale](deploy-dynamic-teams-at-scale.md) +>- [Deploy Shifts to your frontline teams at scale](deploy-shifts-at-scale.md) ++## Step 4: Register and enable the workforce integration ++A workforce integration defines the encryption settings for communication between Shifts and the connector, the URL for callbacks from Shifts, and the types of entities to sync. ++To register and enable the workforce integration, complete the following steps: ++- [Step 4a: Register the workforce integration](#step-4a-register-the-workforce-integration-in-your-tenant) +- [Step 4b: Enable the workforce integration for your team schedules](#step-4b-enable-the-workforce-integration-for-your-team-schedules) ++### Step 4a: Register the workforce integration in your tenant ++You must be a Global Administrator to perform this step. ++Use the [Create workforceIntegration](/graph/api/workforceintegration-post?view=graph-rest-1.0&tabs=http) API to register your workforce integration in your tenant. ++Here's an example of a request. ++```http +POST https://graph.microsoft.com/v1.0/teamwork/workforceIntegrations/ +{ + "displayName": "Contoso integration", + "apiVersion": 1, + "encryption": { + "protocol": "sharedSecret", + "secret": "secret-value" + }, + "isActive": true, + "url": "https://contosoconnector.com/wfi", + "supportedEntities": "Shift,SwapRequest,UserShiftPreferences,Openshift,OpenShiftRequest,OfferShiftRequestΓÇ¥, +} +``` ++See the following table for details. To learn more, see [workforceIntegration resource type](/graph/api/resources/workforceintegration?view=graph-rest-1.0). ++|Property |More information| +||| +|apiVersion|API version for the callback URL. Your [base URL](#step-1a-sync-changes-made-in-shifts-to-your-wfm-system) is comprised of the **url** property and this property.| +|encryption|Set **protocol** to `sharedSecret`. The **secret** value must be exactly 64 characters. <br><br>Use the secret to decrypt the encrypted JSON payloads that are sent to your connector's endpoint from Shifts. The payload is encrypted using AES-256-CBC-HMAC-SHA256. Your app should safely persist this secret. For example, in a key vault.| +|supportedEntities|Specify the Shifts entities you want the connector to support for syncing. Shifts calls your connector's [/update](#post-teamsteamidupdate) endpoint when any of these entities change so that you can approve or reject the change. For the list of the possible values, see [workforceIntegration resource type](/graph/api/resources/workforceintegration?view=graph-rest-1.0)<br><br>**Note** This list is an [evolvable enumeration](/graph/best-practices-concept#handling-future-members-in-evolvable-enumerations). You must use the `Prefer: include-unknown-enum-members` request header to get all the values.| +|eligibilityFilteringEnabledEntities|**Note**: As of October 2024, this endpoint is supported only in the beta version of the Microsoft Graph API.<br><br>Specify the Shifts entities that you want to connector to support for eligibility filtering. Possible values are:<ul><li>`none`: Empty list</li><li>`SwapRequests`: Shifts calls your connector's [/read](#post-teamsteamidread) endpoint to get a filtered list of shifts a user can choose from for a swap request.</li><li>`TimeOffReasons`: Shifts calls your connector's [/read](#post-teamsteamidread) endpoint to get a filtered list of time-off reasons a user can choose from when they request time off. </li></ul>**Note** This list is an [evolvable enumeration](/graph/best-practices-concept#handling-future-members-in-evolvable-enumerations). You must use the `Prefer: include-unknown-enum-members` request header to get all the values.| +|url|The workforce integration URL for callbacks from Shifts. Your [base URL](#step-1a-sync-changes-made-in-shifts-to-your-wfm-system) is comprised of this property and the **apiVerson** property.| ++### Step 4b: Enable the workforce integration for your team schedules ++Enable your workforce integration on the schedules you want to manage. To do this, use the [Create or replace schedule](/graph/api/team-put-schedule?view=graph-rest-1.0) API to create or update the schedule for your teams. ++Here's an example of a request. ++```http +POST https://graph.microsoft.com/v1.0/teams/{teamId}/schedule +{ + enabled: true, + timezone: ΓÇ£America/New_YorkΓÇ¥, + workforceIntegrationIds: [ ΓÇ£workforceIntegrationIdΓÇ¥] +} +``` ++- Specify the workforceIntegrationId that was generated when you [registered the workforce integration](#step-4a-register-the-workforce-integration-in-your-tenant). +- You can enable a maximum of one workforce integration on a schedule. If you include more than one workforceIntegrationId in the request, the first one is used. ++## Troubleshooting ++### Connector ++#### When the connector responds to a request from Shifts, what happens if it returns a response code other than 200? Does it make a difference if it returns a status other than 200 in the response body? ++There's a difference between these two scenarios. ++- If the connector returns a response code other than 200, Shifts attempts to retry the /read and /update endpoints multiple times. Eventually, Shifts displays a "Something went wrong. The workforce integration setup on your team has responded with invalid data." error message. +- If the connector returns a status other than 200 in the response body, Shifts displays a "Something went wrong. Sorry, your change couldnΓÇÖt be completed," error message and stops retrying the endpoints. ++#### What happens if the connector returns invalid data in the response body? ++Shifts attempts to retry the /read and /update endpoints multiple times. Eventually, Shifts displays a "Something went wrong. The workforce integration set up on your team has responded with invalid data." error message. ++#### How do I identify whether the request was originally made in Shifts or in the WFM system to prevent an infinite loop? ++Add the `X-MS-WFMPassthrough: workforceIntegratonId` header to all write and update calls to identify/ignore the changes triggered by connector. This header is used to indicate that the request is made because of a preceding call that was made by the connector to Graph API to sync data from your WFM system to Shifts. ++### Workforce integration registration ++#### I registered the workforce integration and specified "eligibilityFilteringEnabledEntities" including "SwapRequest, OfferShiftRequest, and TimeOffReason' but the response body doesn't show the "eligibilityFilteringEnabledEntities" list. ++Eligibility filtering is currently supported through the `https://graph.microsoft.com/beta` endpoint, not the `https://graph.microsoft.com/v1` endpoint. ++#### I registered the workforce integration and added "supportedEntities" but receive a 400 Bad Request response and an "Invalid payload: Requested value 'shift, ....' was not found." message ++Make sure that every Shifts entity in the `supportedEntities` list request body starts with an uppercase letter. For example, +`"supportedEntities":"Shift,SwapRequest,OpenShift"`. ++#### I registered the workforce integration and implemented the /connect, /update, and /read endpoints, but the webhook isn't working. ++Make sure your workforce integration is enabled for your team schedule. Additionally, check that the **url** and **apiVersion** properties are correct. ++## Endpoint reference ++### Request ++#### ConnectRequest ++|Property |Type |Description | +|||| +|tenantId|String|ID of the tenant for the workforce integration| +|userId|String|ID of the user for the workforce integration| ++```http +{ + "tenantId": "string", + "userId": "string" +} +``` ++#### WfiRequestContainer ++|Property |Type |Description | +|||| +|requests|WfiRequest collection|List of WfiRequests| ++```http +{ + "requests": [ + { + "id": "string", + "method": "string", + "url": "string", + "headers": { + "X-MS-Transaction-ID": "string", + "X-MS-Expires": "string (DateTime)" + }, + "body": "ShiftsEntity" + } + ] +} +``` ++Number of elements in a request: ++- In most cases, a request has one element. +- Some requests, such as swap shift request approvals, have five elements: one PUT swap request, two DELETE shifts (existing shifts), and two POST shifts (new shifts). ++#### WfiRequest ++|Property |Type |Description | +|||| +|id |String|ID of the entity| +|method |String|The method invoked on the item. For example, `POST`, `PUT`, `GET`, `DELETE`. | +|url |String|Indicates the type of entity and operation details.| +|headers|WfiRequestHeader |Headers| +|body|ShiftsEntity |Body of the entity related to the request.| ++##### For POST /teams/{teamId}/update ++|Property |Type |Description | +|||| +|id |String|ID of the entity| +|method |String|Use `POST` to create an entity, `PUT` to update an entity, `DELETE` to delete an entity. | +|url|String|The format is `/{EntityType}/{EntityId}`. Possible values for `{EntityType}` are `shifts`, `swapRequests`, `timeoffReasons`, `openshifts`, `openshiftrequests`, `offershiftrequests`, `timesoff`, `timeOffRequests`. For example, `/shifts/SHFT_12345678-1234-1234-1234-1234567890ab`.| +|header|WfiRequestHeader |Header| +|body|ShiftsEntity |Must match `{EntityType}` in the **url** property. Use one of [shift](/graph/api/resources/shift?view=graph-rest-1.0), [swapShiftsChangeRequest](/graph/api/resources/swapshiftschangerequest?view=graph-rest-1.0), [timeOffReason](/graph/api/resources/timeoffreason?view=graph-rest-1.0), [openshift](/graph/api/resources/openshift?view=graph-rest-1.0), [openShiftChangeRequest](/graph/api/resources/openshiftchangerequest?view=graph-rest-beta), [offerShiftRequests](/graph/api/resources/offershiftrequest?view=graph-rest-1.0), [timeOff](/graph/api/resources/timeoff?view=graph-rest-1.0), [timeOffRequest](/graph/api/resources/timeoffrequest?view=graph-rest-1.0). For example, `/shifts/SHFT_12345678-1234-1234-1234-1234567890ab`.| ++#### For POST /teams/{teamsId}/read ++|Property |Type |Description | +|||| +|id |String|ID of the entity| +|method |Is always `GET`.| +|url|String|<ul><li>**TimeOffReasons**: The format is `/users/{userId}/timeOffReasons?requestType=TimeOffReason`. For example, `/users/aa162a04-bec6-4b81-ba99-96caa7b2b24d/timeOffReasons?requestType=TimeOffReason`.</li><li>**SwapRequest**: The format is `/shifts/{ShiftsId}/requestableShifts?requestType=SwapRequest\u0026startTime={startTime}\u0026endTime={endTime}`. For example, `shifts/SHFT_1132430e-365e-4dc5-b8b0-b800592a81a8/requestableShifts?requestType=SwapRequest\u0026startTime=2024-10-01T07:00:00.0000000Z\u0026endTime=2024-11-01T06:59:59.9990000Z`. </li></ul>| +|header|WfiRequestHeader |Header| +|body|ShiftsEntity |Is always `null`.| ++#### WfiRequestHeader ++|Property |Type |Description | +|||| +|X-MS-Transaction-ID |String|Transaction ID| +|X-MS-Expires|String (DateTime)|Transaction expiration DateTime| ++`X-MS-WFMPassthrough: workforceIntegratonId` won't be included in WfiRequestHeader. It should be extracted from the HttpRequest. ++### Response ++#### WfiResponseContainer ++|Property |Type |Description | +|||| +|responses |WfiResponse collection|List of WfiResponses| ++```http +{ + "responses": [ + { + "id": "string", + "status": "string", + "body": { + "eTag": "string", + "error": { + "code": "string", + "message": "string" + }, + "data": ["string1", "string2"] + } + } + ] +} +``` ++#### WfiResponse ++|Property |Type |Description | +|||| +|id|String|ID of the entity| +|method|String|The method being invoked on this item. For example, POST, PUT.| +|status|String|Result of the operation| +|body|WfiResponseBody|WfiResponseBody| ++#### WfiResponse ++|Property |Type |Description | +|||| +|eTag |String|eTag| +|error|WfiResponseError|Details about the error| +|data|String|The requested data (for read requests)| ++#### WfiResponseError ++|Property |Type |Description | +|||| +|code|String|Error code| +|message|String|Error message| ++## Related articles ++- [Shifts for your frontline organization](shifts-for-teams-landing-page.md) +- [Shifts connectors](shifts-connectors.md) |
includes | Microsoft 365 Multi Geo Locations | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/includes/microsoft-365-multi-geo-locations.md | Last updated 04/01/2024 |Spain |ESP |Sweden |SWE |Switzerland |CHE+|Taiwan |TWN |United Arab Emirates |ARE |United Kingdom |GBR |United States |NAM |
syntex | Autofill Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/autofill-overview.md | description: Learn about the autofill columns service in Microsoft Syntex. # Overview of autofill columns in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out autofill columns and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of autofill columns and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). Autofill columns in Microsoft Syntex automatically extract, summarize, or generate content from files uploaded to a SharePoint document library. By using large language models (LLMs) through generative AI, autofill columns can save metadata automatically, streamlining the process of managing files and their associated information. |
syntex | Content Assembly | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/content-assembly.md | description: Learn about how to create documents and other content using a moder # Overview of content assembly in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out content assembly and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of content assembly and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). You can use the content assembly capabilities in Microsoft Syntex to help you automatically generate standard repetitive business documents, such as contracts, statements of work, service agreements, letters of consent, sales pitches, and correspondence. You can do all these actions quicker, more consistently, and with fewer errors by creating modern templates and using those templates to generate documents. |
syntex | Document Understanding Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/document-understanding-overview.md | description: Learn about the unstructured document processing model in Microsoft # Overview of unstructured document processing in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out unstructured document processing and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of unstructured document processing and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). <!</br> |
syntex | Esignature Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/esignature-overview.md | description: Learn about SharePoint eSignature and how to send electronic signat # Overview of SharePoint eSignature > [!NOTE]-> Through June 2025, you can try out eSignature by sending up to five requests at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of eSignature by sending up to five requests at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). SharePoint eSignature simplifies the process of signing and sharing documents, while providing the security and compliance of Microsoft 365. |
syntex | Esignature Setup | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/esignature-setup.md | By default, SharePoint eSignature is turned on for libraries in all SharePoint s 2. On the **eSignature** panel, under **Sites where eSignature can be used**, select **Select sites**. - a. Choose the site or sites on which this service should be enabled. + 1. Choose the site or sites on which this service should be enabled. - b. To restrict user access to this service, select **No sites** or **Selected sites (up to 100)**. Follow the instructions to either select the sites or upload a CSV listing a maximum of 100 sites. Be sure to add your content center site if you want it to be included. You can then manage site access permissions for the sites you selected. + 1. To restrict user access to this service, select **No sites** or **Selected sites (up to 100)**. Follow the instructions to either select the sites or upload a CSV listing a maximum of 100 sites. Be sure to add your content center site if you want it to be included. You can then manage site access permissions for the sites you selected. - c. Select **Save**. + 1. Select **Save**. > [!NOTE] > The first eSignature request in a Microsoft 365 tenant might take a little longer to execute than usual. It can take a few seconds to a few minutes; however, subsequent requests are executed normally. We recommend that admins create the first eSignature request in a SharePoint site as the final setup step. By default, SharePoint eSignature is turned on for libraries in all SharePoint s ### Microsoft Entra B2B -Microsoft Entra B2B provides authentication and management of guests. External signers or recipients are considered as guests within your tenant. To be able to send requests to signers outside your organization, you need to enable [Microsoft Entra B2B integration for SharePoint and OneDrive](/sharepoint/sharepoint-azureb2b-integration). You would need to resend the eSignature request if a guest user is deleted from the tenant while a signature request is still ongoing. The guest user would no longer be able to access the request document or the final signed document. If you need to delete a guest user, make sure they aren't a party to any ongoing request. +Microsoft Entra B2B provides authentication and management of new guests. External signers or recipients are considered as guests within your tenant. To be able to send requests to new signers outside your organization, you need to enable [Microsoft Entra B2B integration for SharePoint and OneDrive](/sharepoint/sharepoint-azureb2b-integration). Consider whether this meets your compliance and security requirements when enabling eSignature. +A guest user would no longer be able to access the request document or the final signed document if they are deleted from the tenant while the request is still ongoing and you would need to resend the eSignature request if this happens. If you need to delete a guest user, make sure they aren't a party to any ongoing request. This setting does not impact existing in your existing Azure Active Directory guest users. ### Authentication |
syntex | Form Processing Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/form-processing-overview.md | description: Learn how to use AI Builder to create structured or freeform docume # Overview of structured and freeform document processing in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out structured and freeform document processing and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of structured and freeform document processing and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). <!</br> |
syntex | Image Tagging Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/image-tagging-overview.md | description: Learn about enhanced image tagging in Microsoft Syntex. # Overview of enhanced image tagging in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out image tagging and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of image tagging and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). Microsoft Syntex makes it easier to find and manage images in SharePoint document libraries. It does this process by automatically tagging images with descriptive keywords using AI. These keywords are stored in a managed metadata column (the **Image Tags** column), which makes it easier to search, sort, filter, and manage the images. |
syntex | Ocr Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/ocr-overview.md | description: Learn about optical character recognition in Microsoft Syntex. # Overview of optical character recognition in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out optical character recognition and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of optical character recognition and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). The optical character recognition (OCR) service in Microsoft Syntex lets you extract printed or handwritten text from images and documents. Examples of images include posters, drawings, and product labels. Examples of documents include articles, reports, forms, and invoices. |
syntex | Prebuilt Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/prebuilt-overview.md | description: Learn about prebuilt models in Microsoft Syntex. # Overview of prebuilt document processing in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out prebuilt document processing and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of prebuilt document processing and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). In addition to [custom models](model-types-overview.md#custom-models), Microsoft Syntex provides *prebuilt models* to automate the extraction of information. |
syntex | Taxonomy Tagging Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/taxonomy-tagging-overview.md | description: Learn about taxonomy tagging in Microsoft Syntex. # Overview of taxonomy tagging in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out taxonomy tagging and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of taxonomy tagging and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). Microsoft Syntex gives you the ability to automatically tag documents in SharePoint libraries with terms configured in your term store using AI. These terms are stored in a managed metadata column (also known as a taxonomy column) on the item, making the documents easier to search, sort, filter, and manage. |
syntex | Translation Overview | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/translation-overview.md | description: Learn about the document translation service in Microsoft Syntex. # Overview of document translation in Microsoft Syntex > [!NOTE]-> Through June 2025, you can try out document translation and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). +> Through June 2025, you can try out a [limited amount](promo-syntex.md#monthly-included-capacity) of document translation and other selected Syntex services at no cost if you have [pay-as-you-go billing](syntex-azure-billing.md) set up. For information and limitations, see [Try out Microsoft Syntex and explore its services](promo-syntex.md). Microsoft Syntex lets you easily create a translated copy of a selected file or a set of files in a SharePoint document library. You can translate a file, while preserving the original format and structure of the file. Translation is available for all supported languages and dialects. Microsoft Syntex lets you easily create a translated copy of a selected file or This feature lets you translate files of different types either manually or automatically by creating a rule. -You can also use the translation feature for translating video transcripts and closed captioning files. For more information, see [Transcript translations in Stream for SharePoint](https://prod.support.services.microsoft.com/office/microsoft-syntex-pay-as-you-go-transcript-translations-in-stream-for-sharepoint-2e34ad1b-e213-47ed-a806-5cc0d88751de). +You can also use the translation feature for translating video transcripts and closed captioning files. For more information, see [Transcript translations in Stream for SharePoint](https://support.microsoft.com/office/microsoft-syntex-pay-as-you-go-transcript-translations-in-stream-for-sharepoint-2e34ad1b-e213-47ed-a806-5cc0d88751de). ## Requirements and limitations |
syntex | Translation | https://github.com/MicrosoftDocs/microsoft-365-docs/commits/public/microsoft-365/syntex/translation.md | To create a translated version of a document, follow these steps: ## Translate a document automatically You can create a rule to automatically translate a document [when a new file is added](content-processing-translate.md#translate-a-document-when-a-new-file-is-added) or [when data in a column changes](content-processing-translate.md#translate-a-document-when-data-in-a-column-changes). For step-by-step instruction, see [Create a rule to translate a document](content-processing-translate.md).-<! -### When a new file is added -To create a rule to translate documents automatically when a document is created, follow these steps: --1. From a SharePoint document library, select **Automate** > **Rules** > **Create a rule**. -- ![Screenshot of the document library showing the Automate > Rules > Create a rule option.](../media/content-understanding/content-processing-create-rule.png) --2. On the **Create a rule** page, select **A new file is added**. -- ![Screenshot of the Create a rule page showing the A new file is added option highlighted.](../media/content-understanding/content-processing-create-a-rule-page.png) --3. Under **When a new file is added**, complete the rule statement: -- a. Select **Choose action**, and then select **create a translated copy in**. -- ![Screenshot of the rule statement page showing the translation option highlighted.](../media/content-understanding/translation-rule-create-copy.png) -- b. Select **enter a language**, and then enter a language or use the drop-down menu to choose a language into which you want to translate the file. -- ![Screenshot of the rule statement page showing the enter language option.](../media/content-understanding/translation-rule-enter-language.png) --4. When your rule statement is complete, select **Create**. You can [see and manage the new rule](content-processing-overview.md#manage-a-rule) on the **Manage rules** page. --### When data in a column changes --To create a rule to translate documents automatically when data in a column changes, follow these steps: --1. From a SharePoint document library, select **Automate** > **Rules** > **Create a rule**. -- ![Screenshot of the document library showing the Automate > Rules > Create a rule option.](../media/content-understanding/content-processing-create-rule.png) --2. On the **Create a rule** page, select **Data in a column changes**. -- ![Screenshot of the Create a rule page showing the A new file is added option highlighted.](../media/content-understanding/content-processing-create-a-rule-page.png) --3. Under **When data in a column changes**, complete the rule statement: -- a. Select **Choose a column**, and then select the appropriate column for which to translate the file. -- ![Screenshot of the Create a rule page showing the beginning rule statement.](../media/content-understanding/translation-beginning-rule.png) -- b. Select **Choose a condition**, and then select the appropriate condition under which to translate the file. -- c. Select **Choose action**, and then select **create a translated copy in**. -- d. Select **enter a language**, and then select the language into which you want to translate the file. -- ![Screenshot of the Create a rule page showing the enter a language option.](../media/content-understanding/translation-column-enter-language.png) --4. When your rule statement is complete, select **Create**. You can [see and manage the new rule](content-processing-overview.md#manage-a-rule) on the **Manage rules** page. --<! -### View the translation activity feed of a document library --When a file is translated, you'll see an update in the source library activity feed. The updates occur in both the source library and the target library. --In the document library, in the upper-right corner of the page, select the details pane icon (![Screenshot of the details pane icon.](../media/content-understanding/details-pane-icon.png)) to view the recent history, activity, and rules that have been applied to the library. -- ![Screenshot of a document library showing the details pane highlighted.](../media/content-understanding/content-processing-details-pane.png) -> ## Translate a video transcript -To create a translated version of a video transcript or closed captioning, see [How to translate transcripts in Stream for SharePoint](https://prod.support.services.microsoft.com/office/microsoft-syntex-pay-as-you-go-transcript-translations-in-stream-for-sharepoint-2e34ad1b-e213-47ed-a806-5cc0d88751de#bkmk_howtotranslate). +To create a translated version of a video transcript or closed captioning, see [How to translate transcripts in Stream for SharePoint](https://support.microsoft.com/office/microsoft-syntex-pay-as-you-go-transcript-translations-in-stream-for-sharepoint-2e34ad1b-e213-47ed-a806-5cc0d88751de#bkmk_howtotranslate). |