| title | Create workforceIntegration |
|---|---|
| description | Create a new workforceIntegration object. |
| ms.localizationpriority | medium |
| author | akumar39 |
| ms.subservice | teams |
| doc_type | apiPageType |
| ms.date | 09/18/2024 |
Namespace: microsoft.graph
Create a new workforceIntegration object.
[!INCLUDE national-cloud-support]
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
[!INCLUDE permissions-table]
Note: This API supports admin permissions. Users with admin roles can access groups that they are not a member of.
POST /teamwork/workforceIntegrations| Name | Description |
|---|---|
| Authorization | Bearer {token}. Required. Learn more about authentication and authorization. |
| Content-type | application/json. Required. |
| MS-APP-ACTS-AS (deprecated) | A user ID (GUID). Required only if the authorization token is an application token; otherwise, optional. The MS-APP-ACTS-AS header is deprecated and no longer required with application tokens. |
In the request body, supply a JSON representation of the workforceIntegration object.
The following table lists the properties that you can use when you create a workforceIntegration object.
| Property | Type | Description |
|---|---|---|
| apiVersion | Int32 | API version for the callback URL. Start with 1. |
| displayName | String | Name of the workforce integration. |
| eligibilityFilteringEnabledEntities | eligibilityFilteringEnabledEntities | Support to view eligibility-filtered results. The possible values are: none, swapRequest, offerShiftRequest, unknownFutureValue, timeOffReason. Use the Prefer: include-unknown-enum-members request header to get the following members in this evolvable enum: timeOffReason. |
| encryption | workforceIntegrationEncryption | The workforce integration encryption resource. |
| isActive | Boolean | Indicates whether this workforce integration is currently active and available. |
| supportedEntities | workforceIntegrationSupportedEntities | The Shifts entities supported for synchronous change notifications. Shifts call the provided URL when client changes occur to the entities specified in this property. By default, no entities are supported for change notifications. The possible values are: none, shift, swapRequest, userShiftPreferences, openShift, openShiftRequest, offerShiftRequest, unknownFutureValue, timeCard, timeOffReason, timeOff, timeOffRequest. Use the Prefer: include-unknown-enum-members request header to get the following values in this evolvable enum: timeCard, timeOffReason , timeOff , timeOffRequest. |
| url | String | Workforce integration URL used for callbacks from the Shifts service. |
If successful, this method returns a 201 Created response code and a new workforceIntegration object in the response body.
The following example shows a request.
POST https://graph.microsoft.com/v1.0/teamwork/workforceIntegrations
Content-Type: application/json
{
"displayName": "ABCWorkforceIntegration",
"apiVersion": 1,
"isActive": true,
"encryption": {
"protocol": "sharedSecret",
"secret": "My Secret"
},
"url": "https://ABCWorkforceIntegration.com/Contoso/",
"supportedEntities": "Shift,SwapRequest",
"eligibilityFilteringEnabledEntities": "SwapRequest"
}[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "c5d0c76b-80c4-481c-be50-923cd8d680a1",
"displayName": "ABCWorkforceIntegration",
"apiVersion": 1,
"isActive": true,
"encryption": {
"protocol": "sharedSecret",
"secret": null
},
"url": "https://abcWorkforceIntegration.com/Contoso/",
"supportedEntities": "Shift,SwapRequest",
"eligibilityFilteringEnabledEntities": "SwapRequest"
}Examples for use cases of WorkforceIntegration entity for Eligibility Filtering by workforce management system (WFM) rules
The following example shows a request.
POST https://graph.microsoft.com/v1.0/teamwork/workforceIntegrations/
Authorization: Bearer {token}
Content-type: application/json
{
"displayName": "ABCWorkforceIntegration",
"apiVersion": 1,
"isActive": true,
"encryption": {
"protocol": "sharedSecret",
"secret": "My Secret"
},
"url": "https://ABCWorkforceIntegration.com/Contoso/",
"supportedEntities": "Shift,SwapRequest",
"eligibilityFilteringEnabledEntities": "SwapRequest"
}
The following example shows the response.
HTTP/1.1 200 OK
{
"id": "c5d0c76b-80c4-481c-be50-923cd8d680a1",
"displayName": "ABCWorkforceIntegration",
"apiVersion": 1,
"isActive": true,
"encryption": {
"protocol": "sharedSecret",
"secret": null
},
"url": "https://abcWorkforceIntegration.com/Contoso/",
"supportedEntities": "Shift,SwapRequest",
"eligibilityFilteringEnabledEntities": "SwapRequest"
}
To see how to update an existing workforceIntegration with SwapRequest enabled for eligibility filtering, see Update.
Example of fetching eligible shifts when SwapRequest is included in eligibilityFilteringEnabledEntities
The interaction between Shifts app and workforce integration endpoints follow the existing pattern.
This example shows a request made by Shifts to the workforce integration endpoint to fetch eligible shifts for a swap request.
POST https://abcWorkforceIntegration.com/Contoso/{apiVersion}/team/{teamId}/read
Accept-Language: en-us
{
"requests": [
{
"id": "{shiftId}",
"method": "GET”,
"url": “/shifts/{shiftId}/requestableShifts?requestType={requestType}&startDateTime={startDateTime}&endDateTime={endDateTime}”
}]
}
The following example shows the response from the workforce integration service.
HTTP/1.1 200 OK
{
"responses": [
"id": "{shiftId}",
"status: 200,
"body": {
"data": [{shiftId}, {shiftId}...]
"error": null
}
]
}