# Rippling schema ERD

Table and field reference for the Fivetran Rippling connector.

## Table & Field Reference

### work_location

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| address_country | Unknown |  |
| address_formatted | Unknown |  |
| address_locality | Unknown |  |
| address_postal_code | Unknown |  |
| address_region | Unknown |  |
| address_street_address | Unknown |  |
| address_type | Unknown |  |
| created_at | Unknown |  |
| name | Unknown |  |
| updated_at | Instant |  |

### candidate

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| email | Unknown |  |
| first_name | Unknown |  |
| last_name | Unknown |  |
| phone_number | Unknown |  |
| timezone | Unknown |  |
| updated_at | Instant |  |

### job_function

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| name | Unknown |  |
| updated_at | Instant |  |

### company_legal_entity_id

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| company_id | Unknown | PK, FK |
| legal_entities_id | Unknown |  |

### company

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| doing_business_as_name | Unknown |  |
| legal_entities | Unknown |  |
| legal_name | Unknown |  |
| name | Unknown |  |
| parent_legal_entity_id | Unknown |  |
| phone | Unknown |  |
| physical_address_country | Unknown |  |
| physical_address_formatted | Unknown |  |
| physical_address_locality | Unknown |  |
| physical_address_postal_code | Unknown |  |
| physical_address_region | Unknown |  |
| physical_address_street_address | Unknown |  |
| physical_address_type | Unknown |  |
| primary_email | Unknown |  |
| updated_at | Instant |  |

### department

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| parent_id | Unknown | FK |
| created_at | Unknown |  |
| name | Unknown |  |
| reference_code | Unknown |  |
| updated_at | Instant |  |

### worker_team

| Column | Type | Keys |
| --- | --- | --- |
| team_id | Unknown | PK, FK |
| worker_id | Unknown | PK, FK |

### worker_custom_field

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| worker_id | Unknown | PK, FK |
| name | Unknown |  |
| type | Unknown |  |
| value | Json |  |

### worker

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| department_id | Unknown | FK |
| job_function_id | Unknown | FK |
| level_id | Unknown | FK |
| manager_id | Unknown | FK |
| user_id | Unknown | FK |
| work_location_id | Unknown | FK |
| citizenship | Unknown |  |
| country | Unknown |  |
| created_at | Unknown |  |
| date_of_birth | Unknown |  |
| end_date | Unknown |  |
| ethnicity | Unknown |  |
| gender | Unknown |  |
| legal_entity_id | Unknown |  |
| location_type | Unknown |  |
| number | Unknown |  |
| overtime_exemption | Unknown |  |
| personal_email | Unknown |  |
| race | Unknown |  |
| start_date | Unknown |  |
| status | Unknown |  |
| termination_reason | Unknown |  |
| termination_type | Unknown |  |
| title | Unknown |  |
| updated_at | Instant |  |
| work_email | Unknown |  |

### custom_field

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| description | Unknown |  |
| name | Unknown |  |
| required | Unknown |  |
| type | Unknown |  |
| updated_at | Instant |  |

### candidate_application

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| candidate_id | Unknown | PK, FK |
| job_requisition_id | Unknown | FK |
| applied_at | Unknown |  |
| created_at | Unknown |  |
| stage | Unknown |  |
| status | Unknown |  |
| updated_at | Instant |  |
| url | Unknown |  |

### level

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| parent_id | Unknown | FK |
| created_at | Unknown |  |
| description | Unknown |  |
| global_level | Unknown |  |
| name | Unknown |  |
| rank | Unknown |  |
| track_created_at | Unknown |  |
| track_id | Unknown |  |
| track_name | Unknown |  |
| track_updated_at | Unknown |  |
| updated_at | Instant |  |

### job_requisition

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| name | Unknown |  |
| status | Unknown |  |
| updated_at | Instant |  |

### timecard

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| worker_id | Unknown | FK |
| created_at | Unknown |  |
| pay_period_end_date | Unknown |  |
| pay_period_schedule_id | Unknown |  |
| pay_period_start_date | Unknown |  |
| summary_approved_hours | Unknown |  |
| summary_double_overtime_hours | Unknown |  |
| summary_earnings | Json |  |
| summary_hours_worked_by_job_code | Json |  |
| summary_overtime_hours | Unknown |  |
| summary_paid_hours | Unknown |  |
| summary_premiums | Json |  |
| summary_regular_hours | Unknown |  |
| summary_total_holiday_hours | Unknown |  |
| summary_total_hours | Unknown |  |
| summary_total_paid_time_off_hours | Unknown |  |
| summary_total_unpaid_time_off_hours | Unknown |  |
| summary_unpaid_break_hours_by_entry | Json |  |
| updated_at | Instant |  |

### worker_detail

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK, FK |
| compensation_worker_id | Unknown | FK |
| annual_compensation_currency_type | Unknown |  |
| annual_compensation_value | Unknown |  |
| compensation_annual_salary_equivalent | Unknown |  |
| compensation_bonus_schedule | Unknown |  |
| compensation_created_at | Unknown |  |
| compensation_id | Unknown |  |
| compensation_payment_term | Unknown |  |
| compensation_payment_type | Unknown |  |
| compensation_target_annual_bonus_percent | Unknown |  |
| compensation_updated_at | Unknown |  |
| employment_type_amount_worked | Unknown |  |
| employment_type_compensation_time_period | Unknown |  |
| employment_type_created_at | Unknown |  |
| employment_type_id | Unknown |  |
| employment_type_label | Unknown |  |
| employment_type_name | Unknown |  |
| employment_type_type | Unknown |  |
| employment_type_updated_at | Unknown |  |
| hourly_wage_currency_type | Unknown |  |
| hourly_wage_value | Unknown |  |
| monthly_compensation_currency_type | Unknown |  |
| monthly_compensation_value | Unknown |  |
| on_target_commission_currency_type | Unknown |  |
| on_target_commission_value | Unknown |  |
| relocation_reimbursement_currency_type | Unknown |  |
| relocation_reimbursement_value | Unknown |  |
| signing_bonus_currency_type | Unknown |  |
| signing_bonus_value | Unknown |  |
| target_annual_bonus_currency_type | Unknown |  |
| target_annual_bonus_value | Unknown |  |
| updated_at | Instant |  |
| weekly_compensation_currency_type | Unknown |  |
| weekly_compensation_value | Unknown |  |

### team

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| parent_id | Unknown | FK |
| created_at | Unknown |  |
| name | Unknown |  |
| updated_at | Instant |  |

### time_entry_comment

| Column | Type | Keys |
| --- | --- | --- |
| author_id | Unknown | PK, FK |
| time_entry_id | Unknown | PK, FK |
| created_at | Unknown |  |
| text | Unknown |  |

### time_entry_job_shift

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| time_entry_id | Unknown | PK, FK |
| end_time | Unknown |  |
| is_hours_only_input | Unknown |  |
| job_codes_id | Json |  |
| original_end_time | Unknown |  |
| original_start_time | Unknown |  |
| start_time | Unknown |  |

### time_entry_break

| Column | Type | Keys |
| --- | --- | --- |
| break_type_id | Unknown | PK |
| time_entry_id | Unknown | PK, FK |
| end_time | Unknown |  |
| original_end_time | Unknown |  |
| original_start_time | Unknown |  |
| start_time | Unknown |  |

### time_entry_segment

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| time_entry_id | Unknown | PK, FK |
| break_type_id | Unknown |  |
| display_name | Unknown |  |
| end_time | Unknown |  |
| job_codes_id | Json |  |
| ot_multiplier | Unknown |  |
| pay_rate | Unknown |  |
| start_time | Unknown |  |

### time_entry

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| time_card_id | Unknown | FK |
| worker_id | Unknown | FK |
| create_extra_hours_run | Unknown |  |
| created_at | Unknown |  |
| end_time | Unknown |  |
| idempotency_key | Unknown |  |
| pay_period_end_date | Unknown |  |
| pay_period_schedule_id | Unknown |  |
| pay_period_start_date | Unknown |  |
| piece_rate_premiums | Json |  |
| premiums | Json |  |
| shift_input_values | Json |  |
| start_time | Unknown |  |
| status | Unknown |  |
| tags | Json |  |
| time_entry_summary_double_over_time_hours | Unknown |  |
| time_entry_summary_duration | Unknown |  |
| time_entry_summary_over_time_hours | Unknown |  |
| time_entry_summary_regular_hours | Unknown |  |
| updated_at | Instant |  |

### user_email

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| user_id | Unknown | PK, FK |
| display | Unknown |  |
| type | Unknown |  |
| value | Unknown |  |

### user_phone_number

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| user_id | Unknown | PK, FK |
| display | Unknown |  |
| type | Unknown |  |
| value | Unknown |  |

### user_address

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| user_id | Unknown | PK, FK |
| country | Unknown |  |
| formatted | Unknown |  |
| locality | Unknown |  |
| postal_code | Unknown |  |
| region | Unknown |  |
| street_address | Unknown |  |
| type | Unknown |  |

### user_photo

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| user_id | Unknown | PK, FK |
| type | Unknown |  |
| value | Unknown |  |

### users

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| active | Unknown |  |
| created_at | Unknown |  |
| display_name | Unknown |  |
| locale | Unknown |  |
| name_family_name | Unknown |  |
| name_formatted | Unknown |  |
| name_given_name | Unknown |  |
| name_middle_name | Unknown |  |
| name_preferred_family_name | Unknown |  |
| name_preferred_given_name | Unknown |  |
| number | Unknown |  |
| preferred_language | Unknown |  |
| timezone | Unknown |  |
| updated_at | Instant |  |
| username | Unknown |  |

### schedule_manager

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| schedule_id | Unknown | PK, FK |
| manager_id | Unknown | FK |

### schedule_observer

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| schedule_id | Unknown | PK, FK |
| observer_id | Unknown | FK |

### schedule_member

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| schedule_id | Unknown | PK, FK |
| member_id | Unknown | FK |

### schedule

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| can_edit | Unknown |  |
| created_at | Unknown |  |
| name | Unknown |  |
| settings_timezone | Unknown |  |
| updated_at | Instant |  |

### shift_assignment_segment

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| shift_assignment_id | Unknown | PK, FK |
| duration_minutes | Unknown |  |
| end_time | Unknown |  |
| job_codes_id | Json |  |
| start_time | Unknown |  |

### shift_assignment_break

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| shift_assignment_id | Unknown | PK, FK |
| duration_minutes | Unknown |  |
| end_time | Unknown |  |
| start_time | Unknown |  |
| type | Unknown |  |

### shift_assignment_published_segment

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| shift_assignment_id | Unknown | PK, FK |
| duration_minutes | Unknown |  |
| end_time | Unknown |  |
| job_codes_id | Json |  |
| start_time | Unknown |  |

### shift_assignment_published_break

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| shift_assignment_id | Unknown | PK, FK |
| duration_minutes | Unknown |  |
| end_time | Unknown |  |
| start_time | Unknown |  |
| type | Unknown |  |

### shift_assignment

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| schedule_id | Unknown | FK |
| worker_id | Unknown | FK |
| can_edit | Unknown |  |
| created_at | Unknown |  |
| custom_fields | Json |  |
| is_published | Unknown |  |
| published_version_end_time | Unknown |  |
| published_version_notes | Unknown |  |
| published_version_start_time | Unknown |  |
| shift_data_end_time | Unknown |  |
| shift_data_notes | Unknown |  |
| shift_data_start_time | Unknown |  |
| updated_at | Instant |  |

### headcount_position

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| backfill_for_id | Unknown | FK |
| department_id | Unknown | FK |
| headcount_owner_id | Unknown | FK |
| job_function_id | Unknown | FK |
| job_requisition_id | Unknown | FK |
| level_id | Unknown | FK |
| priority_id | Unknown | FK |
| recruiter_id | Unknown | FK |
| work_location_id | Unknown | FK |
| worker_id | Unknown | FK |
| created_at | Unknown |  |
| current_start_date | Unknown |  |
| employment_type_id | Unknown |  |
| end_date | Unknown |  |
| in_budget | Unknown |  |
| location_factor_id | Unknown |  |
| notes | Unknown |  |
| position_id | Unknown |  |
| position_sub_type | Unknown |  |
| position_type | Unknown |  |
| target_start_date | Unknown |  |
| title | Unknown |  |
| updated_at | Instant |  |

### leave_type

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| description | Unknown |  |
| is_managed_by_external_system | Unknown |  |
| is_paid | Unknown |  |
| name | Unknown |  |
| type | Unknown |  |
| updated_at | Instant |  |

### headcount_priority

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| name | Unknown |  |
| updated_at | Instant |  |

### leave_request_day_take_off

| Column | Type | Keys |
| --- | --- | --- |
| date | Unknown | PK |
| leave_request_id | Unknown | PK, FK |
| number_of_minutes_taken_off | Unknown |  |

### leave_request

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| leave_type_id | Unknown | FK |
| requester_id | Unknown | FK |
| reviewer_id | Unknown | FK |
| worker_id | Unknown | FK |
| comments | Unknown |  |
| created_at | Unknown |  |
| end_date | Unknown |  |
| end_time | Unknown |  |
| is_managed_by_external_system | Unknown |  |
| leave_event_id | Unknown |  |
| leave_policy_id | Unknown |  |
| number_of_minutes_requested | Unknown |  |
| reason_for_leave | Unknown |  |
| requester | Unknown |  |
| reviewed_at | Unknown |  |
| reviewer | Unknown |  |
| start_date | Unknown |  |
| start_time | Unknown |  |
| status | Unknown |  |
| updated_at | Instant |  |
| worker | Unknown |  |

## Relationships

- company_legal_entity_id(company_id) → company(id)
- department(parent_id) → department(id)
- worker_team(team_id) → team(id)
- worker_team(worker_id) → worker(id)
- worker_custom_field(worker_id) → worker(id)
- worker(user_id) → users(id)
- worker(department_id) → department(id)
- worker(job_function_id) → job_function(id)
- worker(manager_id) → worker(id)
- worker(level_id) → level(id)
- worker(work_location_id) → work_location(id)
- candidate_application(job_requisition_id) → job_requisition(id)
- candidate_application(candidate_id) → candidate(id)
- level(parent_id) → level(id)
- timecard(worker_id) → worker(id)
- worker_detail(id) → worker(id)
- worker_detail(compensation_worker_id) → worker(id)
- team(parent_id) → team(id)
- time_entry_comment(author_id) → worker(id)
- time_entry_comment(time_entry_id) → time_entry(id)
- time_entry_job_shift(time_entry_id) → time_entry(id)
- time_entry_break(time_entry_id) → time_entry(id)
- time_entry_segment(time_entry_id) → time_entry(id)
- time_entry(time_card_id) → timecard(id)
- time_entry(worker_id) → worker(id)
- user_email(user_id) → users(id)
- user_phone_number(user_id) → users(id)
- user_address(user_id) → users(id)
- user_photo(user_id) → users(id)
- schedule_manager(manager_id) → worker(id)
- schedule_manager(schedule_id) → schedule(id)
- schedule_observer(observer_id) → worker(id)
- schedule_observer(schedule_id) → schedule(id)
- schedule_member(member_id) → worker(id)
- schedule_member(schedule_id) → schedule(id)
- shift_assignment_segment(shift_assignment_id) → shift_assignment(id)
- shift_assignment_break(shift_assignment_id) → shift_assignment(id)
- shift_assignment_published_segment(shift_assignment_id) → shift_assignment(id)
- shift_assignment_published_break(shift_assignment_id) → shift_assignment(id)
- shift_assignment(worker_id) → worker(id)
- shift_assignment(schedule_id) → schedule(id)
- headcount_position(work_location_id) → work_location(id)
- headcount_position(department_id) → department(id)
- headcount_position(job_function_id) → job_function(id)
- headcount_position(level_id) → level(id)
- headcount_position(backfill_for_id) → worker(id)
- headcount_position(headcount_owner_id) → worker(id)
- headcount_position(worker_id) → worker(id)
- headcount_position(job_requisition_id) → job_requisition(id)
- headcount_position(priority_id) → headcount_priority(id)
- headcount_position(recruiter_id) → worker(id)
- leave_request_day_take_off(leave_request_id) → leave_request(id)
- leave_request(leave_type_id) → leave_type(id)
- leave_request(reviewer_id) → worker(id)
- leave_request(worker_id) → worker(id)
- leave_request(requester_id) → worker(id)
