Jitterbit HR Agent
Overview
The Jitterbit HR Agent (HR Agent) is an AI agent provided through Jitterbit Marketplace that is designed to support your organization's internal HR team. This agent uses the Retrieval-Augmented Generation (RAG) technique, which combines LLM reasoning with access to external tools and data sources. The AI agent performs the following functions:
-
Connects to BambooHR or other Human Resources Information Systems (HRIS) to retrieve real-time onboarding data for new hires using Jitterbit Integration Studio.
-
Connects to Jira (or other service and work management solutions) to initiate and track requests.
-
Integrates with the OpenAI large language model (LLM) to power an intelligent HR AI Assistant that you access through a custom API created with Jitterbit API Manager.
This document explains how to set up and operate the AI agent. The document first covers prerequisites, next gives example prompts to show what the agent can do, and then provides steps to install, configure, and operate the agent.
Prerequisites
To use the HR Agent, you need the following components.
Harmony components
You must have a Jitterbit Harmony license with access to the following components:
- Jitterbit Integration Studio
- Jitterbit API Manager
- Jitterbit HR Agent purchased as a license add-on
- Jitterbit Cloud Datastore (optional)
OpenAI
You must have an OpenAI subscription to create and manage the following resources:
- OpenAI API key. See OpenAI guidance for more information.
Supported endpoints
The AI agent's design incorporates the following endpoints. You can accommodate other systems by modifying the project's endpoint configurations and workflows.
Human Resources Information System (HRIS)
The AI agent uses BambooHR as the source of employee data, including required tasks, documents, and job information.
Note
You must have the appropriate permissions in your HRIS to create API keys and access the data required for this integration.
Service management
The AI agent uses Jira as the service and work management system for ticket creation.
Documentation
The AI agent uses Confluence as the source for IT documentation.
Chat interface
The AI agent's design incorporates Slack as the chat interface for interacting with the AI agent.
If you want to use a different application as the chat interface, this AI agent includes a separate workflow and instructions for a generic API setup.
Core functions
When you connect the HR Agent to the appropriate endpoints, it provides the following core functionality.
Employee preboarding
- Notifies the hiring team of an accepted offer.
- Creates a welcome email and requests approval to send to the new hire.
- Notifies the new hire of required tasks and assigned paperwork based on the local law and regulation of the candidate residency.
- Creates a ticket for IT onboarding, specifying required equipment, applications, and email groups.
First day onboarding
- Provides an introduction to the manager, team, and other useful contacts across the organization.
- Tracks pending tasks for the new hire, HR, and IT teams, and provides updates as tasks are completed.
- Offers assistance if onboarding steps remain incomplete after a specified period of time.
- Provides a dedicated chat interface for new hires to ask questions related to onboarding and request support. The AI agent can submit IT service tickets on the user's behalf.
First weeks and training
- Provides a personalized learning path based on job role.
Example prompts
The following are example prompts that the HR Agent can handle with access to the appropriate data.
HR-related questions
- "Who is my manager?"
- "Who is out next week?"
- "Who was out last week?"
- "Who is out tomorrow?"
- "Is [Insert Name] out today?"
IT service-related questions
- "How do I reset my password?"
- "I need help setting up my computer."
- "Can you help me set up my email account?"
- "My mouse is broken. What should I do?"
- "My laptop is not charging. What should I do?"
- "I need a new mouse. Can you create a ticket for me?"
Installation, configuration, and operation
Follow these steps to install, configure, and operate this AI agent:
- Download customizations and install the Integration Studio project.
- Review project workflows.
- Prepare BambooHR.
- Create a Google Form.
- Prepare Jitterbit Cloud Datastore.
- Configure project variables.
- Test connections.
- Add email templates.
- Create schedules.
- Deploy the project.
- Create the Jitterbit custom API.
- Create the Slack app, test the Slack connection, and redeploy the project.
- Trigger the project workflows.
- Troubleshooting.
- Different endpoint usage.
Download customizations and install the project
Follow these steps to download customization files and install the Integration Studio project for the AI agent:
-
Log in to the Harmony portal at https://login.jitterbit.com and open Marketplace.
-
Locate the AI agent named Jitterbit HR Agent. To locate the agent, you can use the search bar or, in the Filters pane under Type, select AI Agent to filter the display to show only the available AI agents.
-
Click the AI agent's Documentation link to open its documentation in a separate tab. Keep the tab open so you can refer to the documentation after you start the project.
-
Click Start Project to open a two-step configuration dialog. The dialog lets you download customizations and import the AI agent as an Integration Studio project.
Note
If you have not yet purchased the AI agent, Get this agent appears instead. Click Get this agent to open an informational dialog, then click Submit to request that a representative contact you about purchasing the AI agent.
-
In configuration step 1, Download Customizations, the following files are provided to introduce the structure of CSV files, to create the Slack app, and to create the Google Form app script. Select the files and click Download Files:
-
Google Form app script
googleForm_appScript.js
-
CSV template files
TEMPLATE - IT_Apps_JobRole.csvTEMPLATE - IT_G-Suite Groups.csvTEMPLATE - IT_LaptopChoice_JobRole.csvTEMPLATE - HR Agent Onboarding Courses - Job Role.csv
-
Slack app manifest file
slack_app_manifest.json
Tip
The configuration dialog includes a warning not to import the template before applying endpoint customizations. That warning does not apply to this AI agent and can be ignored. Follow the recommended order of steps in this documentation.
-
-
Click Next.
-
In configuration step 2, Create a New Project, select an environment where the Integration Studio project will be created, then click Create Project.
-
A progress dialog is displayed. Once it indicates the project is created, use the dialog link Go to Integration Studio or open the project directly from the Integration Studio Projects page.
Review project workflows
In the open Integration Studio project, review the workflows along with the descriptions below to understand what they do. Use the summary table below to identify which workflows require configuration and how they are triggered.
Note
In the project, workflow names prepended with an asterisk (*) indicate main workflows that initiate chains of actions. These main workflows are typically scheduled or API-triggered and call the core infrastructure workflows as needed. Workflows without asterisks are supporting workflows.
| Workflow name | Category | Trigger type | Key dependencies |
|---|---|---|---|
| Common Operations | Core infrastructure | Manual | None |
| HR Calls | Core infrastructure | Called by other workflows | BambooHR |
| Platform Calls | Core infrastructure | Called by other workflows | Slack or alternative |
| ITS Calls | Core infrastructure | Called by other workflows | Jira or alternative |
| Emails | Core infrastructure | Called by other workflows | SMTP configuration |
| Datastore Call | Core infrastructure | Called by other workflows | Cloud Datastore |
| Communication Platform Bot | Core infrastructure | API | Platform Calls, Custom API |
| OpenAI - Function Calling | OpenAI/LLM | Called by scheduled workflows | OpenAI API |
| OpenAI - Code Interpreter | OpenAI/LLM | Called by other workflows | OpenAI API |
| OpenAI - PDF Analysis | OpenAI/LLM | Called by other workflows | OpenAI API |
| OpenAI - AskHR Router | OpenAI/LLM | Called by chatbot workflows | OpenAI API |
| OpenAI - AskHR Function Calling | OpenAI/LLM | Called by chatbot | OpenAI API, AskHR Router |
| AskHR - After Tool - Start | OpenAI/LLM | Called by AskHR Function Calling | Varies by tool |
| Pre Onboarding - Offer Signed | Pre-boarding | Scheduled | HR Calls, OpenAI Function Calling |
| Pre Onboarding - Week Before Documents | Pre-boarding | Scheduled | HR Calls, Emails |
| Pre Onboarding - ITSM Request | Pre-boarding | API | HR Calls, ITS Calls, Custom API |
| First Day - Introductions | First day | Scheduled | HR Calls, Emails |
| First Day - Write LI Post | First day | Scheduled | HR Calls, OpenAI |
| First Week - Personalized Learning Path | First week | Scheduled | HR Calls, OpenAI Code Interpreter |
| General - Employee Remaining HR Tasks | Ongoing | Scheduled | HR Calls |
| First Week - In-progress IT Tickets | Ongoing | Scheduled | HR Calls, ITS Calls |
Workflow categories and descriptions
Core infrastructure workflows
These workflows provide foundational operations that are used throughout the project.
Common Operations
This workflow contains common scripts for the project. You must update the HTML Email Templates script to align with your company's email templates, while ensuring that all existing variables within the templates remain unchanged or are changed according to your needs.
HR Calls
This workflow centralizes core HR operations for the project. These foundational HR operations are used across subsequent individual workflows, with all responses standardized and mapped to common schemas.
Platform Calls
This workflow consolidates the foundational operations for the chosen communication platform (for example, Slack). These standardized platform operations are used by subsequent workflows. A key function is to capture essential values into variables or to move operation responses into downstream workflows to standardize them into common schemas for consistent use.
ITS Calls
This workflow consolidates the foundational operations for the chosen IT service platform (for example, Jira). These standardized IT service operations are used by subsequent workflows. A key function is to capture essential values into variables or to move operation responses into downstream workflows to standardize them into common schemas for consistent use.
Note
When using Jira, the AI agent uses two operations to create tickets: ITSM - Create Task in JIRA and Update Task in JIRA. Due to Jira API limitations, both operations must work together as a single ticket creation process.
Emails
This workflow handles the project's required email communications and is used frequently throughout the project lifecycle.
Datastore Call
This workflow manages personalized welcome emails by performing the following actions:
- Saves them to a database with unique keys.
- Fetches them through a query when needed for the project.
- Deletes the record once it is no longer required.
Communication Platform Bot
Note
If you are not using Slack, you can ignore this workflow and it will not be triggered.
This workflow manages incoming Slack bot requests. It is triggered through a Jitterbit custom API each time a user interacts with the Slack bot chat interface. Configuration of the Jitterbit custom API is described in Create the Jitterbit custom API later on this page.
OpenAI/LLM workflows
These workflows integrate with the OpenAI LLM to power intelligent automation and chatbot functionality.
OpenAI - Function Calling
This workflow serves as the centralized function-calling mechanism for the LLM, processing requests initiated by scheduled workflows (such as Pre Onboarding | Offer Signed). Its primary role is to determine which tool to run based on the user prompts provided to the LLM. It is designed to be triggered by actions originating outside the communication platform or chatbot.
OpenAI - Code Interpreter
This workflow performs on-demand analysis of CSV documents to identify specific matching results for various use cases. For example, it determines which applications should be granted access based on the new hire's job role.
OpenAI - PDF Analysis
This workflow analyzes PDF resumes to summarize their content, enabling the LLM to generate personalized welcome emails.
OpenAI - AskHR Router
This workflow serves as an intermediary connection point within the AskHR chatbot's overall usage, managing dialogue rephrasing, content summarization, and reply composition.
OpenAI - AskHR Function Calling
This workflow serves as the centralized function-calling mechanism for the LLM, processing requests initiated by users through the AskHR chatbot. Its primary role is to determine which tool to run based on the user's messages. It is designed to be triggered by actions originating from the communication platform or chatbot.
AskHR - After Tool
This workflow pattern initiates a sequence of actions after the AskHR function calling workflow selects a tool. Multiple instances of this workflow exist with different tool names (for example, AskHR | After Tool | Start - null_tool). The null_tool variant signifies that the LLM determined the user's chatbot request was not suitable for any of the currently available tools.
Pre-boarding workflows
These workflows automate tasks before the new hire's first day.
Pre Onboarding - Offer Signed
This workflow periodically checks for candidates who have signed an offer and performs the following actions:
- Identifies candidates who have accepted offers.
- Sends alert messages to internal teams.
- Drafts a welcome email with an onboarding form for the candidate.
- Sends the welcome email to the candidate's future manager along with a Slack message for final approval.
For details on setting up the schedule, refer to the Create schedules section.
Pre Onboarding - Week Before Documents
This workflow runs on a schedule to identify employees whose hire date (first day of work) is scheduled for the following week. Once identified, it automatically performs the following actions:
- Alerts the relevant manager, IT, and HR teams.
- Sends an email containing essential onboarding documents, such as information on company culture and employee benefits.
Pre Onboarding - ITSM Request
This workflow is initiated by a Jitterbit custom API whenever a new employee submits a form. It performs the following actions:
- Analyzes the new employee's position against several CSV documents.
- Creates an IT ticket for the onboarding process.
- Notifies HR and IT teams through email and a communication platform (for example, Slack).
Configuration of the Jitterbit custom API is described in Create the Jitterbit custom API later on this page.
First day workflows
These workflows run on a schedule to automatically identify employees whose hire date (first day of work) is today, then perform specific actions as described below.
First Day - Introductions
This workflow performs the following actions:
- Sends alert messages to the new hire's manager.
- Drafts an introduction email containing essential first day information and company links.
First Day - Write LI Post
This workflow sends an email with a LinkedIn post that can be shared on the new hire's profile.
First week workflows
This workflow supports new hires during their first week.
First Week - Personalized Learning Path
This workflow runs on a schedule to identify employees whose hire date is today and performs the following actions:
- Performs CSV analysis to match their positions with relevant training courses.
- Generates and sends a personalized email providing guidance on required training.
Ongoing operations workflows
These workflows manage continuous HR and IT operations throughout the employee lifecycle.
General - Employee Remaining HR Tasks
This workflow runs on a schedule to automate reminders for outstanding HR tasks. It performs the following actions:
- Checks for employees with incomplete tasks within a 90-day window.
- Generates separate emails for both the employee and the HR team, detailing the specific tasks each party is responsible for completing.
First Week - In-progress IT Tickets
This workflow runs on a schedule to proactively manage outstanding IT service onboarding tasks for new hires. It performs the following actions:
- Scans for employees who are in their first week and still have incomplete IT service tickets.
- Notifies IT and HR with separate alerts when a new employee's IT service ticket is not yet complete.
- Sends a direct message to the employee, offering assistance to ensure they receive the necessary IT support.
Prepare BambooHR
The following essential components must be created in BambooHR for the HR Agent. These components are necessary to retrieve the information required for workflow execution.
Create folders in BambooHR
Create the following folders in BambooHR. The HR Agent uses these folders to find relevant resources for workflow functionality.
-
From your BambooHR dashboard, open the Files section.
-
Click + Add Folder.
-
In the dialog box, enter one of the following folder names:
Training DocumentsOnboarding Documents (ALL)IT Documents
-
Click Save or Create to create the folder.
-
Repeat steps 2-4 for each remaining folder.
Add files into folders
For the HR Agent workflows to function, specific files must be placed within the corresponding BambooHR folders. The HR Agent package provides sample CSV files. It is crucial that the structure of any replacement files remains identical; however, file names can be changed. If a file name is changed, this modification must be consistently applied across all other parts of the project where the file name is referenced, as these files are essential for the workflows' operation.
Upload training documents
The HR Agent package includes a sample CSV file named TEMPLATE - HR Agent Onboarding Courses - Job Role.csv. This file lists the mandatory courses assigned to each job role.
-
Open
TEMPLATE - HR Agent Onboarding Courses - Job Role.csvfrom the HR Agent package. -
Update the file with your company-specific course information. Keep the column structure and formatting intact.
-
Save the updated file.
-
Log in to BambooHR.
-
From the left menu, select Files.
-
Click the Training Documents folder.
-
Click Upload.
-
Select your updated CSV file and click Open.
Upload IT documents
The HR Agent package includes three sample CSV files for the IT onboarding ticket creation workflow (Pre Onboarding | ITSM Request). Upload only the files that apply to your company's IT onboarding process:
TEMPLATE - IT_Apps_JobRole.csv: Lists the applications that each job role can access.TEMPLATE - IT_G-Suite Groups.csv: Lists the Google Workspace groups that each job role can access.TEMPLATE - IT_LaptopChoice_JobRole.csv: Lists the laptop type assigned to each job role.
Follow these steps to upload the IT documents:
-
Open each CSV file you need from the HR Agent package.
-
Replace the sample data with your company's job roles and IT resources. Do not modify the column headers or file structure.
-
Save each updated file.
-
In BambooHR, go to Files.
-
Click the IT Documents folder to open it.
-
Click Upload.
-
Select one or more of your updated CSV files and click Open.
Upload onboarding documents
Upload documents such as company culture guides, employee benefits overviews, company events calendars, company news and updates, office policies and procedures, and team contact information.
To upload files to this folder:
-
Gather the onboarding documents you want to send to new employees.
-
In BambooHR, go to Files from the left menu.
-
Click the Onboarding Documents (ALL) folder to open it.
-
Click Upload.
-
Select one or more files from your computer and click Open.
Create custom reports in BambooHR
You must create two custom reports in BambooHR for the HR Agent to retrieve:
- A comprehensive list detailing all current employees.
- A list for each employee detailing all incomplete HR tasks, whether assigned directly to the employee or to their designated HR contact.
Create employee report
To generate the necessary employee data for the HR Agent project, use the following procedure to create a report that includes all essential employee information required for the project:
-
Log in to your BambooHR dashboard.
-
In the top navigation bar, click Reports.
-
Click + New Report (usually at the upper right).
-
Enter a report name:
Employees Report. -
Add the following fields to the report:
- First Name
- Last Name
- Hire Date
- Country
- Work Email
- Home Email
- Supervisor Email
- Supervisor Name
- LinkedIn URL
- Department
- Job Title
- Reports To
- SRE User Region
-
Filter results should be All employees.
-
Click Save.
Note
SRE User Regionis a custom field. This field is used when creating an IT onboarding ticket. If your company does not require this information, this field is optional. Otherwise, make sure to create this custom field in BambooHR following the official documentation.
Create employee tasks report
To generate the necessary employee remaining HR tasks for the HR Agent project, use the following procedure to create a report that includes all essential employee tasks required for the project:
-
Log in to your BambooHR dashboard.
-
In the top navigation bar, click Reports.
-
Click + New Report (usually at the upper right).
-
Enter a report name:
Employee Tasks Report. -
Add the following fields to the report:
- Task
- Category
- Task list
- Assigned To
- Due Date
- Completed Date
- Completed
-
Filter results should be All employees.
-
Click Save.
Create BambooHR API key
You must generate an API key to connect BambooHR within the project. To create your API key, follow BambooHR's instructions to Create a New API Key (permissions required). Once the API key is created, make sure to save it. This key is used in the next steps of configuration.
Create a Google Form
This form is designed for new candidates. It is included in their welcome email to gather essential information and initiate the IT service management ticket creation process (Pre Onboarding | ITSM Request). These steps can be bypassed if an alternative to Google Forms is preferred. However, custom Jitterbit APIs in the following steps Create the Jitterbit custom API should still be followed, and the API should be triggered by your preferred form.
Create the form
-
Go to Google Forms.
-
Create a blank form.
-
Add the following required fields:
-
Full Name (question type: Short answer)
-
Address (question type: Paragraph)
-
Phone Number (question type: Short answer)
-
Email (question type: Short answer, with Email validation enabled)
-
Give your form a name:
Onboarding Form.
-
Link the form to a Google Sheet
-
In the form editor, click Responses.
-
Click the green Google Sheets icon in the upper right.
-
Select Create a new spreadsheet.
-
Enter the spreadsheet name:
Onboarding Form (Responses). -
Click Create to link the form to the spreadsheet.
The spreadsheet automatically creates columns based on your form questions. Verify that the columns appear in the following order, as the script depends on this exact sequence:
- Timestamp
- Full Name
- Address
- Phone Number
If the column order is different, the form questions may not match the expected order. To fix this, reorder the questions in your form to match the sequence above.
Set up the Apps Script
- In the linked Google Sheet, go to Extensions > Apps Script.
- The Apps Script editor opens. By default, the script is named
Untitled project. - At the top of the editor, click Untitled project and rename it to
Onboarding Form (Responses). - In the Apps Script editor, delete any existing code.
- Open the
googleForm_appScript.jsfile from the HR Agent package. - Copy all the code from
googleForm_appScript.jsand paste it into the Apps Script editor. - In the pasted code, leave
YOUR_ENDPOINT_HEREandYOUR_API_KEY_HEREas placeholders. You will update these values later in Create the Jitterbit custom API. - Click Save.
Set up the form submission trigger
Configure the script to run automatically when someone submits the form.
-
In the Apps Script editor, click the Triggers icon in the left sidebar.
-
Click Add Trigger.
-
Configure the trigger settings:
- Choose which function to run: Select onFormSubmit.
- Select event source: Select From spreadsheet.
- Select event type: Select On form submit.
- Failure notification settings: Select Notify me immediately.
-
Click Save.
When a user submits the form, the script sends the response to your HR Agent project and triggers the Create ITSM Request API operation.
Share the form
-
Go to your Google Forms at forms.google.com and open your onboarding form.
-
Click Send.
-
Click the link icon to get the shareable link.
-
Under Get link, change the access setting to Anyone with the link.
-
Click Copy link to copy the form URL.
-
Share this link with new hires so they can access and submit the form.
Prepare Jitterbit Cloud Datastore
If you do not have a Cloud Datastore access token already, follow the documentation to generate one. Once you create your access token, save it. This token is used in the next steps of configuration.
Create one key storage in Jitterbit Cloud Datastore named candidate_welcome_emails, with fields that have the names and types listed in the table below.
As you add custom fields, use the table below to determine whether each should be toggled to Required in the Cloud Datastore user interface. The AlternativeKey and Value fields are default fields that cannot be removed or toggled.
candidate_welcome_emails
This key storage contains the list of candidate names, emails, and personalized welcome email contents.
| Name | Type | Required | Value definition | Description |
|---|---|---|---|---|
Key |
Text | Yes | Auto-populated | Name and surname of the candidate with WE- prefix without spaces. Example: WE-FirstLast. This value is generated within the workflow Pre Onboarding | Offer Signed. |
AlternativeKey |
Text | No | Auto-populated | This is not used. |
Value |
Text | No | Auto-populated | Name and surname of the candidate without spaces. This value is generated within the workflow Pre Onboarding Offer Signed. |
CandidateEmail |
Text | No | Auto-populated | The email address of the candidate. This value is generated within the workflow Pre Onboarding | Offer Signed. |
CandidateEmailBody |
Big Text | No | Auto-populated | The email content that is generated for the candidate. This contains the personalized email content. Its value is generated within the workflow Pre Onboarding | Offer Signed. |
Configure project variables
In the Integration Studio project installed earlier through Marketplace, you must set values for the following project variables.
This can be done using the project's actions menu to select Project Variables to open a drawer along the bottom of the page where you can review and set the values.
BambooHR
| Variable name | Description |
|---|---|
bambooHr.base.url |
BambooHR base URL for HTTP requests. Example: https://{companyDomain}.bamboohr.com/ |
bamboo.password |
BambooHR basic authentication password. |
bamboo.apiKey |
Your API key for BambooHR basic authentication username. See documentation on how to get an API key. |
bamboo.path.reports.employeeTasks |
ID of the custom report for employee tasks. This is shown in the URL when this particular report is visited. Example: https://{companyDomain}.bamboohr.com/reports/custom/Employee+Tasks+Reports/103 |
bamboo.path.reports.employees |
ID of the custom report for employees. Example: https://{companyDomain}.bamboohr.com/reports/custom/Employee+Tasks+Reports/103 |
bamboo.folder.trainingDocuments |
Folder name of where training documents are stored. |
bamboo.folder.onboarding |
Folder name containing onboarding documents that should be sent to new hires one week before their start date. This folder should not include signature documents. |
bamboo.folder.itDocuments |
Folder name of where IT documents are stored. |
bamboo.folder.file.itLaptopChoice |
File name of where laptop choice details are stored. |
bamboo.folder.file.itGSuite |
File name of where Google Workspace details are stored. |
bamboo.folder.file.itApps |
File name of where app details are stored. |
bamboo.folder.file.courses |
File name of where courses details are stored. |
Jira
| Variable name | Description |
|---|---|
jira.userName |
Jira basic authentication username. |
jira.task.reporter |
Jira internal ID of reporter. |
jira.task.assignee |
Jira internal ID of assignee. |
jira.project.name |
Jira project name. |
jira.password |
Jira basic authentication password. |
jira.baseUrl |
Jira base URL for HTTP requests. |
jira.api.token |
Jira API token. See Jira connection for useful links to assist in creating your API token. |
Confluence
| Variable name | Description |
|---|---|
confluence.username |
Confluence basic authentication username. |
confluence.apiKey |
Confluence basic authentication password. For more information on where to get your API key, visit Manage API tokens. |
confluence.base.url |
The base URL for getting IT onboarding documentation. |
For more information on the usage of the variables, see documentation.
| Variable name | Description |
|---|---|
email.smtp.username |
Username for authenticating with the SMTP server. |
email.smtp.password |
Password for authenticating with the SMTP server. |
email.smtp.host |
SMTP server hostname or IP address for sending emails. |
email.from |
Sender email address used in the From field for all outgoing emails. |
email.to.it |
IT department email address for receiving system notifications throughout the project. |
email.to.hr |
HR department email address for receiving notifications throughout the project. |
Note
The email connector uses SMTP security set to SSL and SMTP Port set to 465.
OpenAI and GPT
| Variable name | Description |
|---|---|
openAI.apiKey |
OpenAI API key for authentication. For more information, visit OpenAI. |
openAi.url.path |
URL path for OpenAI API calls. Dynamically assigned by the application. Leave empty. |
gpt.toolChoice |
Tool selection mode for GPT function calling. Should be set to auto. |
gpt.temperature |
Controls randomness in GPT responses (0.0-2.0). Leave empty to use the default value or specify a custom value. |
gpt.model |
GPT model identifier. Must be set to GPT-4o. |
gpt.maxTokens |
Maximum number of tokens in GPT responses. Leave empty to use the default value or specify a custom value. |
Slack
| Variable name | Description |
|---|---|
slack.bot.user.token |
Bot user OAuth access token obtained after creating the Slack app. Used for authentication in the Slack connection. |
slack.itChannel.ID |
Slack channel ID for IT notifications. Found in the channel details. |
slack.hrChannel.ID |
Slack channel ID for HR notifications. Found in the channel details. |
slack.bot.id |
Slack bot user ID (Member ID). Used to prevent the bot from replying to its own messages. Found in the app details. |
Note
The Slack app is created in a later step. For now, you can leave slack.bot.id and slack.bot.user.token variables blank.
Other
| Variable name | Description |
|---|---|
your.company |
The name of your company (example: Jitterbit). |
welcome.form |
The URL of the form to send to candidates in the welcome email. If you created a Google Form, see details. |
learningPath.enrollment.key |
The URL of your organization chart. |
Introduction.helpfulIT.url |
The URL of helpful IT links or information. |
Introduction.companyContact.url |
The URL of essential company contacts. |
hr.tasks.link |
A URL that guides employees through completing their remaining HR tasks. If no dedicated URL exists, provide the main page of your HR platform. |
cloud.datastore.key |
Your Cloud Datastore key. See Prepare Jitterbit Cloud Datastore for details. |
resource.IT.page |
The page ID of the IT onboarding page. Used to retrieve page content. |
Introduction.orgChart.url |
The URL of your organization chart. |
offerSigned.LastModifiedDate.Manual.Date |
The manual workflow run date that overrides the cached date for the Pre Onboarding | Offer Signed workflow. |
offerSigned.LastModifiedDate.Manual |
Set to true to enable the manual run date override for the Pre Onboarding | Offer Signed workflow. |
Test connections
Test the endpoint configurations to verify connectivity using the defined project variable values.
This can be done from the design component palette's Project endpoints and connectors tab by hovering on each endpoint and clicking Test.
Add email templates
In the workflow Common Operations, in its operation Common Scripts, you can find a script called HTML Email Templates. This script contains all email templates for the project. Reference Jitterbit sample templates are included for guidance, but they must be replaced with your company's actual email templates.
Create schedules
Certain workflows require scheduled execution. The AI agent includes a pre-configured schedule, Daily Schedule, which is set up for daily triggers.
You have the option to use this existing Daily Schedule (this can be done from the operation's actions menu in Settings > Schedules) or create new schedule. The operations listed below must have a schedule associated with them:
Controller - Search Offer SignedController - Search New Hire - Week BeforeController - Search IntroductionsController - Search Write LI PostController - Search - Personalized Learning PathController - Search - Employee Remaining HR TasksController - Search - In-progress IT Tickets
Deploy the project
-
Open the Datastore Calls workflow.
-
Locate the following three Cloud Datastore endpoint activities:
Insert Welcome EmailQuery Welcome EmailDelete Items
-
Click each Cloud Datastore endpoint activity and select the storage named
candidate_welcome_emailsStudiothat you created in the Prepare Jitterbit Cloud Datastore step. -
Click Next, and then click Finish.
-
Repeat steps 3 and 4 for each Cloud Datastore endpoint activity.
-
Deploy the Integration Studio project. This can be done using the project's actions menu to select Deploy.
Create the Jitterbit custom API
Create a custom API using API Manager for one of the following:
-
Slack bot API request handler: Required if using the Slack notification included in the design of this AI agent.
-
Google Form API request handler: Required if using the Google Form included in the design of this AI agent.
Create the Slack bot API request handler
This custom Jitterbit API triggers the PlatformBot | Inbound Event operation. Configure and publish the custom API with the following settings:
- API Service:
HR Agent - PlatformBot | Inbound Event - Path:
/ - Project: Select the Integration Studio project created from the
Jitterbit HR Agentin Marketplace - Operation to Trigger:
PlatformBot | Inbound Event - Method:
POST - Response Type:
System Variable
Retain the service URL of the published API for use in creating the Slack app. The service URL can be found in the API details drawer on the Services tab by hovering on the service's Actions column and clicking Copy API service URL.
Create the Google Form API request handler
This custom Jitterbit API triggers the Create ITSM Request API operation. Configure and publish the custom API with the following settings:
- Service name:
HR Agent - Create ITSM Request API - Project: Select the Integration Studio project created from the
Jitterbit HR Agentin Marketplace - Operation:
Create ITSM Request API - Method:
POST - Response type:
System Variable - Security profile: Create new profile
- Profile name:
HR Agent - Environment: Select the environment where the Jitterbit HR Agent project is deployed
- Type:
API Key - Key:
X-APIKey - Value: You receive a unique key. Copy this value for now. This is required to complete Google Form configuration.
- Click Save.
- Profile name:
Make sure to assign the security profile to the API configuration and save it. Retain the service URL of the published API for use in the Google Form. You can find the service URL in the API details drawer on the Services tab. To copy the URL, hover on the service's Actions column and click Copy API service URL. After you have both the API key and the service URL, complete the Google Form configuration app script. Make sure to save the app script after you add the service URL and API key.
Create the Slack app, test the connection, and redeploy the project
To create the HR Agent chat interface in Slack, create a Slack app using the Slack app manifest file provided with this AI agent's customization files. Alternatively, create it from scratch.
If using the provided Slack app manifest file (slack_app_manifest.json), you must replace the following placeholders with your own configuration values:
| Placeholder | Description |
|---|---|
{{Replace with Slack bot name}} |
The name you want your Slack bot to have, as displayed to users. There are two places in the manifest where you must replace this value. |
{{Replace with Jitterbit API URL}} |
The service URL of the Jitterbit custom API you created in Create the Slack bot API request handler. |
After installing the Slack app, obtain its bot token.
Reopen the project variables configuration and enter the bot token for the slack.bot.user.token project variable value.
Once the bot token is set, test the Slack connection and redeploy the project.
Note
Add your Slackbot to your IT and HR channels. Complete the following steps:
- Navigate to the channel where you want the bot to join. In the message input field, type
/invite @YourBotName, whereYourBotNameis the name of your bot. - Repeat this step for each channel where you want to add the bot (IT and HR).
Trigger the project workflows
For testing purposes, prepare your test records and run the following operations. You can run an operation by using the operation's Run option, which appears when you hover over the operation:
Controller - Search Offer SignedController - Search New Hire - Week BeforeController - Search IntroductionsController - Search Write LI PostController - Search - Personalized Learning PathController - Search - Employee Remaining HR TasksController - Search - In-progress IT Tickets
The two other main workflows are triggered by the Jitterbit custom APIs:
PlatformBot | Inbound Event: Slack triggers this workflow through theHR Agent - PlatformBot | Inbound Eventcustom API. Sending a direct message to the Slack app initiates the custom API trigger.Create ITSM Request API: Google Form triggers this workflow through theHR Agent - Create ITSM Request APIcustom API. Sending a sample form initiates the custom API trigger.
All other workflows are triggered by other operations and are downstream of those listed above. They are not intended to be run by themselves.
Troubleshooting
Review API logs and operation logs for detailed troubleshooting information.
For additional assistance, contact Jitterbit support.
Different endpoint usage
If you change the endpoint used in the template, you must modify several project components. This section describes the required updates for each workflow that uses the endpoint.
Important
Before you modify the project, review the components that you plan to change. Reviewing the components helps you understand how they work and might let you reuse existing scripts for your endpoints.
HRIS platforms
If your company uses an HR platform other than BambooHR, use the guidance in this section to modify your project.
The HR Calls workflow contains all operations that extract data from HR platforms. Because each HR platform has unique API documentation and capabilities, the steps for retrieving information vary across different HR platforms.
Detect and process signed offers
The following operations detect candidates who have signed offers and trigger the offer processing workflow:
Get Applicant Status: Retrieves the current status of applicants.Get Applicant Status - Prep for Details: Prepares applicant data for detailed retrieval.Get Applicant Details: Retrieves detailed information about applicants.
These operations run on the Controller - Search Offer Signed controller. When the operations detect a candidate with a signed offer status, they trigger the Start - Single Offer operation to process the workflow.
Complete the following steps to configure the Start - Single Offer operation:
- Open the Offer Signed Data to Common Model Employee Schema transformation.
- Update the source schema.
- Complete the field mappings to assign the required variables (for example,
offerSigned_manager).
If you create new operations for your HR platform requirements, add them to the Controller - Search Offer Signed controller.
Retrieve custom reports from your HR platform
The GET Custom Report by ID operation serves two purposes:
- Retrieve a list of employees.
- Retrieve remaining HR tasks.
After the operation retrieves the report data, the agent calls a subsequent operation that maps the source data to a common schema (common_schema_employeeInfo) and assigns variables that the workflow requires.
The following workflows use this operation:
| Workflow | Calling operation | Processing operation |
|---|---|---|
| AskHR | After Tool | Start - find_manager | Start - find_manager |
AskHr - find_manager - Employees Directory to Common Employee schema |
| Pre Onboarding | Week before documents | Controller - Search New Hire - Week Before |
GET Report - Week Before Data to Common Model Employee Schema |
| Pre Onboarding | ITSM Request | Start | ITSM Request API |
GET Report - Employee Directory to ITSM Common Model Employee Schema |
| First Day | Introductions | Controller - Search Introductions |
GET Report - First Day Introductions Data to Common Model Employee Schema |
| First Day | Write LI Post | Controller - Search Write LI Post |
GET Report Employee - LI Post Data to Common Model Employee Schema |
| First Week | Personalized Learning Path | Controller - Search - Personalized Learning Path |
Personalized Learning Path - Employees Data to Common Model Employee Schema |
| General | Employee Remaining HR Tasks | Controller - Search - Employee Remaining HR Tasks |
Employee Remaining HR Tasks to Flat HR Tasks |
| First Week | In-progress IT Tickets | Controller - Search - In-progress IT Tickets |
GET Report Employee - Filter First Week to Common Model Employee Schema |
For each workflow, open the processing operation's transformation and complete the following steps:
- Update the source schema to match your HR platform.
- Complete the field mappings to assign the required variables.
Note
The General | Employee Remaining HR Tasks workflow uses GET Custom Report by ID for the remaining HR tasks report. If you cannot use the same operation for this workflow, create a new operation and call it from the Controller - Search - Employee Remaining HR Tasks controller.
Retrieve employee data by ID
The Get Employee by Id operation retrieves data for a single employee from your HR platform. The Get Employee Details by Id operation maps the source data to the common schema (common_schema_employeeInfo).
Complete the following steps to configure these operations:
- Update the
Get Employee by Idoperation with your HR platform's API call. - Open the Get Employee Details by Id transformation to update the source schema and complete the field mappings to assign the required variables.
Download files from your HR platform
The following operations download files from your HR platform:
Get List of Files: Retrieves a list of folders.Get List of Files - Filter for Folders v2: Filters the folder list to identify the correct folder.Get List of Files - Filter & Download Single File: Downloads a single file from a folder.Get List of Files - Download All Files: Downloads all files from a folder.Get List of Files - Download File v2: Handles the file download through the API.
Configure Get List of Files
- Update the operation with your HR platform's API call to fetch a list of folders.
- In the BambooHR variable settings, update the variables that start with
bamboo.folder. These variables identify the correct folder for each workflow. - Open the Get List of Files - Filter for Folders v2 transformation to update the source schema.
- Complete the transformation mappings according to the comments in the target schema.
Configure Get List of Files - Filter & Download Single File
In the BambooHR variable settings, update the variables that start with bamboo.folder.file. These variables identify the correct file for each workflow when you download a single file from a folder.
Configure Get List of Files - Download All Files
This operation downloads all files from the filtered folder. The operation is primarily used in the Pre Onboarding | Week before documents workflow to send onboarding documents. For more information, see Review project workflows.
Configure Get List of Files - Download File v2
This operation is linked to both Get List of Files - Filter & Download Single File and Get List of Files - Download All Files as their next step. Update the operation with your HR platform's API call to handle the file download.
Retrieve employee time-off data
The Get a list of Who's Out operation is used in AskHR workflows to answer user questions such as "Who is out of office tomorrow?".
To configure this operation, complete the following steps:
- Update the operation to call your HR platform's API endpoint that retrieves out-of-office data.
-
Use the following variables to filter the date range in your HTTP request:
-
$llm_response_start_date: The start date that the LLM generates based on the user's request on a communication platform such as Slack. -
$llm_response_end_date: The end date that the LLM generates based on the user's request on a communication platform such as Slack.
-
ITSM platforms
If your company uses an IT Service Management (ITSM) platform other than Jira, use the guidance in this section to modify your project.
Create IT onboarding tickets
To configure these operations for a different ITSM platform, complete the following steps:
-
Update the
ITSM - Create Task in JIRAoperation to use your ITSM platform's API endpoint. -
Use the following common variables in the operation:
$it_laptopChoice_list: The new hire's laptop choice.$it_application_list: The list of applications to provision.$it_gSuite_list: The list of Google Workspace services to provision.$newHire_department: The new hire's department.$newHire_region: The new hire's region.
-
Ensure your operation populates the
$newHire_itTicketvariable with the IT ticket URL from the API response.
Retrieve in-progress IT tickets
The Search ITSM Issue operation retrieves in-progress IT onboarding tickets. This operation runs as part of the First Week | In-progress IT Tickets workflow.
To configure this operation for a different ITSM platform, complete the following steps:
- Update the
Search ITSM Issueoperation to use your ITSM platform's API endpoint for retrieving in-progress IT onboarding tickets. - Open the GET IT Newhire In-progress tickets - to Common Model IT Ticket Schema transformation to update the source schema and complete the field mappings.
Knowledge management platforms
If your company uses a knowledge management platform other than Confluence, use the guidance in this section to modify your project.
Retrieve IT onboarding content
The AskHr - Get IT Onboarding Content operation retrieves content from your IT onboarding documentation page. The AI agent uses this content to answer IT-related questions in the Slack bot. This operation uses the confluence.base.url project variable.
To configure this operation for a different knowledge management platform, complete the following steps:
-
(Optional) In the project variables section, add a variable for your platform's base URL.
-
Update the
AskHr - Get IT Onboarding Contentoperation to use your platform's API endpoint. -
Update the operation's transformation to match your platform's response schema.
-
Ensure your operation populates the
$it_onboarding_contentvariable with the retrieved content. The AI agent uses this variable in an LLM prompt to answer user questions in the Slack bot.
CSV templates
CSV templates are a core component of this project. The templates enable workflows that analyze files and generate customized emails and IT tickets. While you can customize the data in these templates for your company, if you modify the template structure, you must update the associated prompts.
The following operations contain prompts that are designed for specific CSV template files:
| Operation | CSV template file | Purpose |
|---|---|---|
Prompt - Courses List |
TEMPLATE - HR Agent Onboarding Courses - Job Role.csv |
Generates course recommendations based on job role |
Prompt - Application List |
TEMPLATE - IT_Apps_JobRole.csv |
Determines applications to provision based on job role |
Prompt - GSuite List |
TEMPLATE - IT_G-Suite Groups.csv |
Assigns Google Workspace groups |
Prompt - Laptop Choice List |
TEMPLATE - IT_LaptopChoice_JobRole.csv |
Provides laptop options based on job role |
If you modify the structure of a CSV template file, update the corresponding operation's prompt to match the new structure.
Form submission platforms
If your company uses a form submission platform other than Google Forms, use the guidance in this section to modify your project.
The AI agent uses a form to collect information for drafting the candidate welcome email. The form collects the candidate's full name, home address, phone number, and personal email address.
To configure the AI agent to use a different form platform, complete the following steps:
-
Configure your form to send user data to the Jitterbit custom API.
-
Open the Form Response to Common Employee Schema transformation to update the source schema and complete the field mappings.
Data storage platforms
If your company uses a data storage platform other than Cloud Datastore, use the guidance in this section to modify your project.
The AI agent uses Cloud Datastore to store drafted welcome emails and candidate email addresses. The datastore enables insertion, querying, and deletion of records. You need the stored candidate email address for sending the welcome email after manager approval.
Important
Do not change any global variable names. Use the variable names as they are defined.
To configure the AI agent to use a different data storage platform, update the following operations:
Store welcome email data
The Datastore | Insert Welcome Email operation inserts the following data into the datastore:
| Data field | Variable or value |
|---|---|
| Drafted email body | $llm_response_email_body |
| Candidate full name (without spaces) | fullname = $offerSigned_name + $offerSigned_surName;fullname_cleaned = Replace(fullname, " ", "");fullname_cleaned |
| Candidate email address | $offerSigned_email |
| Record key | fullname = $offerSigned_name + $offerSigned_surName;fullname_cleaned = Replace(fullname, " ", "");"WE-" + fullname_cleaned |
Delete welcome email data
The Datastore | Delete Welcome Email operation removes records after the email is sent to the candidate or if the manager rejects the drafted email.
Configure the operation to accept the internal record ID from the $dataStore_item_id variable. The operation includes logging statements to track the deletion:
WriteToOperationLog("------------------------------");
WriteToOperationLog("Deleting Key: WE-" + $dataStore_Key + " With itemID: " + $dataStore_item_id);
WriteToOperationLog("------------------------------");
$dataStore_item_id
The query operation retrieves the $dataStore_item_id value, which identifies the record to delete.
Communication platforms
If your company uses a communication platform other than Slack, use the guidance in this section to modify your project.
The AI agent uses Slack for IT, HR, and manager notifications, as well as all user interactions.
Configure the inbound event handler
Configure your communication platform to send user request events to the Jitterbit custom API. The PlatformBot | Inbound Event operation receives these events and triggers the chain of operations that process user messages.
Update project variables
Update the following project variables to match your communication platform:
| Variable name | Description |
|---|---|
slack.itChannel.ID |
IT notifications channel ID |
slack.hrChannel.ID |
HR notifications channel ID |
slack.bot.id |
Bot user ID (used to prevent the bot from responding to its own messages) |
slack.bot.user.token |
Bot user OAuth access token |
Tip
You can rename these variables to match your platform (for example, change slack.itChannel.ID to teams.itChannel.ID). When you rename a variable, all references to that variable are automatically updated throughout your project, including scripts and transformations.
Validate platform messages
The Validate Platform Message operation verifies that incoming messages originated from an end user rather than the bot itself, and extracts variables for subsequent use.
Configure your operation to populate the following variables:
| Variable | Description | Value |
|---|---|---|
$platform_bot_id_pass |
Message source validation | Set to "true" if the message is from an actual user |
$platform_userID |
User identifier | User ID of the message sender |
$platform_ts |
Message timestamp | Timestamp of the message |
$platform_thread_ts |
Thread reply timestamp | Timestamp of the reply message when sent in a thread |
$platform_channel |
Channel identifier | Channel ID where the message was sent |
Update the transformation's source and target schemas to match your communication platform's API.
Send notification messages
The Post Notification Message to Channel operation sends messages or replies to platform channels.
Configure your operation to use the following variables:
| Variable | Description |
|---|---|
$platform_channel |
Channel ID where the message is sent |
$platform_thread_ts |
Thread timestamp from the original message |
$platform_notification_text |
Body of the message to send |
If $platform_thread_ts contains a value (greater than 0), the operation sends the reply to that thread. Otherwise, the operation sends a new message to the channel. Configure this logic in your transformation mapping:
if($platform_thread_ts > 0, $platform_thread_ts)
Update the transformation's source and target schemas to match your communication platform's API.
Retrieve conversation history
The Conversation History operation retrieves the last five messages in the conversation history and maps the messages to the common target schema common_conversation_history_schema.json.
The target schema includes a thread_latest_reply node that represents the latest reply in a thread. This node is populated with variables from the Validate Platform Message operation.
Update the transformation's source schema to match your communication platform's API.
Send typing indicator
The Post Typing to Channel operation sends a typing indicator to the channel.
Configure your operation to use the following variables:
| Variable | Description |
|---|---|
$platform_channel |
Channel ID where the indicator is sent |
$platform_thread_ts |
Thread timestamp from the original message |
| Message body | Your platform's typing indicator format |
$platform_typing_ts |
Timestamp of the typing indicator message (used for later deletion) |
If $platform_thread_ts contains a value, the operation sends the typing indicator to that thread. Otherwise, it sends the indicator to the channel. Configure this logic in your transformation mapping:
if(Length($platform_thread_ts) > 0, $platform_thread_ts, unmap());
Update the transformation's source and target schemas to match your communication platform's API.
Delete typing indicator
The Delete Message operation removes the typing indicator from the channel after the bot sends its response.
Configure your operation to use the following variables:
| Variable | Description |
|---|---|
$platform_channel |
Channel ID where the typing indicator was sent |
$platform_typing_ts |
Timestamp of the typing indicator message to delete |
Update the transformation's source and target schemas to match your communication platform's API.
Retrieve user email by user ID
The Get User Email by UserId operation retrieves a user's email address using their user ID.
Configure your operation to use the following variables:
| Variable | Description |
|---|---|
$platform_userID |
User ID to search for |
$slack.bot.user.token |
Authentication token |
Update the transformation's source and target schemas to match your communication platform's API.
Retrieve user information by name
The Get UserID & Email by Name and Surname operation retrieves a user's email address and user ID using their full name.
Configure your operation to use the following variables:
-
Request schema
Variable Description $slack.bot.user.tokenAuthentication token -
Response schema
The operation populates the following variables:
Variable Description $platform_emailUser's email address $platform_userIDUser's ID
The operation compares the user's full name from your platform against either $llm_response_manager_full_name or $newHire_fullName to find the correct user. Update this logic to match your platform's user data structure:
pass = false;
real_name = json$get_response$item.members$item.profile$real_name$;
if($llm_response_manager_full_name == real_name || $newHire_fullName == real_name,
pass = true;
WriteToOperationLog("We found a matching slack user for: " + $llm_response_manager_full_name + " " + $newHire_fullName);
);
//pass = true;
Pass
Update the transformation's source and target schemas to match your communication platform's API.