Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 48 additions & 1 deletion docs/content/docs/reference/components/bamboohr_v1.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ This action does not produce any output.



#### Find Employee ID

To find the Employee ID, click [here](/reference/components/bamboohr_v1#how-to-find-employee-id).



Expand Down Expand Up @@ -189,6 +192,13 @@ The output for this action is dynamic and may vary depending on the input parame



#### Find Employee ID

To find the Employee ID, click [here](/reference/components/bamboohr_v1#how-to-find-employee-id).

#### Find Fields

To find the Fields, click [here](/reference/components/bamboohr_v1#how-to-find-fields).



Expand All @@ -203,7 +213,7 @@ Name: updateEmployeeFile
|:---------------:|:--------------:|:------------:|:-------------------:|:--------:|
| id | Employee ID | STRING | The ID of the employee. | true |
| fileId | File ID | STRING <details> <summary> Depends On </summary> id </details> | The ID of the employee file being updated. | true |
| name | Updated Name Of The File | STRING | Use if you want to rename the file. | false |
| name | Updated File Name | STRING | Use if you want to rename the file. | false |
| categoryId | Updated Category ID | STRING | Use if you want to move the file to a different category. | false |
| shareWithEmployee | Update Sharing The File | BOOLEAN <details> <summary> Options </summary> <span>true</span>, <span>false</span> </details> | Use if you want to update whether this file is shared or not. | false |

Expand All @@ -229,6 +239,13 @@ This action does not produce any output.



#### Find Employee ID

To find the Employee ID, click [here](/reference/components/bamboohr_v1#how-to-find-employee-id).

#### Find File ID

To find the File ID, click [here](/reference/components/bamboohr_v1#how-to-find-file-id).



Expand Down Expand Up @@ -267,6 +284,9 @@ The output for this action is dynamic and may vary depending on the input parame
"type" : "bambooHr/v1/updatedEmployee"
}
```
#### Find Fields

To find the Fields, click [here](/reference/components/bamboohr_v1#how-to-find-fields).



Expand Down Expand Up @@ -301,3 +321,30 @@ Type: STRING



## What to do if your action is not listed here?

If this component doesn't have the action you need, you can use **Custom Action** to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.

To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.

<hr />

# Additional Instructions

### How to find Employee ID

Use the `GET /employees/directory` endpoint to retrieve a list of all employees and their IDs.

Copy link
Copy Markdown
Collaborator

@monikakuster monikakuster Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marijahorvat171 it would be good to add that id can be found as output of create employee action, and triggers...

The Employee ID can also be found in the output of the following actions and triggers:
* **Create Employee**
* **New Employee** trigger
* **Updated Employee** trigger

### How to find Fields

Use the `GET /meta/fields` endpoint to retrieve a list of all fields or visit https://documentation.bamboohr.com/docs/list-of-field-names where you can find field names.

### How to find File ID

Use the `GET /employees/EMPLOYEE_ID/files/view` endpoint to retrieve a list of all files from specific employee and their IDs.

Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ public class BambooHrComponentHandler implements ComponentHandler {
"BambooHR is a human resources software that helps HR teams manage employee data, hiring, onboarding, " +
"time tracking, payroll, performance management, and more in one platform.")
.icon("path:assets/bamboohr.svg")
.customAction(true)
.customActionHelp("", "https://documentation.bamboohr.com/reference")
.categories(ComponentCategory.HRIS)
.connection(BambooHrConnection.CONNECTION_DEFINITION)
.actions(
Expand All @@ -57,7 +59,8 @@ public class BambooHrComponentHandler implements ComponentHandler {
tool(BambooHrCreateEmployeeAction.ACTION_DEFINITION),
tool(BambooHrUpdateEmployeeAction.ACTION_DEFINITION),
tool(BambooHrGetEmployeeAction.ACTION_DEFINITION),
tool(BambooHrUpdateEmployeeFileAction.ACTION_DEFINITION));
tool(BambooHrUpdateEmployeeFileAction.ACTION_DEFINITION))
.version(1);

@Override
public ComponentDefinition getDefinition() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import com.bytechef.component.definition.ComponentDsl.ModifiableActionDefinition;
import com.bytechef.component.definition.Context;
import com.bytechef.component.definition.Context.Http;
import com.bytechef.component.definition.Context.Http.Body;
import com.bytechef.component.definition.Parameters;
import java.util.List;
import java.util.Map;
Expand All @@ -46,6 +47,7 @@ public class BambooHrCreateEmployeeAction {
public static final ModifiableActionDefinition ACTION_DEFINITION = action("createEmployee")
.title("Create Employee")
.description("Add a new employee.")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#create-employee")
.properties(
string(FIRST_NAME)
.label("First Name")
Expand Down Expand Up @@ -94,14 +96,15 @@ private BambooHrCreateEmployeeAction() {
public static Object perform(Parameters inputParameters, Parameters connectionParameters, Context context) {
Http.Response response = context
.http(http -> http.post("/employees/"))
.body(Http.Body.of(
FIRST_NAME, inputParameters.getRequiredString(FIRST_NAME),
LAST_NAME, inputParameters.getRequiredString(LAST_NAME),
EMPLOYEE_NUMBER, inputParameters.getString(EMPLOYEE_NUMBER),
JOB_TITLE, inputParameters.getString(JOB_TITLE),
LOCATION, inputParameters.getString(LOCATION),
EMPLOYMENT_STATUS, inputParameters.getString(EMPLOYMENT_STATUS),
HIRE_DATE, inputParameters.getString(HIRE_DATE)))
.body(
Body.of(
FIRST_NAME, inputParameters.getRequiredString(FIRST_NAME),
LAST_NAME, inputParameters.getRequiredString(LAST_NAME),
EMPLOYEE_NUMBER, inputParameters.getString(EMPLOYEE_NUMBER),
JOB_TITLE, inputParameters.getString(JOB_TITLE),
LOCATION, inputParameters.getString(LOCATION),
EMPLOYMENT_STATUS, inputParameters.getString(EMPLOYMENT_STATUS),
HIRE_DATE, inputParameters.getString(HIRE_DATE)))
.execute();

List<String> location = response.getHeader("location");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import com.bytechef.component.definition.Context;
import com.bytechef.component.definition.Context.Http;
import com.bytechef.component.definition.Parameters;
import com.bytechef.component.definition.TypeReference;
import java.util.List;

/**
Expand All @@ -40,6 +39,7 @@ public class BambooHrGetEmployeeAction {
public static final ModifiableActionDefinition ACTION_DEFINITION = action("getEmployee")
.title("Get Employee")
.description("Get employee data, based on employee ID.")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#get-employee")
.properties(
string(ID)
.label("Employee ID")
Expand Down Expand Up @@ -67,6 +67,6 @@ public static Object perform(Parameters inputParameters, Parameters connectionPa
.header("accept", "application/json")
.configuration(responseType(Http.ResponseType.JSON))
.execute()
.getBody(new TypeReference<>() {});
.getBody();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import com.bytechef.component.definition.ActionDefinition.OptionsFunction;
import com.bytechef.component.definition.ComponentDsl.ModifiableActionDefinition;
import com.bytechef.component.definition.Context;
import com.bytechef.component.definition.Context.Http;
import com.bytechef.component.definition.Context.Http.Body;
import com.bytechef.component.definition.Parameters;

/**
Expand All @@ -42,6 +42,7 @@ public class BambooHrUpdateEmployeeAction {
public static final ModifiableActionDefinition ACTION_DEFINITION = action("updateEmployee")
.title("Update Employee")
.description("Update an employee, based on employee ID.")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#update-employee")
.properties(
string(ID)
.label("Employee ID")
Expand Down Expand Up @@ -84,7 +85,7 @@ public static Object perform(Parameters inputParameters, Parameters connectionPa
context
.http(http -> http.post("/employees/" + inputParameters.getRequiredString(ID)))
.body(
Http.Body.of(
Body.of(
FIRST_NAME, inputParameters.getString(FIRST_NAME),
LAST_NAME, inputParameters.getString(LAST_NAME),
JOB_TITLE, inputParameters.getString(JOB_TITLE),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import com.bytechef.component.definition.ActionDefinition.OptionsFunction;
import com.bytechef.component.definition.ComponentDsl.ModifiableActionDefinition;
import com.bytechef.component.definition.Context;
import com.bytechef.component.definition.Context.Http;
import com.bytechef.component.definition.Context.Http.Body;
import com.bytechef.component.definition.Parameters;

/**
Expand All @@ -40,6 +40,7 @@ public class BambooHrUpdateEmployeeFileAction {
public static final ModifiableActionDefinition ACTION_DEFINITION = action("updateEmployeeFile")
.title("Update Employee File")
.description("Update an employee file.")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#update-employee-file")
.properties(
string(ID)
.label("Employee ID")
Expand All @@ -53,7 +54,7 @@ public class BambooHrUpdateEmployeeFileAction {
.optionsLookupDependsOn(ID)
.required(true),
string(NAME)
.label("Updated Name Of The File")
.label("Updated File Name")
.description("Use if you want to rename the file.")
.required(false),
string(CATEGORY_ID)
Expand All @@ -75,7 +76,7 @@ public static String perform(Parameters inputParameters, Parameters connectionPa
"/employees/" + inputParameters.getRequiredString(ID) + "/files/" +
inputParameters.getRequiredString(FILE_ID)))
.body(
Http.Body.of(
Body.of(
NAME, inputParameters.getString(NAME),
CATEGORY_ID, inputParameters.getString(CATEGORY_ID),
SHARE_WITH_EMPLOYEE, inputParameters.getString(SHARE_WITH_EMPLOYEE)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ public class BambooHrConnection {
.label("API Key")
.required(true)))
.baseUri((connectionParameters, context) -> "https://api.bamboohr.com/api/gateway.php/"
+ connectionParameters.getRequiredString(COMPANY_DOMAIN) + "/v1");
+ connectionParameters.getRequiredString(COMPANY_DOMAIN) + "/v1")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#connection-setup")
.version(1);

private BambooHrConnection() {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public class BambooHrNewEmployeeTrigger {
public static final ModifiableTriggerDefinition TRIGGER_DEFINITION = trigger("newEmployee")
.title("New Employee")
.description("Triggers when a new employee is created.")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#new-employee")
.type(TriggerType.POLLING)
.output(outputSchema(string()))
.poll(BambooHrNewEmployeeTrigger::poll);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import com.bytechef.component.bamboohr.util.BambooHrUtils;
import com.bytechef.component.definition.ComponentDsl.ModifiableTriggerDefinition;
import com.bytechef.component.definition.Context.Http;
import com.bytechef.component.definition.Context.Http.Body;
import com.bytechef.component.definition.Parameters;
import com.bytechef.component.definition.TriggerContext;
import com.bytechef.component.definition.TriggerDefinition.HttpHeaders;
Expand All @@ -49,6 +50,7 @@ public class BambooHrUpdatedEmployeeTrigger {
public static final ModifiableTriggerDefinition TRIGGER_DEFINITION = trigger("updatedEmployee")
.title("Updated Employee")
.description("Triggers when specific employee fields are updated.")
.help("", "https://docs.bytechef.io/reference/components/bamboohr_v1#updated-employee")
.type(TriggerType.DYNAMIC_WEBHOOK)
.properties(
array(MONITOR_FIELDS)
Expand Down Expand Up @@ -84,7 +86,7 @@ protected static WebhookEnableOutput webhookEnable(

Map<String, ?> body = context.http(http -> http.post("/webhooks"))
.body(
Http.Body.of(
Body.of(
"name", "bambooHRWebhook",
MONITOR_FIELDS, inputParameters.getRequiredList(MONITOR_FIELDS, String.class),
POST_FIELDS, options,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
public class BambooHrUtils {

public static List<Option<String>> getEmployeeIdOptions(
Parameters inputParameters, Parameters connectionParameters, Map<String, String> stringStringMap, String s,
Context context) {
Parameters inputParameters, Parameters connectionParameters, Map<String, String> lookupDependsOnPaths,
String searchText, Context context) {

Map<String, Object> body = context
.http(http -> http.get("/employees/directory"))
Expand All @@ -63,8 +63,8 @@ public static List<Option<String>> getEmployeeIdOptions(
}

public static List<Option<String>> getEmployeeFilesIdOptions(
Parameters inputParameters, Parameters connectionParameters, Map<String, String> stringStringMap, String s,
Context context) {
Parameters inputParameters, Parameters connectionParameters, Map<String, String> lookupDependsOnPaths,
String searchText, Context context) {

Map<String, Object> body = context
.http(http -> http.get("/employees/%s/files/view".formatted(inputParameters.getRequiredString(ID))))
Expand All @@ -87,8 +87,8 @@ public static List<Option<String>> getEmployeeFilesIdOptions(
}

public static List<Option<String>> getFieldOptions(
Parameters inputParameters, Parameters connectionParameters, Map<String, String> stringStringMap, String s,
Context context) {
Parameters inputParameters, Parameters connectionParameters, Map<String, String> lookupDependsOnPaths,
String searchText, Context context) {

List<Map<String, Object>> body = context
.http(http -> http.get("/meta/fields"))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
### How to find Employee ID

Use the `GET /employees/directory` endpoint to retrieve a list of all employees and their IDs.

The Employee ID can also be found in the output of the following actions and triggers:
* **Create Employee**
* **New Employee** trigger
* **Updated Employee** trigger

### How to find Fields

Use the `GET /meta/fields` endpoint to retrieve a list of all fields or visit https://documentation.bamboohr.com/docs/list-of-field-names where you can find field names.

### How to find File ID

Use the `GET /employees/EMPLOYEE_ID/files/view` endpoint to retrieve a list of all files from specific employee and their IDs.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#### Find Employee ID

To find the Employee ID, click [here](/reference/components/bamboohr_v1#how-to-find-employee-id).

#### Find Fields

To find the Fields, click [here](/reference/components/bamboohr_v1#how-to-find-fields).
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#### Find Employee ID

To find the Employee ID, click [here](/reference/components/bamboohr_v1#how-to-find-employee-id).
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#### Find Employee ID

To find the Employee ID, click [here](/reference/components/bamboohr_v1#how-to-find-employee-id).

#### Find File ID

To find the File ID, click [here](/reference/components/bamboohr_v1#how-to-find-file-id).
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#### Find Fields

To find the Fields, click [here](/reference/components/bamboohr_v1#how-to-find-fields).
Loading
Loading