---
title: WorkforceManagementApi
---

## PureCloud::WorkforceManagementApi

All URIs are relative to *https://api.mypurecloud.com*

Method | HTTP request | Description
------------- | ------------- | -------------
|[**get_adherence**](WorkforceManagementApi.html#get_adherence) | **GET** /api/v2/workforcemanagement/adherence | Get a list of UserScheduleAdherence records for the requested users|
|[**get_decisions_downloads_download_id**](WorkforceManagementApi.html#get_decisions_downloads_download_id) | **GET** /api/v2/workforcemanagement/decisions/downloads/{downloadId} | Get decisions download link|
|[**get_managementunits_mu_id_users_user_id_timeoffrequests**](WorkforceManagementApi.html#get_managementunits_mu_id_users_user_id_timeoffrequests) | **GET** /api/v2/workforcemanagement/managementunits/{muId}/users/{userId}/timeoffrequests | Get a list of time off requests for any user|
|[**get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id**](WorkforceManagementApi.html#get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id) | **GET** /api/v2/workforcemanagement/managementunits/{muId}/users/{userId}/timeoffrequests/{timeOffRequestId} | Get a time off request by id|
|[**get_timeoffrequests**](WorkforceManagementApi.html#get_timeoffrequests) | **GET** /api/v2/workforcemanagement/timeoffrequests | Get a list of time off requests for the current user|
|[**get_timeoffrequests_timeoffrequest_id**](WorkforceManagementApi.html#get_timeoffrequests_timeoffrequest_id) | **GET** /api/v2/workforcemanagement/timeoffrequests/{timeOffRequestId} | Get a time off request for the current user by id|
|[**patch_timeoffrequests_timeoffrequest_id**](WorkforceManagementApi.html#patch_timeoffrequests_timeoffrequest_id) | **PATCH** /api/v2/workforcemanagement/timeoffrequests/{timeOffRequestId} | Mark a time off request for the current user as read or unread|
|[**post_decisions_downloads_search**](WorkforceManagementApi.html#post_decisions_downloads_search) | **POST** /api/v2/workforcemanagement/decisions/downloads/search | Download decisions files metadata|
|[**post_longtermforecasts**](WorkforceManagementApi.html#post_longtermforecasts) | **POST** /api/v2/workforcemanagement/longtermforecasts | Create a forecast|
|[**post_schedules**](WorkforceManagementApi.html#post_schedules) | **POST** /api/v2/workforcemanagement/schedules | Get a schedule for the current user|
{: class="table table-striped"}

<a name="get_adherence"></a>

## -[**UserScheduleAdherence**](UserScheduleAdherence.html) get_adherence(user_id)

Get a list of UserScheduleAdherence records for the requested users



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

user_id = ["user_id_example"] # Array<String> | User Id(s) for which to fetch current schedule adherence information.  Max of 100 userIds per request


begin
  #Get a list of UserScheduleAdherence records for the requested users
  result = api_instance.get_adherence(user_id)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->get_adherence: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **user_id** | [**Array&lt;String&gt;**](String.html)| User Id(s) for which to fetch current schedule adherence information.  Max of 100 userIds per request | 
{: class="table table-striped"}


### Return type

[**UserScheduleAdherence**](UserScheduleAdherence.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="get_decisions_downloads_download_id"></a>

## -[**DecisionsDownloadLink**](DecisionsDownloadLink.html) get_decisions_downloads_download_id(download_id, opts)

Get decisions download link



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

download_id = "download_id_example" # String | The decisions file download id

opts = { 
  downloadfilename: "downloadfilename" # String | The file name used to get the download url
}

begin
  #Get decisions download link
  result = api_instance.get_decisions_downloads_download_id(download_id, opts)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->get_decisions_downloads_download_id: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **download_id** | **String**| The decisions file download id | 
 **downloadfilename** | **String**| The file name used to get the download url | [optional] [default to downloadfilename]
{: class="table table-striped"}


### Return type

[**DecisionsDownloadLink**](DecisionsDownloadLink.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="get_managementunits_mu_id_users_user_id_timeoffrequests"></a>

## -[**TimeOffRequestList**](TimeOffRequestList.html) get_managementunits_mu_id_users_user_id_timeoffrequests(mu_id, user_id, opts)

Get a list of time off requests for any user



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

mu_id = "mu_id_example" # String | The muId of the management unit.

user_id = "user_id_example" # String | The userId to whom the Time Off Request applies.

opts = { 
  recently_reviewed: false # BOOLEAN | Limit results to requests that have been reviewed within the preceding 30 days
}

begin
  #Get a list of time off requests for any user
  result = api_instance.get_managementunits_mu_id_users_user_id_timeoffrequests(mu_id, user_id, opts)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->get_managementunits_mu_id_users_user_id_timeoffrequests: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **mu_id** | **String**| The muId of the management unit. | 
 **user_id** | **String**| The userId to whom the Time Off Request applies. | 
 **recently_reviewed** | **BOOLEAN**| Limit results to requests that have been reviewed within the preceding 30 days | [optional] [default to false]
{: class="table table-striped"}


### Return type

[**TimeOffRequestList**](TimeOffRequestList.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id"></a>

## -[**TimeOffRequest**](TimeOffRequest.html) get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id(mu_id, user_id, time_off_request_id)

Get a time off request by id



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

mu_id = "mu_id_example" # String | The muId of the management unit.

user_id = "user_id_example" # String | The userId to whom the Time Off Request applies.

time_off_request_id = "time_off_request_id_example" # String | Time Off Request Id


begin
  #Get a time off request by id
  result = api_instance.get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id(mu_id, user_id, time_off_request_id)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **mu_id** | **String**| The muId of the management unit. | 
 **user_id** | **String**| The userId to whom the Time Off Request applies. | 
 **time_off_request_id** | **String**| Time Off Request Id | 
{: class="table table-striped"}


### Return type

[**TimeOffRequest**](TimeOffRequest.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="get_timeoffrequests"></a>

## -[**TimeOffRequestList**](TimeOffRequestList.html) get_timeoffrequests(opts)

Get a list of time off requests for the current user



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

opts = { 
  recently_reviewed: false # BOOLEAN | Limit results to requests that have been reviewed within the preceding 30 days
}

begin
  #Get a list of time off requests for the current user
  result = api_instance.get_timeoffrequests(opts)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->get_timeoffrequests: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **recently_reviewed** | **BOOLEAN**| Limit results to requests that have been reviewed within the preceding 30 days | [optional] [default to false]
{: class="table table-striped"}


### Return type

[**TimeOffRequestList**](TimeOffRequestList.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="get_timeoffrequests_timeoffrequest_id"></a>

## -[**TimeOffRequest**](TimeOffRequest.html) get_timeoffrequests_timeoffrequest_id(time_off_request_id)

Get a time off request for the current user by id



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

time_off_request_id = "time_off_request_id_example" # String | Time Off Request Id


begin
  #Get a time off request for the current user by id
  result = api_instance.get_timeoffrequests_timeoffrequest_id(time_off_request_id)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->get_timeoffrequests_timeoffrequest_id: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **time_off_request_id** | **String**| Time Off Request Id | 
{: class="table table-striped"}


### Return type

[**TimeOffRequest**](TimeOffRequest.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="patch_timeoffrequests_timeoffrequest_id"></a>

## - patch_timeoffrequests_timeoffrequest_id(time_off_request_id, opts)

Mark a time off request for the current user as read or unread



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

time_off_request_id = "time_off_request_id_example" # String | Time Off Request Id

opts = { 
  body: PureCloud::TimeOffRequestPatch.new # TimeOffRequestPatch | 
}

begin
  #Mark a time off request for the current user as read or unread
  api_instance.patch_timeoffrequests_timeoffrequest_id(time_off_request_id, opts)
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->patch_timeoffrequests_timeoffrequest_id: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **time_off_request_id** | **String**| Time Off Request Id | 
 **body** | [**TimeOffRequestPatch**](TimeOffRequestPatch.html)|  | [optional] 
{: class="table table-striped"}


### Return type

nil (empty response body)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="post_decisions_downloads_search"></a>

## -[**DecisionsFileMetadataEntityListing**](DecisionsFileMetadataEntityListing.html) post_decisions_downloads_search(body)

Download decisions files metadata



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

body = PureCloud::ForecastSearchRequest.new # ForecastSearchRequest | 


begin
  #Download decisions files metadata
  result = api_instance.post_decisions_downloads_search(body)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->post_decisions_downloads_search: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **body** | [**ForecastSearchRequest**](ForecastSearchRequest.html)|  | 
{: class="table table-striped"}


### Return type

[**DecisionsFileMetadataEntityListing**](DecisionsFileMetadataEntityListing.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="post_longtermforecasts"></a>

## -[**ForecastCreationCompletion**](ForecastCreationCompletion.html) post_longtermforecasts(body)

Create a forecast



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

body = PureCloud::ForecastCreation.new # ForecastCreation | The request body


begin
  #Create a forecast
  result = api_instance.post_longtermforecasts(body)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->post_longtermforecasts: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **body** | [**ForecastCreation**](ForecastCreation.html)| The request body | 
{: class="table table-striped"}


### Return type

[**ForecastCreationCompletion**](ForecastCreationCompletion.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json



<a name="post_schedules"></a>

## -[**TimeOffRequestList**](TimeOffRequestList.html) post_schedules(opts)

Get a schedule for the current user



### Example
~~~ruby
# load the gem
require 'purecloud'
# setup authorization
@secret = ENV['PURECLOUD_SECRET']
@id = ENV['PURECLOUD_CLIENT_ID']
environment = "mypurecloud.com"

@authToken = PureCloud.authenticate_with_client_credentials @id, @secret, environment

PureCloud.configure do |config|
  config.access_token = @authToken
end

api_instance = PureCloud::WorkforceManagementApi.new

opts = { 
  body: PureCloud::CurrentUserScheduleRequestBody.new # CurrentUserScheduleRequestBody | body
}

begin
  #Get a schedule for the current user
  result = api_instance.post_schedules(opts)
  p result
rescue PureCloud::ApiError => e
  puts "Exception when calling WorkforceManagementApi->post_schedules: #{e}"
end
~~~

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **body** | [**CurrentUserScheduleRequestBody**](CurrentUserScheduleRequestBody.html)| body | [optional] 
{: class="table table-striped"}


### Return type

[**TimeOffRequestList**](TimeOffRequestList.html)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json