How It Works
Suggestions
-
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, but usually we send suggestions daily. This might seem like a lot, but this is only the first few days, when the integration kicks off; after the initial period, suggestions will slow down anyways (you probably do not have infinite skills).
-
Fetch suggestions: To get those suggestions, we fetch them from our own API. More specifically, from the Suggestions Skill Profile endpoint, for all employees.
We also fetch the Custom Properties for all employees, so that we can figure out the Platform ID for them. This way we know how to link Employees in TechWolf with Users in the messaging platform. -
Format suggestions:
The Skill Assistant first determines which users should receive suggestions or reminders. The system determines this by checking when each user last received a suggestion and comparing it against the configured timing parameters for suggestions and reminders.
The suggestions are then formatted based on the configurations for the message content. See how the message looks like in How it looks.
-
Send suggestions: We send out the suggestions to the messaging platform.
-
Users receive the message: The messaging platform delivers the message to the correct user.
Validations
- The user clicks submit on a card, which informs the messaging platform that it should send an update to the TechWolf Skill Assistant.
- The message is received by the Skill Assistant, which receives a list of confirmed and rejected skills.
- The TechWolf Skill Assistant stores this information, such as which skills, but also when and by whom.
- The feedback is sent to the TechWolf API, using the
Employee Skill Profile feedback endpoint
and can be tracked with the
source
field as"tw-<platform>-bot"
. To retrieve these sources in an employee’s profile, use the query parameter&include=sources
, which returns the Skill’ssource_event
with"event_type": "skill_profile_feedback"
and"source": "tw-<platform>-bot"
with<platform>
beingteams
orslack
.
Employee Skill Management Tab
In addition to our Skill Assistant:
We offer an interactive tab that enables employees to efficiently manage and track their skills. Within this tab, employees can:
- View and Reevaluate Skills: Access their validated and rejected skills for assessment and potential updates.
- Add Missing Skills: Identify and add any skills that may be lacking.
Linking users
Through Custom Properties
An important step for the Skill Assistant to work is linking Employees in TechWolf to users in the messaging platform.
This can be done by setting a Custom Property on the Employee in TechWolf. The Skill Assistant will then use this Custom Property to link the Employee to the user in the messaging platform.
Through Microsoft Graph
Another way to link Employees in TechWolf to users in the messaging platform is to use the Microsoft Graph API.
This is the preferred method, as it is more secure and reliable.
TechWolf will read the Employee ID
from the Microsoft Graph API through the
following endpoint:
Notice the employeeId
query parameter to filter out the Employee ID of the
given Teams user.
Data flows
General overview
Components
Microsoft Teams
The Microsoft Teams environment used by the customer.
Azure infrastructure
TechWolf utilizes Azure infrastructure to facilitate communication between Microsoft Teams and the Skill Assistant. This infrastructure comprises:
- Bot Service: Required by Microsoft Teams to create a bot. It acts as the intermediary between Teams and the Skill Assistant, handling message exchanges and event triggers from Teams users.
- Entra Application: Handles authentication and authorization with Microsoft Teams and the Graph API.
- Front Door: Routes incoming requests from the Bot Service or Skill Profile tab to the appropriate Skill Assistant deployment (EU/US).
Skill Assistant
TechWolf’s backend system responsible for generating skill suggestions, processing feedback, and managing data for the Skill Profile tab.
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.
- Skill Profile: A list of validated and rejected skills maintained in the Skill Engine API.
- Microsoft User Data: Employee details retrieved from Microsoft systems, including name and email.
Data Processing Overview
Managed by | Suggestions | Feedback | Skill Profile | Microsoft User Data | |
---|---|---|---|---|---|
Microsoft Teams | Customer | X | X | X | X |
Azure: Entra Application | TechWolf | ||||
Azure: Bot Service | TechWolf | X | X | X | |
Azure: Front Door | TechWolf | X | X | X | X |
Skill Assistant | TechWolf | X | X | X | X |
Data storage
Overview of Data Storage Locations
Managed by | Suggestions | Feedback | Skill Profile | Microsoft User Data | |
---|---|---|---|---|---|
Microsoft Teams | Customer | X | X | X | |
Azure | TechWolf | ||||
Skill Assistant | TechWolf | X | X | X (No personal identifiable information stored) |
Communication Protocols
All data exchanges occur over REST APIs secured by TLS 1.2 or higher.
Suggesting Skills
Process
- Fetch suggestions: On a daily basis, the Skill Assistant will fetch suggestions generated by the API.
- Routing the suggestion: The suggestion is sent to the Azure Tenant, where it is routed to the concerning employee.
- Sending the suggestion: The suggestion is sent through the ‘adaptive card’ format by the Bot Service to the customer Teams tenant.
Data Involved
- Teams ID, Internal ID, Suggestion
- Teams ID, Suggestion
- Teams ID, Suggestion
User Input
User input entails button clicks, messages and installation events.
- User input request: When a user interacts with a suggestion, it is sent to the Bot service in the TechWolf Azure instance.
- Routing to Skill Assistant: The request is processed and routed by the Bot Service to the Skill Assistant. Only necessary information is retained, and names and email addresses are dropped.
- 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.
- Response to user: A response, based on the request’s proper execution, is sent back to the Bot Service to route it back to the concerning user.
- Sending the response: The response is sent to the user by the Bot Service.
Data Involved
- Event Data, Feedback, MS User Data (Contains first name, last name and email address which cannot be dropped from the request. ref)
- Event Data, Feedback, MS User Data (Contains first name, last name and email address which cannot be dropped from the request. ref)
- Internal ID, Teams ID, Depending on the event: Feedback, Request suggestions or Skill Profile
- Teams ID, Custom response, Depending on the event: Suggestion or Skill Profile
- Teams ID, Custom response, Depending on the event: Suggestion or Skill Profile
General overview
Components
Microsoft Teams
The Microsoft Teams environment used by the customer.
Azure infrastructure
TechWolf utilizes Azure infrastructure to facilitate communication between Microsoft Teams and the Skill Assistant. This infrastructure comprises:
- Bot Service: Required by Microsoft Teams to create a bot. It acts as the intermediary between Teams and the Skill Assistant, handling message exchanges and event triggers from Teams users.
- Entra Application: Handles authentication and authorization with Microsoft Teams and the Graph API.
- Front Door: Routes incoming requests from the Bot Service or Skill Profile tab to the appropriate Skill Assistant deployment (EU/US).
Skill Assistant
TechWolf’s backend system responsible for generating skill suggestions, processing feedback, and managing data for the Skill Profile tab.
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.
- Skill Profile: A list of validated and rejected skills maintained in the Skill Engine API.
- Microsoft User Data: Employee details retrieved from Microsoft systems, including name and email.
Data Processing Overview
Managed by | Suggestions | Feedback | Skill Profile | Microsoft User Data | |
---|---|---|---|---|---|
Microsoft Teams | Customer | X | X | X | X |
Azure: Entra Application | TechWolf | ||||
Azure: Bot Service | TechWolf | X | X | X | |
Azure: Front Door | TechWolf | X | X | X | X |
Skill Assistant | TechWolf | X | X | X | X |
Data storage
Overview of Data Storage Locations
Managed by | Suggestions | Feedback | Skill Profile | Microsoft User Data | |
---|---|---|---|---|---|
Microsoft Teams | Customer | X | X | X | |
Azure | TechWolf | ||||
Skill Assistant | TechWolf | X | X | X (No personal identifiable information stored) |
Communication Protocols
All data exchanges occur over REST APIs secured by TLS 1.2 or higher.
Suggesting Skills
Process
- Fetch suggestions: On a daily basis, the Skill Assistant will fetch suggestions generated by the API.
- Routing the suggestion: The suggestion is sent to the Azure Tenant, where it is routed to the concerning employee.
- Sending the suggestion: The suggestion is sent through the ‘adaptive card’ format by the Bot Service to the customer Teams tenant.
Data Involved
- Teams ID, Internal ID, Suggestion
- Teams ID, Suggestion
- Teams ID, Suggestion
User Input
User input entails button clicks, messages and installation events.
- User input request: When a user interacts with a suggestion, it is sent to the Bot service in the TechWolf Azure instance.
- Routing to Skill Assistant: The request is processed and routed by the Bot Service to the Skill Assistant. Only necessary information is retained, and names and email addresses are dropped.
- 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.
- Response to user: A response, based on the request’s proper execution, is sent back to the Bot Service to route it back to the concerning user.
- Sending the response: The response is sent to the user by the Bot Service.
Data Involved
- Event Data, Feedback, MS User Data (Contains first name, last name and email address which cannot be dropped from the request. ref)
- Event Data, Feedback, MS User Data (Contains first name, last name and email address which cannot be dropped from the request. ref)
- Internal ID, Teams ID, Depending on the event: Feedback, Request suggestions or Skill Profile
- Teams ID, Custom response, Depending on the event: Suggestion or Skill Profile
- Teams ID, Custom response, Depending on the event: Suggestion or Skill Profile
General overview
Components
Slack
The Slack environment used by the customer.
AWS infrastructure
TechWolf utilizes AWS infrastructure to facilitate communication between Slack 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 Enterprise or Workspace ID and uses DynamoDB to determine the correct Skill Assistant deployment region (EU or US) for routing.
- Global DynamoDB: Maintains a mapping between Enterprise/Workspace 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.
- Slack User Data: Employee details retrieved from Slack systems, including name.
Data Processing Overview
Managed by | Suggestions | Feedback | Slack User Data | |
---|---|---|---|---|
Slack | Customer | X | X | X |
AWS: CloudFront | TechWolf | |||
AWS: Lambda at Edge | TechWolf | X | X | |
AWS: Global DynamoDB | TechWolf | |||
Skill Assistant | TechWolf | X | X | X |
Data storage
Overview of Data Storage Locations
Managed by | Suggestions | Feedback | Slack User Data | |
---|---|---|---|---|
Slack | Customer | X | X | X |
AWS | TechWolf | |||
Skill Assistant | TechWolf | X | X | X (No personal identifiable information stored) |
Communication Protocols
All data exchanges occur over REST APIs secured by TLS 1.2 or higher.
Suggesting Skills
Process
- Fetch suggestions: On a daily basis, the Skill Assistant will fetch suggestions generated by the API.
- Sending the suggestion: The suggestion is sent by the Skill Assistant to the customer Slack tenant.
Data Involved
- Slack ID, Internal ID, Suggestion
- Slack ID, Suggestion
User Input
User input entails button clicks and messages.
- User input request: When a user interacts with a suggestion, it is sent to CloudFront in the TechWolf AWS instance.
- Routing to Skill Assistant: The request is processed and routed by CloudFront to the Skill Assistant. Only necessary information is retained, and names and email addresses are dropped.
- 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.
- Response to user: A response, based on the request’s proper execution, is sent back to the concerning Slack user.
Data Involved
- Event Data or Interactivity Data, Feedback, Slack User Data (Contains the name of the user which cannot be dropped from the request.)
- Event Data or Interactivity Data, Feedback, Slack User Data (Contains the name of the user which cannot be dropped from the request.)
- Internal ID, Slack ID, Depending on the event: Feedback or Request suggestions
- Slack ID, Custom response, Suggestion