Employee Preferences - Aggregated

You can override employee preferences, such as preferred availability, using the following assignments.

Prerequisites

A person's person ID is the same as the personKey and employee ID, and is not the same as the person number.

The person in this example has a person ID of 100 and a person number of 20190.

Example

In this example, we assign, verify, and delete a person's employee preferences.

Create or update assignments

The create or update request:

  • uses personIdentity to identify the person using their person number
  • uses employeePreferences within personAssignments to define the employee preferences to assign

Example request

Call POST /v1/commons/persons/assignments/multi_upsert with the following request payload.

[
  {
    "personIdentity": {
      "personNumber": "20190"
    },
    "personAssignments": {
      "employeePreferences": {
        "employeePreferenceOverrides": {
          "preferredAvailability": 0,
          "preferredJob": 0,
          "preferredHoursPerWeek": 0,
          "preferredDayOff": 0,
          "mostHoursPerWeek": 0,
          "earliestShift": 0,
          "longestShift": 0
        }
      }
    }
  }
]

Example response

A success response returns HTTP status code 200 and a response body similar to the following example.

[
  {
    "personIdentity": {
      "personNumber": "20190"
    },
    "personAssignments": {
      "employeePreferences": {
        "employeePreferenceOverrides": {
          "preferredAvailability": 0,
          "preferredJob": 0,
          "preferredHoursPerWeek": 0,
          "preferredDayOff": 0,
          "mostHoursPerWeek": 0,
          "earliestShift": 0,
          "longestShift": 0
        }
      }
    }
  }
]

Verify assignments

You can use the bulk multi-read operation to verify assignments for multiple people at once.

Example request

To verify, call POST /v1/commons/persons/assignments/multi_read with the following request payload.

{
  "where": {
    "employees": {
      "key": "personNumber",
      "values": [
        "20190"
      ]
    },
    "personAssignments": [
      "employeePreferences"
    ]
  }
}

Example response

A success response returns HTTP status code 200 and a response body similar to the following example.

[
  {
    "personIdentity": {
      "personNumber": "20190"
    },
    "personAssignments": {
      "employeePreferences": {
        "employeePreferenceOverrides": {
          "preferredAvailability": 0,
          "preferredJob": 0,
          "preferredHoursPerWeek": 0,
          "preferredDayOff": 0,
          "mostHoursPerWeek": 0,
          "earliestShift": 0,
          "longestShift": 0
        }
      }
    }
  }
]

Delete assignments

You can delete, or unassign, assignments. To delete our example's assignments, call POST /v1/commons/persons/assignments/multi_upsert using the unAssignExisting property.

Example request

Call POST /v1/commons/persons/assignments/multi_upsert with the following request payload.

[
    {
        "personIdentity": {
            "personNumber": "20190"
        },
        "personAssignments": {
            "employeePreferences": {
                "unAssignExisting":true
            }
        }
    }
]

Example response

A success response returns HTTP status code 200 and a response body similar to the following example.

[
  {
    "personIdentity": {
      "personNumber": "20190"
    },
    "personAssignments": {
      "employeePreferences": {
        "employeePreferenceOverrides": {}
      }
    }
  }
]

Note: You can verify that the assignments were deleted by calling POST /v1/commons/persons/assignments/multi_read with a request payload specifying all of the affected person identities.