Skip to Content

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:

OpenAI

You must have an OpenAI subscription to create and manage the following resources:

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.

  • "Who is my manager?"
  • "Who is out next week?"
  • "Who was out last week?"
  • "Who is out tomorrow?"
  • "Is [Insert Name] out today?"
  • "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:

  1. Download customizations and install the Integration Studio project.
  2. Review project workflows.
  3. Prepare BambooHR.
  4. Create a Google Form.
  5. Prepare Jitterbit Cloud Datastore.
  6. Configure project variables.
  7. Test connections.
  8. Add email templates.
  9. Create schedules.
  10. Deploy the project.
  11. Create the Jitterbit custom API.
  12. Create the Slack app, test the Slack connection, and redeploy the project.
  13. Trigger the project workflows.
  14. Troubleshooting.
  15. 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:

  1. Log in to the Harmony portal at https://login.jitterbit.com and open Marketplace.

  2. 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.

  3. 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.

  4. 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.

  5. 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.csv
      • TEMPLATE - IT_G-Suite Groups.csv
      • TEMPLATE - IT_LaptopChoice_JobRole.csv
      • TEMPLATE - 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.

  6. Click Next.

  7. In configuration step 2, Create a New Project, select an environment where the Integration Studio project will be created, then click Create Project.

  8. 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.

  1. From your BambooHR dashboard, open the Files section.

  2. Click + Add Folder.

  3. In the dialog box, enter one of the following folder names:

    • Training Documents
    • Onboarding Documents (ALL)
    • IT Documents
  4. Click Save or Create to create the folder.

  5. 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.

  1. Open TEMPLATE - HR Agent Onboarding Courses - Job Role.csv from the HR Agent package.

  2. Update the file with your company-specific course information. Keep the column structure and formatting intact.

  3. Save the updated file.

  4. Log in to BambooHR.

  5. From the left menu, select Files.

  6. Click the Training Documents folder.

  7. Click Upload.

  8. 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:

  1. Open each CSV file you need from the HR Agent package.

  2. Replace the sample data with your company's job roles and IT resources. Do not modify the column headers or file structure.

  3. Save each updated file.

  4. In BambooHR, go to Files.

  5. Click the IT Documents folder to open it.

  6. Click Upload.

  7. 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:

  1. Gather the onboarding documents you want to send to new employees.

  2. In BambooHR, go to Files from the left menu.

  3. Click the Onboarding Documents (ALL) folder to open it.

  4. Click Upload.

  5. 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:

  1. A comprehensive list detailing all current employees.
  2. 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:

  1. Log in to your BambooHR dashboard.

  2. In the top navigation bar, click Reports.

  3. Click + New Report (usually at the upper right).

  4. Enter a report name: Employees Report.

  5. 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
  6. Filter results should be All employees.

  7. Click Save.

    Note

    SRE User Region is 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:

  1. Log in to your BambooHR dashboard.

  2. In the top navigation bar, click Reports.

  3. Click + New Report (usually at the upper right).

  4. Enter a report name: Employee Tasks Report.

  5. Add the following fields to the report:

    • Task
    • Category
    • Task list
    • Assigned To
    • Due Date
    • Completed Date
    • Completed
  6. Filter results should be All employees.

  7. 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

  1. Go to Google Forms.

  2. Create a blank form.

  3. Add the following required fields:

    1. Full Name (question type: Short answer)

    2. Address (question type: Paragraph)

    3. Phone Number (question type: Short answer)

    4. Email (question type: Short answer, with Email validation enabled)

    5. Give your form a name: Onboarding Form.

  1. In the form editor, click Responses.

  2. Click the green Google Sheets icon in the upper right.

  3. Select Create a new spreadsheet.

  4. Enter the spreadsheet name: Onboarding Form (Responses).

  5. 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
  • Email

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

  1. In the linked Google Sheet, go to Extensions > Apps Script.
  2. The Apps Script editor opens. By default, the script is named Untitled project.
  3. At the top of the editor, click Untitled project and rename it to Onboarding Form (Responses).
  4. In the Apps Script editor, delete any existing code.
  5. Open the googleForm_appScript.js file from the HR Agent package.
  6. Copy all the code from googleForm_appScript.js and paste it into the Apps Script editor.
  7. In the pasted code, leave YOUR_ENDPOINT_HERE and YOUR_API_KEY_HERE as placeholders. You will update these values later in Create the Jitterbit custom API.
  8. Click Save.

Set up the form submission trigger

Configure the script to run automatically when someone submits the form.

  1. In the Apps Script editor, click the Triggers icon in the left sidebar.

  2. Click Add Trigger.

  3. 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.
  4. 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

  1. Go to your Google Forms at forms.google.com and open your onboarding form.

  2. Click Send.

  3. Click the link icon to get the shareable link.

  4. Under Get link, change the access setting to Anyone with the link.

  5. Click Copy link to copy the form URL.

  6. 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.

Email

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 Signed
  • Controller - Search New Hire - Week Before
  • Controller - Search Introductions
  • Controller - Search Write LI Post
  • Controller - Search - Personalized Learning Path
  • Controller - Search - Employee Remaining HR Tasks
  • Controller - Search - In-progress IT Tickets

Deploy the project

  1. Open the Datastore Calls workflow.

  2. Locate the following three Cloud Datastore endpoint activities:

    • Insert Welcome Email
    • Query Welcome Email
    • Delete Items
  3. Click each Cloud Datastore endpoint activity and select the storage named candidate_welcome_emailsStudio that you created in the Prepare Jitterbit Cloud Datastore step.

  4. Click Next, and then click Finish.

  5. Repeat steps 3 and 4 for each Cloud Datastore endpoint activity.

  6. 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:

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 Agent in 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 Agent in 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.

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, where YourBotName is 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 Signed
  • Controller - Search New Hire - Week Before
  • Controller - Search Introductions
  • Controller - Search Write LI Post
  • Controller - Search - Personalized Learning Path
  • Controller - Search - Employee Remaining HR Tasks
  • Controller - 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 the HR Agent - PlatformBot | Inbound Event custom API. Sending a direct message to the Slack app initiates the custom API trigger.
  • Create ITSM Request API: Google Form triggers this workflow through the HR Agent - Create ITSM Request API custom 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:

  1. Open the Offer Signed Data to Common Model Employee Schema transformation.
  2. Update the source schema.
  3. 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:

  1. Retrieve a list of employees.
  2. 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:

  1. Update the source schema to match your HR platform.
  2. 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:

  1. Update the Get Employee by Id operation with your HR platform's API call.
  2. 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
  1. Update the operation with your HR platform's API call to fetch a list of folders.
  2. In the BambooHR variable settings, update the variables that start with bamboo.folder. These variables identify the correct folder for each workflow.
  3. Open the Get List of Files - Filter for Folders v2 transformation to update the source schema.
  4. 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:

  1. Update the operation to call your HR platform's API endpoint that retrieves out-of-office data.
  2. 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:

  1. Update the ITSM - Create Task in JIRA operation to use your ITSM platform's API endpoint.

  2. 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.
  3. Ensure your operation populates the $newHire_itTicket variable 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:

  1. Update the Search ITSM Issue operation to use your ITSM platform's API endpoint for retrieving in-progress IT onboarding tickets.
  2. 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:

  1. (Optional) In the project variables section, add a variable for your platform's base URL.

  2. Update the AskHr - Get IT Onboarding Content operation to use your platform's API endpoint.

  3. Update the operation's transformation to match your platform's response schema.

  4. Ensure your operation populates the $it_onboarding_content variable 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:

  1. Configure your form to send user data to the Jitterbit custom API.

  2. 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.token Authentication token
  • Response schema

    The operation populates the following variables:

    Variable Description
    $platform_email User's email address
    $platform_userID User'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.