# MaintainX schema ERD

Table and field reference for the Fivetran MaintainX connector.

## Table & Field Reference

### vendor_contact

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| vendor_id | Unknown | PK, FK |
| email | Unknown |  |
| extension | Unknown |  |
| name | Unknown |  |
| phone_number | Unknown |  |
| role | Unknown |  |

### part_vendor

| Column | Type | Keys |
| --- | --- | --- |
| organization_id | Unknown | PK, FK |
| part_id | Unknown | PK, FK |
| vendor_id | Unknown | PK, FK |
| part_number | Unknown |  |

### part_location

| Column | Type | Keys |
| --- | --- | --- |
| location_id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| part_id | Unknown | PK, FK |
| area | Unknown |  |
| available_quantity | Unknown |  |
| minimum_quantity | Unknown |  |
| reserved_quantity | Unknown |  |

### part

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| location_id | Unknown | FK |
| available_quantity | Unknown |  |
| barcode | Unknown |  |
| created_at | Instant |  |
| description | Unknown |  |
| minimum_quantity | Unknown |  |
| name | Unknown |  |
| ordered_quantity | Unknown |  |
| part_types | Json |  |
| reserved_quantity | Unknown |  |
| unit_cost | Unknown |  |
| updated_at | Instant |  |
| extra_field_** |  |  |

### asset_criticality

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| label | Unknown |  |
| level | Unknown |  |

### work_request_portal

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| asset_id | Unknown |  |
| contact_information | Unknown |  |
| description_placeholder | Unknown |  |
| email_only | Unknown |  |
| location_id | Unknown |  |
| portal_url | Unknown |  |
| send_email_notification | Unknown |  |
| title | Unknown |  |
| welcome_text | Unknown |  |

### work_request_attachment

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_request_id | Unknown | PK, FK |
| created_at | Unknown |  |
| file_name | Unknown |  |
| height | Unknown |  |
| mime_type | Unknown |  |
| url | Unknown |  |
| width | Unknown |  |

### work_request

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| approver_team_id | Unknown | FK |
| asset_id | Unknown | FK |
| location_id | Unknown | FK |
| work_order_id | Unknown | FK |
| created_at | Instant |  |
| creator_contact_info | Json |  |
| description | Unknown |  |
| priority | Unknown |  |
| request_status | Unknown |  |
| send_email_notification | Unknown |  |
| thumbnail_created_at | Instant |  |
| thumbnail_file_name | Unknown |  |
| thumbnail_height | Unknown |  |
| thumbnail_id | Unknown |  |
| thumbnail_mime_type | Unknown |  |
| thumbnail_url | Unknown |  |
| thumbnail_width | Unknown |  |
| title | Unknown |  |
| updated_at | Instant |  |
| extra_field_** |  |  |

### vendor

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| name | Unknown |  |
| extra_field_** |  |  |

### work_order_comment

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| work_order_id | Unknown | PK, FK |
| author_id | Unknown | FK |
| content | Unknown |  |
| created_at | Instant |  |

### work_order_assignee

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| type | Unknown |  |

### work_order_field_assignee_user_id

| Column | Type | Keys |
| --- | --- | --- |
| user_id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_field_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| id | Unknown | FK |

### work_order_field_assignee_team_id

| Column | Type | Keys |
| --- | --- | --- |
| team_id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_field_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| id | Unknown | FK |

### work_order_field_attachment

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| work_order_field_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| created_at | Instant |  |
| file_name | Unknown |  |
| height | Unknown |  |
| mime_type | Unknown |  |
| url | Unknown |  |
| width | Unknown |  |

### work_order_field

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| description | Unknown |  |
| has_attachment | Unknown |  |
| is_date_and_time | Unknown |  |
| label | Unknown |  |
| max_score | Unknown |  |
| meter_id | Unknown |  |
| meter_name | Unknown |  |
| notes_text | Unknown |  |
| parent_id | Unknown |  |
| required | Unknown |  |
| score | Unknown |  |
| type | Unknown |  |
| value_text | Unknown |  |

### work_order_part

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |

### work_order_time

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| part_id | Unknown | FK |
| user_id | Unknown | FK |
| cost_per_unit | Unknown |  |
| description | Unknown |  |
| duration_total | Unknown |  |
| quantity | Unknown |  |
| row_total | Unknown |  |
| type | Unknown |  |

### work_order_time_item

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| part_id | Unknown | FK |
| user_id | Unknown | FK |
| cost_per_unit | Unknown |  |
| description | Unknown |  |
| duration_total | Unknown |  |
| quantity | Unknown |  |
| row_total | Unknown |  |
| type | Unknown |  |

### work_order_vendor

| Column | Type | Keys |
| --- | --- | --- |
| organization_id | Unknown | PK, FK |
| vendor_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |

### work_order_expenditure

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |
| part_id | Unknown | FK |
| user_id | Unknown | FK |
| cost_per_unit | Unknown |  |
| description | Unknown |  |
| duration_total | Unknown |  |
| quantity | Unknown |  |
| row_total | Unknown |  |
| type | Unknown |  |

### work_order

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| asset_id | Unknown | FK |
| completer_id | Unknown | FK |
| creator_id | Unknown | FK |
| location_id | Unknown | FK |
| category | Json |  |
| completed_at | Instant |  |
| created_at | Instant |  |
| deleted_at | Instant |  |
| description | Unknown |  |
| due_date | Instant |  |
| due_date_is_full_day | Unknown |  |
| estimated_time | Unknown |  |
| next_id | Unknown |  |
| previous_id | Unknown |  |
| priority | Unknown |  |
| procedure_id | Unknown |  |
| procedure_max_score | Unknown |  |
| procedure_score | Unknown |  |
| procedure_template_id | Json |  |
| procedure_title | Unknown |  |
| recurrence_info_days | Json |  |
| recurrence_info_interval | Unknown |  |
| recurrence_info_type | Unknown |  |
| requester_id | Unknown |  |
| sequential_id | Unknown |  |
| start_date | Instant |  |
| status | Unknown |  |
| thumbnail_created_at | Instant |  |
| thumbnail_file_name | Unknown |  |
| thumbnail_height | Unknown |  |
| thumbnail_id | Unknown |  |
| thumbnail_mime_type | Unknown |  |
| thumbnail_url | Unknown |  |
| thumbnail_width | Unknown |  |
| title | Unknown |  |
| type | Unknown |  |
| updated_at | Instant |  |
| extra_field_** |  |  |

### conversation

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| name | Unknown |  |
| type | Unknown |  |

### part_transfer_request_destination_location

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| organization_id | Unknown | PK, FK |
| part_transfer_request_id | Unknown | PK, FK |
| location_id | Unknown | FK |
| quantity | Unknown |  |

### part_transfer_request

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| destination_organization_id | Unknown |  |
| destination_part_id | Unknown |  |
| quantity_received | Unknown |  |
| quantity_requested | Unknown |  |
| quantity_transferred | Unknown |  |
| request_message | Unknown |  |
| requester_id | Unknown |  |
| response_message | Unknown |  |
| source_location_id | Unknown |  |
| source_organization_id | Unknown |  |
| source_part_id | Unknown |  |
| status | Unknown |  |
| transferrer_id | Unknown |  |

### asset_custom_status

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| base_asset_status | Unknown |  |
| created_at | Instant |  |
| downtime_type | Unknown |  |
| label | Unknown |  |
| updated_at | Instant |  |

### team

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| name | Unknown |  |

### users

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| auth_type | Unknown |  |
| email | Unknown |  |
| first_name | Unknown |  |
| hourly_rate | Unknown |  |
| last_name | Unknown |  |
| phone_number | Unknown |  |
| role | Unknown |  |
| extra_field_** |  |  |

### asset_status

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| asset_id | Unknown | FK |
| creator_id | Unknown | FK |
| custom_status_id | Unknown | FK |
| created_at | Instant |  |
| deleted_at | Instant |  |
| description | Unknown |  |
| downtime_type | Unknown |  |
| ended_at | Instant |  |
| started_at | Instant |  |
| status | Unknown |  |
| updated_at | Instant |  |
| updater_id | Unknown |  |

### work_sub_order

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| work_order_id | Unknown | PK, FK |

### purchase_order

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| status | Unknown |  |

### organization

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| currency | Unknown |  |
| date_format_locale | Unknown |  |
| image_url | Unknown |  |
| name | Unknown |  |
| time_zone | Unknown |  |

### location_team

| Column | Type | Keys |
| --- | --- | --- |
| location_id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| team_id | Unknown | PK, FK |

### location_vendor

| Column | Type | Keys |
| --- | --- | --- |
| location_id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| vendor_id | Unknown | PK, FK |

### location

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| address | Unknown |  |
| barcode | Unknown |  |
| created_at | Instant |  |
| description | Unknown |  |
| name | Unknown |  |
| parent_id | Unknown |  |
| updated_at | Instant |  |
| extra_field_** |  |  |

### asset_team

| Column | Type | Keys |
| --- | --- | --- |
| asset_id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| team_id | Unknown | PK, FK |

### asset_vendor

| Column | Type | Keys |
| --- | --- | --- |
| asset_id | Unknown | PK, FK |
| organization_id | Unknown | PK, FK |
| vendor_id | Unknown | PK, FK |

### asset

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| criticality_id | Unknown | FK |
| custom_status_id | Unknown | FK |
| location_id | Unknown | FK |
| accumulated_depreciation | Unknown |  |
| annual_depreciation | Unknown |  |
| asset_type | Json |  |
| bar_code | Unknown |  |
| created_at | Instant |  |
| creator_id | Unknown |  |
| depreciation_archived_at | Unknown |  |
| depreciation_created_at | Unknown |  |
| depreciation_current_book_value | Unknown |  |
| depreciation_id | Unknown |  |
| depreciation_purchase_date | Unknown |  |
| depreciation_purchase_price | Unknown |  |
| depreciation_salvage_value | Unknown |  |
| depreciation_start_date | Unknown |  |
| depreciation_useful_life_years | Unknown |  |
| depreciation_years_depreciated | Unknown |  |
| description | Unknown |  |
| manufacturer | Unknown |  |
| model | Unknown |  |
| name | Unknown |  |
| parent_id | Unknown |  |
| serial_number | Unknown |  |
| updated_at | Instant |  |
| extra_field_** |  |  |

### category

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| organization_id | Unknown | PK, FK |
| description | Unknown |  |
| label | Unknown |  |

## Relationships

- vendor_contact(vendor_id) → vendor(id)
- vendor_contact(organization_id) → vendor(organization_id)
- part_vendor(vendor_id) → vendor(id)
- part_vendor(part_id) → part(id)
- part_vendor(organization_id) → part(organization_id)
- part_location(location_id) → location(id)
- part_location(part_id) → part(id)
- part_location(organization_id) → part(organization_id)
- part(location_id) → location(id)
- part(organization_id) → organization(id)
- asset_criticality(organization_id) → organization(id)
- work_request_portal(organization_id) → organization(id)
- work_request_attachment(work_request_id) → work_request(id)
- work_request_attachment(organization_id) → work_request(organization_id)
- work_request(work_order_id) → work_order(id)
- work_request(asset_id) → asset(id)
- work_request(approver_team_id) → team(id)
- work_request(location_id) → location(id)
- work_request(organization_id) → organization(id)
- vendor(organization_id) → organization(id)
- work_order_comment(author_id) → users(id)
- work_order_comment(work_order_id) → work_order(id)
- work_order_assignee(work_order_id) → work_order(id)
- work_order_assignee(organization_id) → work_order(organization_id)
- work_order_field_assignee_user_id(work_order_field_id) → work_order_field(id)
- work_order_field_assignee_user_id(work_order_id) → work_order_field(work_order_id)
- work_order_field_assignee_user_id(organization_id) → work_order_field(organization_id)
- work_order_field_assignee_user_id(id) → users(id)
- work_order_field_assignee_team_id(work_order_field_id) → work_order_field(id)
- work_order_field_assignee_team_id(work_order_id) → work_order_field(work_order_id)
- work_order_field_assignee_team_id(organization_id) → work_order_field(organization_id)
- work_order_field_assignee_team_id(id) → team(id)
- work_order_field_attachment(id) → team(id)
- work_order_field_attachment(work_order_field_id) → work_order_field(id)
- work_order_field_attachment(work_order_id) → work_order_field(work_order_id)
- work_order_field_attachment(organization_id) → work_order_field(organization_id)
- work_order_field(work_order_id) → work_order(id)
- work_order_field(organization_id) → work_order(organization_id)
- work_order_part(id) → part(id)
- work_order_part(work_order_id) → work_order(id)
- work_order_part(organization_id) → work_order(organization_id)
- work_order_time(part_id) → part(id)
- work_order_time(user_id) → users(id)
- work_order_time(work_order_id) → work_order(id)
- work_order_time(organization_id) → work_order(organization_id)
- work_order_time_item(part_id) → part(id)
- work_order_time_item(user_id) → users(id)
- work_order_time_item(work_order_id) → work_order(id)
- work_order_time_item(organization_id) → work_order(organization_id)
- work_order_vendor(vendor_id) → vendor(id)
- work_order_vendor(work_order_id) → work_order(id)
- work_order_vendor(organization_id) → work_order(organization_id)
- work_order_expenditure(part_id) → part(id)
- work_order_expenditure(user_id) → users(id)
- work_order_expenditure(work_order_id) → work_order(id)
- work_order_expenditure(organization_id) → work_order(organization_id)
- work_order(completer_id) → users(id)
- work_order(asset_id) → asset(id)
- work_order(organization_id) → organization(id)
- work_order(location_id) → location(id)
- work_order(creator_id) → users(id)
- conversation(organization_id) → organization(id)
- part_transfer_request_destination_location(location_id) → location(id)
- part_transfer_request_destination_location(part_transfer_request_id) → part_transfer_request(id)
- part_transfer_request_destination_location(organization_id) → part_transfer_request(organization_id)
- part_transfer_request(organization_id) → organization(id)
- asset_custom_status(organization_id) → organization(id)
- team(organization_id) → organization(id)
- users(organization_id) → organization(id)
- asset_status(custom_status_id) → asset_custom_status(id)
- asset_status(asset_id) → asset(id)
- asset_status(organization_id) → organization(id)
- asset_status(creator_id) → users(id)
- work_sub_order(organization_id) → organization(id)
- work_sub_order(work_order_id) → work_order(id)
- purchase_order(organization_id) → organization(id)
- location_team(team_id) → team(id)
- location_team(location_id) → location(id)
- location_team(organization_id) → location(organization_id)
- location_vendor(vendor_id) → vendor(id)
- location_vendor(location_id) → location(id)
- location_vendor(organization_id) → location(organization_id)
- location(organization_id) → organization(id)
- asset_team(team_id) → team(id)
- asset_team(asset_id) → asset(id)
- asset_team(organization_id) → asset(organization_id)
- asset_vendor(vendor_id) → vendor(id)
- asset_vendor(asset_id) → asset(id)
- asset_vendor(organization_id) → asset(organization_id)
- asset(custom_status_id) → asset_status(id)
- asset(criticality_id) → asset_criticality(id)
- asset(location_id) → location(id)
- asset(organization_id) → organization(id)
- category(organization_id) → organization(id)
