Resources · n8n integration

BambooHR n8n integrationAutomate BambooHR with n8n.

An HR record never stays in one place for long. The BambooHR n8n integration exposes 15 operations across 4 resources: employees, employee documents, company files and saved reports. No trigger node ships with it, so a schedule or another app starts the run. Built for ops and people teams tired of double entry.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What can the BambooHR n8n integration actually do?

The BambooHR node talks to the BambooHR API from inside a workflow. It creates and updates employee records, reads a single employee or a full list, uploads and downloads documents attached to an employee, manages company-wide files, and pulls any saved company report as CSV, JSON, PDF, XLS or XML. One API key credential covers all 15 operations, and the node ships with n8n, so nothing extra gets installed.

Take a new hire. The offer is signed, the row lands in a hiring sheet, and someone retypes it into BambooHR. With employee.create that step disappears: a Google Sheets node reads the row, the BambooHR node maps first name, last name, hire date and department, and the record exists before the laptop is even ordered.

Second case: onboarding paperwork that nobody chases. A signed policy arrives as an attachment in Gmail, the workflow passes the binary data to employeeDocument.upload, and the file lands in the right category under the right employee, shared with them or kept internal. The same run can post a line in Slack so the people team sees the folder is complete.

Third case: the report somebody asks for every month. companyReport.get pulls a saved report by its ID and returns it as a file in a field of your choosing. Send the PDF to a manager, or take the JSON version and let the next nodes filter it before anything leaves n8n.

When an operation is missing from the list of 15, the HTTP Request node calls any other BambooHR API endpoint and reuses the same predefined credential, so you stay on one set of keys instead of two.

Two things shape how you build. First, there is no BambooHR trigger node, so every workflow starts somewhere else: a Schedule Trigger running each morning, an n8n Webhook called by another service, or the trigger of a different app. Second, list operations page through the API only when Return All is on; leave it off and Limit caps what comes back. Worth reading before you build: the n8n review for how the platform behaves day to day, and the n8n training if expressions are still new.

Connect

How do you connect BambooHR to n8n?

  1. 01

    Generate an API key in BambooHR

    Authentication runs on a single method: an API key. Follow the authentication section of the BambooHR getting started API documentation to generate one. The key inherits the permissions of the account that creates it, so generate it from a user who can already see the employees, documents and reports the workflow needs to touch.

  2. 02

    Note your subdomain

    The credential also asks for a Subdomain: the part between https:// and .bamboohr.com in the address you use every day. If the team logs in at https://acme.bamboohr.com, the subdomain is acme, nothing more. Typing the full URL there is the fastest way to get a failed call on the first execution.

  3. 03

    Save the credential in n8n

    In n8n, open the Credentials menu and create a BambooHR credential, which is the stored set of keys a node uses to sign its calls. Paste the subdomain and the API key, save, and every BambooHR node in every workflow picks it from a dropdown. One credential covers all 4 resources, so a second workflow needs no new key.

Actions

The 15 BambooHR operations in n8n

The BambooHR node exposes 15 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateDeleteDownloadUpload
Company Report✓
Employee✓✓✓✓
Employee Document✓✓✓✓✓
File✓✓✓✓✓

Company Report

1 operation
01

Get a company report

companyReport.get

What you see in n8n

Notes & use cases

Runs a report already saved in BambooHR and returns it to the workflow as a file.

Key parameters

  • Report ID: the report number. Hover the report name on the reports page in BambooHR and grab the ID from there.
  • Format: CSV, JSON, PDF, XLS or XML. JSON keeps the rows usable by later nodes, PDF suits a report a human just opens.
  • Put Output In Field: the name of the output field that carries the binary file data.
  • Only Current (Options): hides future dated values from history table fields.
Use cases
mail the headcount report to a manager every Monday, or take the JSON version and compare it against last month before anyone gets pinged.

Employee

4 operations
02

Create an employee

employee.create

What you see in n8n

Notes & use cases

Writes a new employee record in BambooHR. The required list is long: the node expects a full personnel file.

Key parameters

  • First Name and Last Name: the identity block, usually mapped from the previous node.
  • Hire Date and Date of Birth: date values, not free text.
  • Social Security Number: a standard United States Social Security number, with dashes (123-45-6789).
  • Department Name or ID, Division Name or ID, Location Name or ID: pick from the list, or pass an ID by expression.
  • Synced with Trax Payroll: whether the employee joins a pay schedule synced with Trax Payroll.
Use cases
turn a signed offer row into a real record on day one.
03

Get an employee

employee.get

What you see in n8n

Notes & use cases

Reads one employee record and returns its fields to the workflow, so the rest of the run has something to work with.

Key parameters

  • Employee ID: the BambooHR identifier of the person, not their name. It usually comes from an earlier node as {{ $json.id }}.
  • Field Names or IDs (Options): the set of fields to pull back. Choose them from the list, or pass IDs through an expression. Asking for three fields instead of the whole file keeps the payload small and the workflow readable.
Use cases
look up a work email before sending an internal notification, or fetch a hire date to decide whether a probation reminder is due.
04

Get many employees

employee.getAll

What you see in n8n

Notes & use cases

Returns the employee list, one item per person, which makes it the usual starting point for anything that loops over the whole company.

Key parameters

  • Return All: switched on, n8n walks the API pages until every employee is in. Switched off, it stops at Limit.
  • Limit: the maximum number of employees to return. Handy while you are still testing, because a run on the full directory is slower and noisier than a run on 5 people.
Use cases
build a weekly directory export, or feed the list into a loop that checks who is missing a document.
05

Update an employee

employee.update

What you see in n8n

Notes & use cases

Changes an existing record. The node targets one person and rewrites the fields you pass, leaving the rest of the file alone.

Key parameters

  • Employee ID: which record gets written. Get it wrong and you edit the wrong person, so map it from a lookup rather than typing it.
  • Marital Status, Mobile Phone, Employee Number: part of the required block on every update.
  • Pay Rate, Pay Per and Pay Type: the compensation block, with Pay Type covering salary, hourly, commission, contract and the rest.
  • Update Fields: 20 optional fields, including Work Email, Work Phone, City and Country.
Use cases
push a promotion from a payroll sheet into the record.

Employee Document

5 operations
06

Delete an employee document

employeeDocument.delete

What you see in n8n

Notes & use cases

Removes one document from an employee file. There is no undo step in the workflow, so this one belongs behind a condition.

Key parameters

  • Employee ID: the employee whose file holds the document.
  • File ID: the identifier of the employee file to remove. Read it from a Get many employee documents step rather than hardcoding it.
Use cases
clear a draft contract that got uploaded twice during onboarding, or drop an outdated form once its replacement has been uploaded and confirmed in the same run.
07

Download an employee document

employeeDocument.download

What you see in n8n

Notes & use cases

Fetches the actual content of a document attached to an employee and puts it in the workflow as binary data, ready to attach, forward or store elsewhere.

Key parameters

  • Employee ID: whose file the document sits in.
  • File ID: which document to pull.
  • Put Output In Field: the output field that will carry the binary file data. Downstream nodes read that field name, so keep it consistent across the workflow.
Use cases
pull a signed handbook acknowledgment and attach it to an email for a compliance review, without anyone opening BambooHR.
08

Get many employee documents

employeeDocument.getAll

What you see in n8n

Notes & use cases

Lists what is filed under one employee, with an item per document. Nothing is downloaded here, only the index.

Key parameters

  • Employee ID: the person whose documents get listed.
  • Return All and Limit: on, every document comes back; off, the list stops at Limit.
  • Simplify: returns a trimmed version of the response instead of the raw API payload, which is enough when you only need names and IDs.
Use cases
check that a new joiner has all their paperwork before the end of week one, and flag the gaps.
09

Update an employee document

employeeDocument.update

What you see in n8n

Notes & use cases

Edits the metadata around a document already filed under an employee: what it is called, where it sits, who can see it. The content itself stays untouched.

Key parameters

  • Employee ID and File ID: the document to edit.
  • Employee Document Category Name or ID: the new category for the file, chosen from the list or passed as an ID through an expression.
  • Name: the new name of the file.
  • Share with Employee: whether the person can see it in their own view.
Use cases
rename contracts to a house convention, then flip them to shared once HR has approved them.
10

Upload an employee document

employeeDocument.upload

What you see in n8n

Notes & use cases

Sends a file from the workflow into one employee file, which is how documents reach BambooHR without a manual upload.

Key parameters

  • Employee ID: the destination file.
  • Employee Document Category ID: where the document lands inside that file.
  • Input Data Field Name: the input field holding the binary file data. Supported file types are PNG and JPEG, which is worth checking before you wire a scanner or an email attachment into it.
  • Share with Employee (Options): whether the upload is visible to the person.
Use cases
file a scanned form under the right person the moment it arrives.

File

5 operations
11

Delete a file

file.delete

What you see in n8n

Notes & use cases

Deletes a company file, meaning one of the shared documents that belongs to the organization rather than to a single employee.

Key parameters

  • File ID: the identifier of the file to remove. Nothing else is asked, which is exactly why a wrong ID hurts here.
Use cases
retire last year's expense policy the day the new version is uploaded, so the company library never shows two versions of the same rule side by side.
12

Download a file

file.download

What you see in n8n

Notes & use cases

Brings a company file into the workflow as binary data. Same idea as the employee version, one level up: the document belongs to the company, not to a person.

Key parameters

  • File ID: which company file to pull.
  • Put Output In Field: the output field that receives the binary file data.
Use cases
fetch the current benefits guide and attach it to every welcome email, so new joiners always get the version that is live today rather than a copy saved on someone's laptop.
13

Get many files

file.getAll

What you see in n8n

Notes & use cases

Lists the company files, no employee needed. Think of it as the index of the shared document library.

Key parameters

  • Return All: on, n8n pages through the whole library; off, it stops at Limit.
  • Limit: the ceiling on how many files come back.
  • Simplify: a trimmed response instead of the raw payload, which is usually enough to match a name and grab an ID.
Use cases
find the File ID of a policy by its name, then hand it to a download or update step in the same workflow.
14

Update a file

file.update

What you see in n8n

Notes & use cases

Reorganizes a company file without touching its content: new name, new category, different sharing.

Key parameters

  • File ID: the company file being edited.
  • Category Name or ID: moves the file to a different category, picked from the list or passed as an ID through an expression.
  • Name: the new name of the file.
  • Share with Employee: whether the file is shared.
Use cases
run a monthly tidy-up that renames anything ending in final-final and moves stray documents into the category they belong to.
15

Upload a file

file.upload

What you see in n8n

Notes & use cases

Pushes a document into the company library, available to the organization instead of to one employee file.

Key parameters

  • Input Data Field Name: the input field carrying the binary file data. Supported file types are PNG and JPEG.
  • Category Name or ID: where the file lands, from the list or through an expression.
  • Share with Employee (Options): whether people see it or only HR does.
Use cases
publish an updated org chart every quarter and let the workflow put it in the same category each time.
Need help

Need help automating BambooHR with n8n?

A person reads every message.

FAQ

BambooHR and n8n, the questions that come up

01Is the BambooHR n8n integration free?
Yes, on the n8n side. The BambooHR node ships with n8n, so there is nothing to install and nothing extra to pay, whether you run n8n Cloud or self-host it with Docker or npm under the Community Edition and its Sustainable Use license. A workflow behaves the same way in both setups, so you can prototype on one and move it to the other. What BambooHR itself costs depends on your own contract with them, and that is a separate question from anything n8n charges. The 15 operations are all available from the moment the node is on the canvas.
02What credentials do you need to connect BambooHR to n8n?
One API key credential, and that is the only supported authentication method for this node. Two values go in: your subdomain, which is the part between https:// and .bamboohr.com in the address your team uses, and an API key generated from the authentication section of the BambooHR getting started API documentation. You create a BambooHR account first if there is not one already. In n8n the credential is saved once in the Credentials menu, then every BambooHR node in every workflow picks it from a dropdown. The key carries the permissions of the account that generated it, so employees or documents that account cannot see will not appear in the results.
03What are the limits of the BambooHR node in n8n?
The node covers 15 operations across 4 resources: company reports, employees, employee documents and company files. Anything outside that catalogue goes through the HTTP Request node, which calls any other BambooHR API endpoint while reusing the same predefined credential, so you keep a single set of keys. Inside the node, two behaviours matter. List operations only page through everything when Return All is on, otherwise Limit caps the results. And both upload operations state their supported file types, PNG and JPEG, which is the detail people hit first when they wire in an email attachment.
04Can a workflow start from a BambooHR event?
Not from BambooHR itself, because this tool has no trigger node in n8n. A workflow that touches BambooHR starts with something else. The common pattern is a Schedule Trigger at a fixed interval, for example a run each morning that calls employee.getAll and compares the list against yesterday. The second pattern is the n8n Webhook node, a URL that another service calls when something happens on its side, for example your ATS when an offer is signed. The third is the trigger of another app already in your stack. From there the BambooHR node does the reading or writing.
05n8n or Make for BambooHR?
It depends on where you want the data to live and how you want to pay. Make is hosted by Make, with no self-hosting option, and it bills per operation, so a workflow that loops over every employee has a cost that grows with your headcount. n8n runs on Cloud or on your own server with Docker or npm, which matters when the records in question are personnel files with social security numbers in them. Both build visually. If your team already has an ops person comfortable with a server, self-hosting keeps HR data on infrastructure you control. If nobody wants to run anything, a hosted platform is a fair answer.