Community
Questions Library
Docs
Blog
Events
Swag
Github
Slack
JupiterOne
Discussions
Release Notes
Contact Us
BambooHR - AskJ1 Community
<main> <article class="userContent"> <h2 data-id="bamboohr-jupiterone-integration-benefits">BambooHR + JupiterOne Integration Benefits</h2> <ul><li>Visualize BambooHR users and files in the JupiterOne graph.</li> <li>Map BambooHR users to employees in your JupiterOne account.</li> <li><p>Map BambooHR users identified as employees to their managers to provide an<br> organization chart in JupiterOne.</p></li> <li><p>Monitor changes to BambooHR users using JupiterOne alerts.</p></li> </ul><h2 data-id="how-it-works">How it Works</h2> <ul><li><p>JupiterOne periodically fetches employees, users, and files from BambooHR to<br> update the graph.</p></li> <li><p>Additional details stored in BambooHR users is used to map your organization<br> management structure.</p></li> <li><p>Write JupiterOne queries to review and monitor updates to the graph.</p></li> <li>Configure alerts to take action when JupiterOne graph changes.</li> </ul><p>Important notes:</p> <ul><li><p>The users listing API includes user records of employees that have been<br> terminated (<code class="code codeInline" spellcheck="false" tabindex="0">status: 'disabled'</code>, <code class="code codeInline" spellcheck="false" tabindex="0">active: false</code> in the <code class="code codeInline" spellcheck="false" tabindex="0">User</code> entity).</p></li> <li><p>BambooHR employee records have an <code class="code codeInline" spellcheck="false" tabindex="0">employeeNumber</code> that is assigned when the<br> employee is created and which may later be modified. There is also a permanent<br><code class="code codeInline" spellcheck="false" tabindex="0">id</code> property that does not change and very likely is not equal to the<br><code class="code codeInline" spellcheck="false" tabindex="0">employeeNumber</code>.</p></li> </ul><h2 data-id="requirements">Requirements</h2> <ul><li><p>JupiterOne requires the subdomain of your BambooHR account. For example:<br> "mycompany" is the subdomain of <code class="code codeInline" spellcheck="false" tabindex="0">https://mycompany.bamboohr.com</code>.</p></li> <li><p>JupiterOne requires a REST API key. You need permission to create a user in<br> BambooHR for association with JupiterOne and obtain an API key associated with<br> that user.</p></li> <li><p>You must have permission in JupiterOne to install new integrations.</p></li> </ul><h2 data-id="support">Support</h2> <p>If you need help with this integration, please contact<br><a rel="nofollow" href="https://support.jupiterone.io">JupiterOne Support</a>.</p> <h2 data-id="integration-walkthrough">Integration Walkthrough</h2> <h3 data-id="in-bamboohr">In BambooHR</h3> <ol><li><p><a rel="nofollow" href="https://documentation.bamboohr.com/docs/getting-started">Generate a REST API key</a>.</p> <p>As described in the BambooHR documentation, the API key will have the<br> permissions of the associated user. This means the user must have sufficient<br> permissions to create an API key,<br><a rel="nofollow" href="https://www.bamboohr.com/api/documentation/metadata.php">list users metadata</a>,<br> and<br><a rel="nofollow" href="https://www.bamboohr.com/api/documentation/employees.php">list employee files</a><br> (we do not read the content).</p></li> </ol><h3 data-id="in-jupiterone">In JupiterOne</h3> <ol><li>From the top navigation of the J1 Search homepage, select <strong>Integrations</strong></li> <li>Scroll to the <strong>BambooHR</strong> integration tile and click it.</li> <li>Click the <strong>Add Configuration</strong> button.</li> <li>Enter the <strong>Account Name</strong> by which you'd like to identify this BambooHR<br> account in JupiterOne. Ingested entities will have this value stored in<br><code class="code codeInline" spellcheck="false" tabindex="0">tag.AccountName</code> when <strong>Tag with Account Name</strong> is checked.</li> <li>Enter a <strong>Description</strong> that will further assist your team when identifying<br> the integration instance.</li> <li>Select a <strong>Polling Interval</strong> that you feel is sufficient for your monitoring<br> needs. You may leave this as <code class="code codeInline" spellcheck="false" tabindex="0">DISABLED</code> and manually execute the integration.</li> <li>Enter the <strong>Client Namespace</strong> (subdomain) for your BoombooHR account.</li> <li>Enter the BambooHR <strong>API Key</strong> generated for use by JupiterOne.</li> <li>Click <strong>Create Configuration</strong> once all values are provided.</li> </ol><h1 data-id="how-to-uninstall">How to Uninstall</h1> <ol><li>From the top navigation of the J1 Search homepage, select <strong>Integrations</strong></li> <li>Scroll to the <strong>BambooHR</strong> integration tile and click it.</li> <li>Identify and click the <strong>integration to delete</strong>.</li> <li>Click the <strong>trash can</strong> icon.</li> <li>Click the <strong>Remove</strong> button to delete the integration.</li> <li>Delete the BambooHR user created for use by JupiterOne.</li> </ol><p><br></p> <h2 data-id="data-model">Data Model</h2> <h3 data-id="entities">Entities</h3> <p>The following entities are created:</p> <table><thead><tr><th>Resources</th> <th>Entity <code class="code codeInline" spellcheck="false" tabindex="0">_type</code></th> <th>Entity <code class="code codeInline" spellcheck="false" tabindex="0">_class</code></th> </tr></thead><tbody><tr><td>Account</td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_account</code></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">Account</code></td> </tr><tr><td>Employee</td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_employee</code></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">Record</code></td> </tr><tr><td>File</td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_file</code></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">DataObject</code></td> </tr><tr><td>User</td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_user</code></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">User</code></td> </tr></tbody></table><h3 data-id="relationships">Relationships</h3> <p>The following relationships are created:</p> <table><thead><tr><th>Source Entity <code class="code codeInline" spellcheck="false" tabindex="0">_type</code></th> <th>Relationship <code class="code codeInline" spellcheck="false" tabindex="0">_class</code></th> <th>Target Entity <code class="code codeInline" spellcheck="false" tabindex="0">_type</code></th> </tr></thead><tbody><tr><td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_account</code></td> <td><strong>HAS</strong></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_employee</code></td> </tr><tr><td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_account</code></td> <td><strong>HAS</strong></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_file</code></td> </tr><tr><td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_account</code></td> <td><strong>HAS</strong></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_user</code></td> </tr><tr><td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_user</code></td> <td><strong>HAS</strong></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_file</code></td> </tr><tr><td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_user</code></td> <td><strong>IS</strong></td> <td><code class="code codeInline" spellcheck="false" tabindex="0">bamboohr_employee</code></td> </tr></tbody></table><p><br></p> </article> </main>