Namespace: microsoft.graph
Important
APIs under the /beta
version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.
Create a new workforceIntegration object.
This API is available in the following national cloud deployments.
Global service |
US Government L4 |
US Government L5 (DOD) |
China operated by 21Vianet |
✅ |
❌ |
❌ |
❌ |
Permissions
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.
Permission type |
Least privileged permissions |
Higher privileged permissions |
Delegated (work or school account) |
WorkforceIntegration.ReadWrite.All |
Not available. |
Delegated (personal Microsoft account) |
Not supported. |
Not supported. |
Application |
WorkforceIntegration.ReadWrite.All |
Not available. |
HTTP request
POST /teamwork/workforceIntegrations
Name |
Description |
Authorization |
Bearer {token}. Required. Learn more about authentication and authorization. |
Content-type |
application/json. Required. |
MS-APP-ACTS-AS |
A user ID (GUID). Required only if the authorization token is an application token; otherwise, optional. |
Request body
In the request body, supply a JSON representation of a workforceIntegration object.
Response
If successful, this method returns a 201 Created
response code and a new workforceIntegration object in the response body.
Examples
Example 1: Create a new workforceIntegration object.
Request
The following example shows a request to create a new workforceIntegration object.
POST https://graph.microsoft.com/beta/teamwork/workforceIntegrations
Content-type: application/json
{
"displayName": "displayName-value",
"apiVersion": 99,
"encryption": {
"protocol": "protocol-value",
"secret": "secret-value"
},
"isActive": true,
"url": "url-value",
"supports": "supports-value"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new WorkforceIntegration
{
DisplayName = "displayName-value",
ApiVersion = 99,
Encryption = new WorkforceIntegrationEncryption
{
Protocol = WorkforceIntegrationEncryptionProtocol.SharedSecret,
Secret = "secret-value",
},
IsActive = true,
Url = "url-value",
Supports = WorkforceIntegrationSupportedEntities.None,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Teamwork.WorkforceIntegrations.PostAsync(requestBody);
mgc-beta teamwork workforce-integrations create --body '{\
"displayName": "displayName-value",\
"apiVersion": 99,\
"encryption": {\
"protocol": "protocol-value",\
"secret": "secret-value"\
},\
"isActive": true,\
"url": "url-value",\
"supports": "supports-value"\
}\
'
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewWorkforceIntegration()
displayName := "displayName-value"
requestBody.SetDisplayName(&displayName)
apiVersion := int32(99)
requestBody.SetApiVersion(&apiVersion)
encryption := graphmodels.NewWorkforceIntegrationEncryption()
protocol := graphmodels.PROTOCOL-VALUE_WORKFORCEINTEGRATIONENCRYPTIONPROTOCOL
encryption.SetProtocol(&protocol)
secret := "secret-value"
encryption.SetSecret(&secret)
requestBody.SetEncryption(encryption)
isActive := true
requestBody.SetIsActive(&isActive)
url := "url-value"
requestBody.SetUrl(&url)
supports := graphmodels.SUPPORTS-VALUE_WORKFORCEINTEGRATIONSUPPORTEDENTITIES
requestBody.SetSupports(&supports)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
workforceIntegrations, err := graphClient.Teamwork().WorkforceIntegrations().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
WorkforceIntegration workforceIntegration = new WorkforceIntegration();
workforceIntegration.setDisplayName("displayName-value");
workforceIntegration.setApiVersion(99);
WorkforceIntegrationEncryption encryption = new WorkforceIntegrationEncryption();
encryption.setProtocol(WorkforceIntegrationEncryptionProtocol.SharedSecret);
encryption.setSecret("secret-value");
workforceIntegration.setEncryption(encryption);
workforceIntegration.setIsActive(true);
workforceIntegration.setUrl("url-value");
workforceIntegration.setSupports(EnumSet.of(WorkforceIntegrationSupportedEntities.None));
WorkforceIntegration result = graphClient.teamwork().workforceIntegrations().post(workforceIntegration);
const options = {
authProvider,
};
const client = Client.init(options);
const workforceIntegration = {
displayName: 'displayName-value',
apiVersion: 99,
encryption: {
protocol: 'protocol-value',
secret: 'secret-value'
},
isActive: true,
url: 'url-value',
supports: 'supports-value'
};
await client.api('/teamwork/workforceIntegrations')
.version('beta')
.post(workforceIntegration);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\WorkforceIntegration;
use Microsoft\Graph\Beta\Generated\Models\WorkforceIntegrationEncryption;
use Microsoft\Graph\Beta\Generated\Models\WorkforceIntegrationEncryptionProtocol;
use Microsoft\Graph\Beta\Generated\Models\WorkforceIntegrationSupportedEntities;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new WorkforceIntegration();
$requestBody->setDisplayName('displayName-value');
$requestBody->setApiVersion(99);
$encryption = new WorkforceIntegrationEncryption();
$encryption->setProtocol(new WorkforceIntegrationEncryptionProtocol('protocol-value'));
$encryption->setSecret('secret-value');
$requestBody->setEncryption($encryption);
$requestBody->setIsActive(true);
$requestBody->setUrl('url-value');
$requestBody->setSupports(new WorkforceIntegrationSupportedEntities('supports-value'));
$result = $graphServiceClient->teamwork()->workforceIntegrations()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Teams
$params = @{
displayName = "displayName-value"
apiVersion = 99
encryption = @{
protocol = "protocol-value"
secret = "secret-value"
}
isActive = $true
url = "url-value"
supports = "supports-value"
}
New-MgBetaTeamworkWorkforceIntegration -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.workforce_integration import WorkforceIntegration
from msgraph_beta.generated.models.workforce_integration_encryption import WorkforceIntegrationEncryption
from msgraph_beta.generated.models.workforce_integration_encryption_protocol import WorkforceIntegrationEncryptionProtocol
from msgraph_beta.generated.models.workforce_integration_supported_entities import WorkforceIntegrationSupportedEntities
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = WorkforceIntegration(
display_name = "displayName-value",
api_version = 99,
encryption = WorkforceIntegrationEncryption(
protocol = WorkforceIntegrationEncryptionProtocol.SharedSecret,
secret = "secret-value",
),
is_active = True,
url = "url-value",
supports = WorkforceIntegrationSupportedEntities.None,
)
result = await graph_client.teamwork.workforce_integrations.post(request_body)
Response
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
{
"displayName": "displayName-value",
"apiVersion": 99,
"encryption": {
"protocol": "protocol-value",
"secret": "secret-value"
},
"isActive": true,
"url": "url-value",
"supports": "supports-value"
}
Example 2: Create a new workforceIntegration with SwapRequest enabled for eligibility filtering
The following example shows a request with SwapRequest enabled for eligibility filtering.
Request
POST https://graph.microsoft.com/beta/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/",
"supports": "Shift,SwapRequest",
"eligibilityFilteringEnabledEntities": "SwapRequest"
}
Response
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/",
"supports": "Shift,SwapRequest",
"eligibilityFilteringEnabledEntities": "SwapRequest"
}
To update an existing workforceIntegration object with SwapRequest enabled for eligibility filtering, see the Update method.
Example 3: Fetching eligible shifts when SwapRequest is included in eligibilityFilteringEnabledEntities
The interaction between Shifts app and workforce integration endpoints will follow the existing pattern.
Request
The following 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}”
}]
}
Response
The following is an example of the response from the workforce integration service.
HTTP/1.1 200 OK
{
"responses": [
{
"body": {
"SHFT_6548f642-cbc1-4228-8621-054327576457",
"SHFT_6548f642-cbc1-4228-8621-054327571234"
}
"id": "{shiftId}",
"status: 200,
"body": {
"data": [{ShiftId}, {ShiftId}...]
"error": null
}
]
}