> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# BambooHR OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for BambooHR in StackOne. One-time admin setup required before your users can link BambooHR accounts via Hub.

<Warning>A BambooHR Developer Portal account is required to register an OAuth application.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;bamboohr_list_employees&#x22;,&#x22;label&#x22;:&#x22;List Employees&#x22;,&#x22;scopes&#x22;:[&#x22;employee&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_employees_directory&#x22;,&#x22;label&#x22;:&#x22;List Employees Directory&#x22;,&#x22;scopes&#x22;:[&#x22;employee_directory&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_changed_employees&#x22;,&#x22;label&#x22;:&#x22;Get Changed Employees&#x22;,&#x22;scopes&#x22;:[&#x22;employee&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_employee&#x22;,&#x22;label&#x22;:&#x22;Get Employee&#x22;,&#x22;scopes&#x22;:[&#x22;employee&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_employee&#x22;,&#x22;label&#x22;:&#x22;Create Employee&#x22;,&#x22;scopes&#x22;:[&#x22;employee.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_employee&#x22;,&#x22;label&#x22;:&#x22;Update Employee&#x22;,&#x22;scopes&#x22;:[&#x22;employee.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_employee_photo&#x22;,&#x22;label&#x22;:&#x22;Get Employee Photo&#x22;,&#x22;scopes&#x22;:[&#x22;employee:photo&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_employee_files&#x22;,&#x22;label&#x22;:&#x22;List Employee Files&#x22;,&#x22;scopes&#x22;:[&#x22;employee:file&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_employee_file_categories&#x22;,&#x22;label&#x22;:&#x22;Get Employee File Categories&#x22;,&#x22;scopes&#x22;:[&#x22;employee:file&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_upload_employee_photo&#x22;,&#x22;label&#x22;:&#x22;Upload Employee Photo&#x22;,&#x22;scopes&#x22;:[&#x22;employee:photo.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_employee_dependents&#x22;,&#x22;label&#x22;:&#x22;List Employee Dependents&#x22;,&#x22;scopes&#x22;:[&#x22;employee:dependent&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_employee_dependent&#x22;,&#x22;label&#x22;:&#x22;Create Employee Dependent&#x22;,&#x22;scopes&#x22;:[&#x22;employee:dependent.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_employee_dependent&#x22;,&#x22;label&#x22;:&#x22;Update Employee Dependent&#x22;,&#x22;scopes&#x22;:[&#x22;employee:dependent.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_whos_out&#x22;,&#x22;label&#x22;:&#x22;Get Whos Out&#x22;,&#x22;scopes&#x22;:[&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_time_off_requests&#x22;,&#x22;label&#x22;:&#x22;List Time Off Requests&#x22;,&#x22;scopes&#x22;:[&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_time_off_request&#x22;,&#x22;label&#x22;:&#x22;Create Time Off Request&#x22;,&#x22;scopes&#x22;:[&#x22;time_off.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_time_off_request_status&#x22;,&#x22;label&#x22;:&#x22;Update Time Off Request Status&#x22;,&#x22;scopes&#x22;:[&#x22;time_off.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_time_off_history_item&#x22;,&#x22;label&#x22;:&#x22;Create Time Off History Item&#x22;,&#x22;scopes&#x22;:[&#x22;time_off.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_time_off_types&#x22;,&#x22;label&#x22;:&#x22;List Time Off Types&#x22;,&#x22;scopes&#x22;:[&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_time_off_policies&#x22;,&#x22;label&#x22;:&#x22;List Time Off Policies&#x22;,&#x22;scopes&#x22;:[&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_employee_time_off_policies&#x22;,&#x22;label&#x22;:&#x22;Get Employee Time Off Policies&#x22;,&#x22;scopes&#x22;:[&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_assign_time_off_policies&#x22;,&#x22;label&#x22;:&#x22;Assign Time Off Policies&#x22;,&#x22;scopes&#x22;:[&#x22;time_off.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_time_off_balance&#x22;,&#x22;label&#x22;:&#x22;Update Time Off Balance&#x22;,&#x22;scopes&#x22;:[&#x22;time_off.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_estimate_future_time_off_balances&#x22;,&#x22;label&#x22;:&#x22;Estimate Future Time Off Balances&#x22;,&#x22;scopes&#x22;:[&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_benefit_coverages&#x22;,&#x22;label&#x22;:&#x22;List Benefit Coverages&#x22;,&#x22;scopes&#x22;:[&#x22;benefit&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_benefit_deduction_types&#x22;,&#x22;label&#x22;:&#x22;Get Benefit Deduction Types&#x22;,&#x22;scopes&#x22;:[&#x22;benefit&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_member_benefit_events&#x22;,&#x22;label&#x22;:&#x22;Get Member Benefit Events&#x22;,&#x22;scopes&#x22;:[&#x22;benefit&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_goals&#x22;,&#x22;label&#x22;:&#x22;List Goals&#x22;,&#x22;scopes&#x22;:[&#x22;goal&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_goal&#x22;,&#x22;label&#x22;:&#x22;Create Goal&#x22;,&#x22;scopes&#x22;:[&#x22;goal.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_goal&#x22;,&#x22;label&#x22;:&#x22;Update Goal&#x22;,&#x22;scopes&#x22;:[&#x22;goal.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_goal&#x22;,&#x22;label&#x22;:&#x22;Delete Goal&#x22;,&#x22;scopes&#x22;:[&#x22;goal.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_goal_comment&#x22;,&#x22;label&#x22;:&#x22;Create Goal Comment&#x22;,&#x22;scopes&#x22;:[&#x22;goal.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_close_goal&#x22;,&#x22;label&#x22;:&#x22;Close Goal&#x22;,&#x22;scopes&#x22;:[&#x22;goal&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_reopen_goal&#x22;,&#x22;label&#x22;:&#x22;Reopen Goal&#x22;,&#x22;scopes&#x22;:[&#x22;goal&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_timesheet_entries&#x22;,&#x22;label&#x22;:&#x22;List Timesheet Entries&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_clock_in_employee&#x22;,&#x22;label&#x22;:&#x22;Clock In Employee&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_clock_out_employee&#x22;,&#x22;label&#x22;:&#x22;Clock Out Employee&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_or_update_clock_entries&#x22;,&#x22;label&#x22;:&#x22;Create Or Update Clock Entries&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_clock_entries&#x22;,&#x22;label&#x22;:&#x22;Delete Clock Entries&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_or_update_hour_entries&#x22;,&#x22;label&#x22;:&#x22;Create Or Update Hour Entries&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_hour_entries&#x22;,&#x22;label&#x22;:&#x22;Delete Hour Entries&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_time_tracking_project&#x22;,&#x22;label&#x22;:&#x22;Create Time Tracking Project&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_add_hour_record&#x22;,&#x22;label&#x22;:&#x22;Add Hour Record&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_hour_record&#x22;,&#x22;label&#x22;:&#x22;Get Hour Record&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_hour_record&#x22;,&#x22;label&#x22;:&#x22;Update Hour Record&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_hour_record&#x22;,&#x22;label&#x22;:&#x22;Delete Hour Record&#x22;,&#x22;scopes&#x22;:[&#x22;time_tracking.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_company_files&#x22;,&#x22;label&#x22;:&#x22;List Company Files&#x22;,&#x22;scopes&#x22;:[&#x22;company_file&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_company_file&#x22;,&#x22;label&#x22;:&#x22;Get Company File&#x22;,&#x22;scopes&#x22;:[&#x22;company_file&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_upload_company_file&#x22;,&#x22;label&#x22;:&#x22;Upload Company File&#x22;,&#x22;scopes&#x22;:[&#x22;company_file.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_company_file&#x22;,&#x22;label&#x22;:&#x22;Update Company File&#x22;,&#x22;scopes&#x22;:[&#x22;company_file.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_company_file&#x22;,&#x22;label&#x22;:&#x22;Delete Company File&#x22;,&#x22;scopes&#x22;:[&#x22;company_file.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_company_file_category&#x22;,&#x22;label&#x22;:&#x22;Create Company File Category&#x22;,&#x22;scopes&#x22;:[&#x22;company_file.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_employee_file_category&#x22;,&#x22;label&#x22;:&#x22;Create Employee File Category&#x22;,&#x22;scopes&#x22;:[&#x22;company_file.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_employee_trainings&#x22;,&#x22;label&#x22;:&#x22;List Employee Trainings&#x22;,&#x22;scopes&#x22;:[&#x22;training&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_employee_training_record&#x22;,&#x22;label&#x22;:&#x22;Create Employee Training Record&#x22;,&#x22;scopes&#x22;:[&#x22;training.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_employee_training_record&#x22;,&#x22;label&#x22;:&#x22;Update Employee Training Record&#x22;,&#x22;scopes&#x22;:[&#x22;training.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_employee_training_record&#x22;,&#x22;label&#x22;:&#x22;Delete Employee Training Record&#x22;,&#x22;scopes&#x22;:[&#x22;training.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_training_types&#x22;,&#x22;label&#x22;:&#x22;List Training Types&#x22;,&#x22;scopes&#x22;:[&#x22;training&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_training_type&#x22;,&#x22;label&#x22;:&#x22;Create Training Type&#x22;,&#x22;scopes&#x22;:[&#x22;training.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_training_type&#x22;,&#x22;label&#x22;:&#x22;Delete Training Type&#x22;,&#x22;scopes&#x22;:[&#x22;training.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_training_categories&#x22;,&#x22;label&#x22;:&#x22;List Training Categories&#x22;,&#x22;scopes&#x22;:[&#x22;training&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_training_category&#x22;,&#x22;label&#x22;:&#x22;Create Training Category&#x22;,&#x22;scopes&#x22;:[&#x22;training.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_job_summaries&#x22;,&#x22;label&#x22;:&#x22;List Job Summaries&#x22;,&#x22;scopes&#x22;:[&#x22;application&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_job_opening&#x22;,&#x22;label&#x22;:&#x22;Create Job Opening&#x22;,&#x22;scopes&#x22;:[&#x22;application.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_job_applications&#x22;,&#x22;label&#x22;:&#x22;List Job Applications&#x22;,&#x22;scopes&#x22;:[&#x22;application&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_job_application_details&#x22;,&#x22;label&#x22;:&#x22;Get Job Application Details&#x22;,&#x22;scopes&#x22;:[&#x22;application&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_candidate&#x22;,&#x22;label&#x22;:&#x22;Create Candidate&#x22;,&#x22;scopes&#x22;:[&#x22;application.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_applicant_statuses&#x22;,&#x22;label&#x22;:&#x22;List Applicant Statuses&#x22;,&#x22;scopes&#x22;:[&#x22;application&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_applicant_status&#x22;,&#x22;label&#x22;:&#x22;Update Applicant Status&#x22;,&#x22;scopes&#x22;:[&#x22;application.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_application_comment&#x22;,&#x22;label&#x22;:&#x22;Create Application Comment&#x22;,&#x22;scopes&#x22;:[&#x22;application.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_company_locations&#x22;,&#x22;label&#x22;:&#x22;List Company Locations&#x22;,&#x22;scopes&#x22;:[&#x22;application&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_hiring_leads&#x22;,&#x22;label&#x22;:&#x22;List Hiring Leads&#x22;,&#x22;scopes&#x22;:[&#x22;application&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_company_information&#x22;,&#x22;label&#x22;:&#x22;Get Company Information&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_fields&#x22;,&#x22;label&#x22;:&#x22;List Fields&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_field_options&#x22;,&#x22;label&#x22;:&#x22;Get Field Options&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_countries&#x22;,&#x22;label&#x22;:&#x22;List Countries&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_states_by_country&#x22;,&#x22;label&#x22;:&#x22;Get States By Country&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_list_field_details&#x22;,&#x22;label&#x22;:&#x22;Get List Field Details&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_or_update_list_values&#x22;,&#x22;label&#x22;:&#x22;Create Or Update List Values&#x22;,&#x22;scopes&#x22;:[&#x22;field.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_tabular_fields&#x22;,&#x22;label&#x22;:&#x22;List Tabular Fields&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_employee_table_rows&#x22;,&#x22;label&#x22;:&#x22;Get Employee Table Rows&#x22;,&#x22;scopes&#x22;:[&#x22;company:info&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_table_row&#x22;,&#x22;label&#x22;:&#x22;Create Table Row&#x22;,&#x22;scopes&#x22;:[&#x22;employee.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_table_row&#x22;,&#x22;label&#x22;:&#x22;Update Table Row&#x22;,&#x22;scopes&#x22;:[&#x22;employee.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_table_row&#x22;,&#x22;label&#x22;:&#x22;Delete Table Row&#x22;,&#x22;scopes&#x22;:[&#x22;employee.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_reports&#x22;,&#x22;label&#x22;:&#x22;List Reports&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_report&#x22;,&#x22;label&#x22;:&#x22;Get Report&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_request_custom_report&#x22;,&#x22;label&#x22;:&#x22;Request Custom Report&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_company_report&#x22;,&#x22;label&#x22;:&#x22;Get Company Report&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_datasets&#x22;,&#x22;label&#x22;:&#x22;List Datasets&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_dataset_fields&#x22;,&#x22;label&#x22;:&#x22;Get Dataset Fields&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_dataset_data&#x22;,&#x22;label&#x22;:&#x22;Get Dataset Data&#x22;,&#x22;scopes&#x22;:[&#x22;report&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_list_webhooks&#x22;,&#x22;label&#x22;:&#x22;List Webhooks&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_webhook&#x22;,&#x22;label&#x22;:&#x22;Get Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_create_webhook&#x22;,&#x22;label&#x22;:&#x22;Create Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_update_webhook&#x22;,&#x22;label&#x22;:&#x22;Update Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_delete_webhook&#x22;,&#x22;label&#x22;:&#x22;Delete Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks.write&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_webhook_logs&#x22;,&#x22;label&#x22;:&#x22;Get Webhook Logs&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks&#x22;]},{&#x22;id&#x22;:&#x22;bamboohr_get_monitor_fields&#x22;,&#x22;label&#x22;:&#x22;Get Monitor Fields&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Register an OAuth Application</h2>

  <p>Register an application in the BambooHR Developer Portal to enable OAuth 2.0 authentication.</p>

  <Steps>
    <Step title="Sign into Developer Portal">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Go to the <a href="https://developers.bamboohr.com" target="_blank" rel="noopener noreferrer">BambooHR Developer Portal</a> and create a free account if you don't have one.</p>
      </div>
    </Step>

    <Step title="Create an Application">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Developer Portal, create a new application:</p>

        <ul>
          <li>Click <strong>Add Application</strong></li>
          <li>Provide your application name</li>
          <li>Click <strong>Create Application</strong></li>
        </ul>
      </div>
    </Step>

    <Step title="Configure Redirect URI">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After being redirected to the app, click <strong>App details</strong></p>

        <ul>
          <li>Set the redirect URI as `https://api.stackone.com/connect/oauth2/bamboohr/callback`</li>
          <li>Click <strong>Save Changes</strong></li>
        </ul>
      </div>
    </Step>

    <Step title="Copy App Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Copy the <strong>Client ID</strong> and <strong>Client Secret</strong> under App Credentials and store them securely for use later.</p>
      </div>
    </Step>

    <Step title="Select Application Scopes">
      <div data-guide-step data-guide-scopes="employee,employee.write,employee_directory,employee:dependent,employee:dependent.write,employee:file,employee:photo,application,application.write,benefit,company_file,company_file.write,company:info,goal,goal.write,report,time_off,time_off.write,time_tracking,time_tracking.write,training,training.write,webhooks,webhooks.write,field.write" data-guide-display-scopes-list="employee,employee.write,employee_directory,employee:dependent,employee:dependent.write,employee:file,employee:photo,application,application.write,benefit,company_file,company_file.write,company:info,goal,goal.write,report,time_off,time_off.write,time_tracking,time_tracking.write,training,training.write,webhooks,webhooks.write,field.write">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="employee,employee.write,employee_directory,employee:dependent,employee:dependent.write,employee:file,employee:photo,application,application.write,benefit,company_file,company_file.write,company:info,goal,goal.write,report,time_off,time_off.write,time_tracking,time_tracking.write,training,training.write,webhooks,webhooks.write,field.write" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Add Hour Record, Assign Time Off Policies, Clock In Employee, Clock Out Employee, Close Goal, Create Application Comment, Create Candidate, Create Company File Category, Create Employee, Create Employee Dependent, Create Employee File Category, Create Employee Training Record, Create Goal, Create Goal Comment, Create Job Opening, Create Or Update Clock Entries, Create Or Update Hour Entries, Create Or Update List Values, Create Table Row, Create Time Off History Item, Create Time Off Request, Create Time Tracking Project, Create Training Category, Create Training Type, Create Webhook, Delete Clock Entries, Delete Company File, Delete Employee Training Record, Delete Goal, Delete Hour Entries, Delete Hour Record, Delete Table Row, Delete Training Type, Delete Webhook, Estimate Future Time Off Balances, Get Benefit Deduction Types, Get Changed Employees, Get Company File, Get Company Information, Get Company Report, Get Dataset Data, Get Dataset Fields, Get Employee, Get Employee File Categories, Get Employee Photo, Get Employee Table Rows, Get Employee Time Off Policies, Get Field Options, Get Hour Record, Get Job Application Details, Get List Field Details, Get Member Benefit Events, Get Monitor Fields, Get Report, Get States By Country, Get Webhook, Get Webhook Logs, Get Whos Out, List Applicant Statuses, List Benefit Coverages, List Company Files, List Company Locations, List Countries, List Datasets, List Employee Dependents, List Employee Files, List Employee Trainings, List Employees, List Employees Directory, List Fields, List Goals, List Hiring Leads, List Job Applications, List Job Summaries, List Reports, List Tabular Fields, List Time Off Policies, List Time Off Requests, List Time Off Types, List Timesheet Entries, List Training Categories, List Training Types, List Users, List Webhooks, Reopen Goal, Request Custom Report, Update Applicant Status, Update Company File, Update Employee, Update Employee Dependent, Update Employee Training Record, Update Goal, Update Hour Record, Update Table Row, Update Time Off Balance, Update Time Off Request Status, Update Webhook, Upload Company File</span>
        </div>

        <p>Under <strong>Application Scopes</strong>, select the scopes for your use case:</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee" title="Copy scope" data-copy="employee">
                  <span className="connector-guide-scope-copy__label">employee</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee.write" title="Copy scope" data-copy="employee.write">
                  <span className="connector-guide-scope-copy__label">employee.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee_directory">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee_directory" title="Copy scope" data-copy="employee_directory">
                  <span className="connector-guide-scope-copy__label">employee\_directory</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee:dependent">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee:dependent" title="Copy scope" data-copy="employee:dependent">
                  <span className="connector-guide-scope-copy__label">employee:dependent</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee:dependent.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee:dependent.write" title="Copy scope" data-copy="employee:dependent.write">
                  <span className="connector-guide-scope-copy__label">employee:dependent.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee:file">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee:file" title="Copy scope" data-copy="employee:file">
                  <span className="connector-guide-scope-copy__label">employee:file</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="employee:photo">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy employee:photo" title="Copy scope" data-copy="employee:photo">
                  <span className="connector-guide-scope-copy__label">employee:photo</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="application">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy application" title="Copy scope" data-copy="application">
                  <span className="connector-guide-scope-copy__label">application</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="application.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy application.write" title="Copy scope" data-copy="application.write">
                  <span className="connector-guide-scope-copy__label">application.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="benefit">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy benefit" title="Copy scope" data-copy="benefit">
                  <span className="connector-guide-scope-copy__label">benefit</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="company_file">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy company_file" title="Copy scope" data-copy="company_file">
                  <span className="connector-guide-scope-copy__label">company\_file</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="company_file.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy company_file.write" title="Copy scope" data-copy="company_file.write">
                  <span className="connector-guide-scope-copy__label">company\_file.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="company:info">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy company:info" title="Copy scope" data-copy="company:info">
                  <span className="connector-guide-scope-copy__label">company:info</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="goal">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy goal" title="Copy scope" data-copy="goal">
                  <span className="connector-guide-scope-copy__label">goal</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="goal.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy goal.write" title="Copy scope" data-copy="goal.write">
                  <span className="connector-guide-scope-copy__label">goal.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="report">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy report" title="Copy scope" data-copy="report">
                  <span className="connector-guide-scope-copy__label">report</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="time_off">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy time_off" title="Copy scope" data-copy="time_off">
                  <span className="connector-guide-scope-copy__label">time\_off</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="time_off.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy time_off.write" title="Copy scope" data-copy="time_off.write">
                  <span className="connector-guide-scope-copy__label">time\_off.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="time_tracking">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy time_tracking" title="Copy scope" data-copy="time_tracking">
                  <span className="connector-guide-scope-copy__label">time\_tracking</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="time_tracking.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy time_tracking.write" title="Copy scope" data-copy="time_tracking.write">
                  <span className="connector-guide-scope-copy__label">time\_tracking.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="training">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy training" title="Copy scope" data-copy="training">
                  <span className="connector-guide-scope-copy__label">training</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="training.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy training.write" title="Copy scope" data-copy="training.write">
                  <span className="connector-guide-scope-copy__label">training.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="webhooks">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy webhooks" title="Copy scope" data-copy="webhooks">
                  <span className="connector-guide-scope-copy__label">webhooks</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="webhooks.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy webhooks.write" title="Copy scope" data-copy="webhooks.write">
                  <span className="connector-guide-scope-copy__label">webhooks.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="field.write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy field.write" title="Copy scope" data-copy="field.write">
                  <span className="connector-guide-scope-copy__label">field.write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Auth Config Scopes">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>When providing scopes in the Auth Config, also include `openid` and `offline_access` alongside your selected scopes. Both are required. Scopes should be space-separated.</p>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>BambooHR</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>BambooHR</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>OAuth Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>BambooHR</strong>.
