> ## Documentation Index
> Fetch the complete documentation index at: https://developers.techwolf.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# How It Works

# Suggestions

<img src="https://mintcdn.com/techwolf/0Ad82QpBivsiQKdJ/integrations/skill-assistant/workday/images/suggestions-workday.png?fit=max&auto=format&n=0Ad82QpBivsiQKdJ&q=85&s=ff9ab3e7d2d38c05bf96b263cf97325c" alt="Suggestions" width="773" height="622" data-path="integrations/skill-assistant/workday/images/suggestions-workday.png" />

1. **Scheduled trigger**: We send out suggestions at specific time intervals. On
   such an interval cycle, we trigger the TechWolf Skill Assistant. The interval
   can be changed depending on your needs.
2. **Fetch employees**: To get employees that have suggestions, we fetch them from our own
   API. More specifically, from the
   [Suggestions Skill Profile](/reference/latest/Employees/EmployeeSuggestions/post-employees-suggestions-skills)
   endpoint.
3. **Send notifications**: We send out the notifications to Workday.
4. **Users receive the notification**: Workday delivers the notification to
   the correct user.

### How the Skill Engine API max skills setting affects suggestions

The Skill Engine API uses the `max_skills` setting to return the top ranked
Skills for an Employee based on their data. This setting does not directly mean
that an Employee will only ever see that number of suggestions over time.

The ranking is based on the Employee Skill Profile and includes Skills that were
already accepted or rejected. The Skill Engine API then filters out already
validated Skills before suggestions are shown in the Skill Assistant.

#### What happens near the limit

Rejected Skills can still influence the top `max_skills` ranking through an
indirect effect. A rejection acts as feedback for the recommendation model and
can change the confidence scores of related Skills. When an Employee is close to
the limit, this recalculation can reorder the Employee Skill Profile and cause a
different Skill to enter the top `max_skills`.

1. The Skill Engine API returns the top `max_skills` Skills from the Employee
   Skill Profile.
2. The Employee validates suggestions (for example, accepts 6 and rejects 4).
3. The recommendation scores are recalculated based on the new feedback,
   including the rejection signal, which can change nearby Skill rankings.
4. If this recalculation pulls another Skill into the top `max_skills`, that
   Skill can appear as a new suggestion.

#### What happens when data changes

When new Skill Events are added, probabilities can change and different Skills
can enter the top `max_skills` ranking. This can create new suggestions for the
Employee.

<img src="https://mintcdn.com/techwolf/JdUJW5PN6MYJZDA8/snippets/skill-assistant/images/max-skills-profiles-after-new-events.png?fit=max&auto=format&n=JdUJW5PN6MYJZDA8&q=85&s=5f5c9f960f5630cdf02e45f60501179d" alt="Employee Skill Profile states after new Skill Events" width="1470" height="370" data-path="snippets/skill-assistant/images/max-skills-profiles-after-new-events.png" />

1. New Skill Events are added for the Employee.
2. New inferred Skills are scored and compared against the current top
   `max_skills` ranking.
3. Only the new Skills that enter the top `max_skills` become visible
   suggestions.
4. Repeating this process over time can lead to more than `max_skills` validated
   Skills on an Employee profile.

# Validations

<img src="https://mintcdn.com/techwolf/0Ad82QpBivsiQKdJ/integrations/skill-assistant/workday/images/validations-workday.png?fit=max&auto=format&n=0Ad82QpBivsiQKdJ&q=85&s=0643a469d09b083b0b1ed05c189c145e" alt="Validations" width="789" height="565" data-path="integrations/skill-assistant/workday/images/validations-workday.png" />

1. a) The user clicks on "Approve" or "Reject" when validating suggestions, which informs Workday that
   it should send an update to the TechWolf Skill Assistant.

   b) (Optional) When proficiency levels for Skills are enabled, the user can choose a proficiency level for each accepted Skill Suggestion.

2. The validation is received by the Skill Assistant, which receives a list of
   approved or rejected skills.

3. The TechWolf Skill Assistant stores this information, such as which skills,
   but also when and by whom the skills were approved or rejected.

4. The feedback is sent to the TechWolf API, using the
   [Employee Skill Profile feedback endpoint](/reference/latest/Employees/EmployeeProfile/patch-employees-external-id-skill-profile)
   and can be tracked with the `source` field as `"tw-workday-bot"`.
   To access feedback provided by an employee through the Skill Assistant, use the
   [Employee List Skill Event endpoint](/reference/latest/Employees/SkillEvents/get-employees-employee-external-id-skill-events) with `skill_profile_feedback` as `event_type`.
   The resulting Skill Events with `source` field as `"tw-workday-bot"` are the feedback events given using the Skill Assistant.

# Linking Workday users and employee profiles in TechWolf

There are two ways to link Workday users to employee profiles in TechWolf:

1. Use the Worker ID as the Employee ID in TechWolf.
2. Use the Employee ID from Workday as the Employee ID in TechWolf.

**Note**: The chosen mapping method must be consistent across your organization and communicated to TechWolf during the initial setup phase.

# Data flows

### General overview

<img src="https://mintcdn.com/techwolf/0Ad82QpBivsiQKdJ/integrations/skill-assistant/workday/images/workday-overview-dataflow.png?fit=max&auto=format&n=0Ad82QpBivsiQKdJ&q=85&s=207aaa3e3e7ca5c11d823857beec8e8d" alt="Data Flow Overview" width="1269" height="250" data-path="integrations/skill-assistant/workday/images/workday-overview-dataflow.png" />

#### Components

**Workday**

The Workday environment used by the customer.

**AWS infrastructure**

TechWolf utilizes AWS infrastructure to facilitate communication between Workday
and the Skill Assistant. This infrastructure comprises:

* **CloudFront**: Processes and routes incoming requests at edge locations,
  minimizing latency by handling traffic close to its source.
* **Lambda at Edge**: Processes incoming requests by extracting the Tenant ID and uses DynamoDB to determine the correct Skill Assistant deployment region (EU or US) for routing.
* **Global DynamoDB**: Maintains a mapping between Tenant IDs and their corresponding deployment regions (EU or US).

**Skill Assistant**

TechWolf's backend system responsible for generating skill suggestions and
processing feedback.

**Skill Engine API**

The main TechWolf product. Handles skill-related data processing and
integration.

#### Data processing

**Types of data that is processed**

* **Skill Suggestions**: Automatically inferred skills for an employee,
  retrieved from the Skill Engine API.
* **Skill Feedback**: Employee feedback on their suggested skills. Either
  validating that they have the skills, or rejecting the skills.
* **Workday User Data**: Employee details retrieved from Workday systems. No personal identifiable information.

**Data Processing Overview**

|                          | **Managed by** | **Suggestions** | **Feedback** | **Workday User Data** |
| ------------------------ | -------------- | --------------- | ------------ | --------------------- |
| **Workday**              | Customer       | X               | X            | X                     |
| **AWS: CloudFront**      | TechWolf       |                 |              |                       |
| **AWS: Lambda at Edge**  | TechWolf       |                 | X            |                       |
| **AWS: Global DynamoDB** | TechWolf       |                 |              |                       |
| **Skill Assistant**      | TechWolf       | X               | X            | X                     |

#### Data storage

**Overview of Data Storage Locations**

|                     | **Managed by** | **Suggestions** | **Feedback** | **Workday User Data** |
| ------------------- | -------------- | --------------- | ------------ | --------------------- |
| **Workday**         | Customer       |                 | X            | X                     |
| **AWS**             | TechWolf       |                 |              |                       |
| **Skill Assistant** | TechWolf       | X               | X            | X                     |

#### **Communication Protocols**

All data exchanges occur over REST and SOAP APIs secured by **TLS 1.2** or higher.

### Sending notifications

<img src="https://mintcdn.com/techwolf/0Ad82QpBivsiQKdJ/integrations/skill-assistant/workday/images/sending-notifications-dataflow.png?fit=max&auto=format&n=0Ad82QpBivsiQKdJ&q=85&s=651963b531fa33d32fae680079b6a975" alt="Sending notifications" width="1145" height="356" data-path="integrations/skill-assistant/workday/images/sending-notifications-dataflow.png" />

**Process**

1. **Fetch employees**: On a regular basis, the Skill Assistant will fetch
   employees that have suggestions.
2. **Sending the notifications**: The notifications are sent by the Skill Assistant to
   Workday.

**Data Involved**

1. Workday User ID, Internal ID, Suggestion
2. Workday User ID

### User interacts with the application

<img src="https://mintcdn.com/techwolf/0Ad82QpBivsiQKdJ/integrations/skill-assistant/workday/images/user-interacts-application-dataflow.png?fit=max&auto=format&n=0Ad82QpBivsiQKdJ&q=85&s=6bc554e40f510985ea282b8543abf944" alt="User interacts with the application" width="1409" height="331" data-path="integrations/skill-assistant/workday/images/user-interacts-application-dataflow.png" />

**Process**

1. **User input request**: When a user interacts with the application, it is sent
   to CloudFront in the TechWolf AWS instance.
2. **Routing to Skill Assistant**: The request is processed and routed by
   CloudFront to the Skill Assistant.
3. **Execution of request**: The Skill Assistant directs the request in proper
   format to the API, where the request is executed on the customer's data.
4. **Response to user**: A response, based on the request's proper execution, is
   sent back to the concerning Workday user.

**Data Involved**

1. Workday User ID
2. Workday User ID
3. Workday User ID, Internal ID, Depending on the event: Feedback or Request
   suggestions
4. Workday User ID, Internal ID, Suggestion
