Redshift tables: people, profiles & communities

These are your dimension tables. Almost every dashboard you build will join back to users and to communities, so get this part of the model right first. Expand any table to see what it holds and every field available through the connector.

How these tables fit together

From

To

Join

users

companies

users.company_id = companies.id

users

profile_values

users.id = profile_values.user_id

profile_values

profile_fields

profile_values.profile_field_id = profile_fields.id

users

communities

via memberships (user_idcommunity_id)

users

user_group_memberships

users.id = user_group_memberships.user_id

users

manager

users.owner_id = manager's users.id

communities

topics

via community_topics

communities

contents

via community_items

The manager relationship is not obvious. There is no manager_id column on users. The reporting line is held in users.owner_id, which points at another row in users — so it is a self-join. Most BI tools will not let you relate a table to itself directly, so bring users in a second time as a "Managers" table and join owner_id to that copy's id. See Using the connector with your BI tool for how this works in practice. The managers_reports table is a separate join table used for report distribution, not for the org hierarchy.

Users & organisation

users — the central people table

The central table for managing people on Fuse. It defines every user, including their identity, login credentials, profile details, and associations with other entities in the system.

Fuse uses it to: authenticate and authorise access to the platform; personalise content, dashboards and notifications; track progress, activity and engagement; and manage permissions, roles and organisational structure.

Watch out: deleted_at marks deactivated users — filter these out for active-user counts. deprecated_name and deprecated_employee_number are legacy columns; use first_name, last_name and external_id instead. last_activity_at is your best single indicator of recency.

Field

Role

id

Primary key

company_id

Tenant key

owner_id

Foreign key — the user's manager

email

Identity

username

Identity

first_name

Identity

last_name

Identity

deprecated_name

Legacy — do not use

deprecated_employee_number

Legacy — do not use

external_source

Provisioning source

external_id

ID in the source system

role

Permission level — reserved word, quote it in SQL

signed_from

Sign-up origin

auth_provider

Authentication method

auth_service_disposable_key

Authentication internal

authentication_token

Authentication internal

encrypted_password

Authentication internal

initial_password_changed

Onboarding flag

password_changed_at

Timestamp

reset_password_token

Authentication internal

reset_password_sent_at

Timestamp

remember_created_at

Timestamp

confirmation_token

Authentication internal

confirmed_at

Timestamp

confirmation_sent_at

Timestamp

sign_in_count

Activity counter

current_sign_in_at

Timestamp

last_sign_in_at

Timestamp — key for activity reporting

current_sign_in_ip

Session attribute

last_sign_in_ip

Session attribute

last_activity_at

Timestamp — best recency indicator

failed_attempts

Security counter

unlock_token

Security internal

locked_at

Timestamp

expired_at

Timestamp

deleted_at

Soft delete — deactivated users

personal_data_removed

GDPR flag

terms_accepted

Compliance flag

completed_registration

Onboarding flag

completed_steps

Onboarding progress

communities_count

Denormalised counter

notifications_count

Denormalised counter

unread_notifications_count

Denormalised counter

unviewed_notifications_count

Denormalised counter

email_preference

Notification setting

image_uid

Profile picture reference

preview_path

Asset reference

settings_str

Serialised settings

identity_option

Privacy setting

hidden_from_leaderboard

Gamification flag

accessibility_enabled

Accessibility setting

accessibility_theme

Accessibility setting

phone_number_verified

Verification flag

has_fuse121_sessions

One-to-one participation flag

created_at

Timestamp — account creation

updated_at

Timestamp

companies — your Fuse instance and its configuration

No description was provided in the source. Added here for orientation. Represents a Fuse tenant. It holds instance-level identity, branding and feature-toggle configuration. In a single-tenant connector view this will usually be one row, but it is the anchor for the company_id that appears on almost every other table.

Useful for reporting: users_count gives a headline provisioned-user figure without scanning users. enable_courses and fuse_courses_completeness_enabled tell you whether the learning features that populate user_course_progresses are switched on. Most of the remaining columns are styling and stylesheet-compilation state, of little analytical value.

Field

Role

id

Primary key — the tenant key everywhere else

name

Instance name

subdomain

Instance URL

guid

Unique identifier

users_count

Denormalised counter

enabled

Instance status

master

Instance type flag

enable_courses

Feature toggle

fuse_courses_completeness_enabled

Feature toggle

custom_user_profile_enabled

Feature toggle

custom_user_profile_html

Customisation

login_custom_html

Customisation

default_email_preference

Notification default

tabs

Navigation configuration

asset_uid

Logo reference

favicon_uid

Branding reference

custom_certificate_stamp_uid

Branding reference

fuse_styles

Branding

fuse_stylesheet_is_compiling

Internal state

fuse_stylesheet_file_path

Internal state

mails_stylesheet_is_compiling

Internal state

mails_stylesheet_file_path

Internal state

pdf_stylesheet_is_compiling

Internal state

pdf_stylesheet_file_path

Internal state

sign_in_wizard_stylesheet_is_compiling

Internal state

sign_in_wizard_stylesheet_file_path

Internal state

widgets_centre_stylesheet_is_compiling

Internal state

widgets_centre_stylesheet_file_path

Internal state

site_admin_stylesheet_is_compiling

Internal state

site_admin_stylesheet_file_path

Internal state

components_stylesheet_is_compiling

Internal state

components_stylesheet_file_path

Internal state

embed_stylesheet_is_compiling

Internal state

embed_stylesheet_file_path

Internal state

deprecated_extra_validation

Legacy — do not use

created_at

Timestamp

updated_at

Timestamp

managers_reports — links managers to reports

Organises and delivers actionable reports to managers, supporting oversight, performance tracking and decision-making. It tracks the individual reports a manager uses to review, analyse or share insights about their teams.

Fuse uses it to: generate and display reports for managers in dashboards; support decision-making and performance reviews; let managers track progress and share results; and enable filtering, searching and exporting of reports.

This is a report-distribution join table, not the organisational hierarchy. For "who reports to whom", use users.owner_id.

Field

Role

id

Primary key

manager_id

Foreign key → users.id

report_id

Foreign key — the report

company_id

Tenant key

Custom profile fields

These five tables together form Fuse's flexible profile system. profile_fields defines what can be captured, profile_values holds what each user answered, profile_field_options holds the picklist values, and the two variant tables control which version of a field a given role or context sees. If you want department, region or job title as a filter, this is where it lives.

profile_fields — defines the custom attributes you can capture

Manages customisable user profile attributes, supporting flexible data collection and personalised experiences. It stores the configuration for each profile field — name, type and validation rules — so the application can collect and display personalised user information.

Fuse uses it to: customise profiles with fields relevant to the organisation (department, location, skills); let admins create, edit and organise profile fields; support dynamic profile forms; and enable filtering, searching and reporting on profile values.

For reporting: label is the human-readable field name you will use as a column header after pivoting. exclude_from_reporting and send_to_analytics tell you which fields are intentionally kept out of analytics — respect them. deleted_at marks retired fields.

Field

Role

id

Primary key

company_id

Tenant key

uuid

Stable external identifier

label

Display name — use as your column header

mapping

Integration mapping

mapping_class

Integration mapping

field_type

Input type (text, dropdown, date)

sort_order

Display sequence

visible

Display flag

required

Validation flag

api_visible

API exposure flag

send_to_analytics

Analytics inclusion flag

exclude_from_reporting

Analytics exclusion flag

deleted_at

Soft delete

created_at

Timestamp

updated_at

Timestamp

profile_values — what each user actually answered

Stores and manages user-specific profile information, supporting personalisation, reporting and organisational management. It records each user's responses or selections for custom profile fields such as department, job title or location.

Fuse uses it to: display profile information throughout the application; support filtering, searching and reporting by profile attribute; let users and admins update profile data; and enable personalised experiences, access control and organisational grouping.

This table is tall, not wide — one row per user per field. To use profile attributes as filters, you need to pivot those rows into columns first, joining to profile_fields for the label. There is a ready-made SQL recipe on Using the connector with your BI tool; every BI tool also has its own pivot step if you prefer to do it there.

Field

Role

id

Primary key

user_id

Foreign key → users.id

profile_field_id

Foreign key → profile_fields.id

variant_id

Foreign key → profile_field_variants.id

value

The answer itself — reserved word, quote it in SQL

visible

Display flag

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp

profile_field_options — the picklist values for a field

Manages the selectable values for custom profile fields, supporting flexible and consistent profile data. It defines the possible values users can choose when filling out a field such as department, location or job title.

Fuse uses it to: present dropdowns, radio buttons and selection lists on profile forms; ensure consistent data entry; let admins create, edit and order the available options; and support filtering, searching and reporting by profile value.

For reporting: join here to get the canonical spelling of an option rather than relying on free-text values in profile_values. It is also the cleanest source for a complete filter list, including options nobody has selected yet.

Field

Role

id

Primary key

profile_field_id

Foreign key → profile_fields.id

value

The option text — reserved word, quote it in SQL

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp

profile_field_variants — alternative versions of a profile field

Delivers flexible, context-aware profile fields. It defines alternative setups for a profile field, allowing the application to present different formats, options or behaviours depending on context — company, region or user type.

Fuse uses it to: customise profile fields for different audiences or use cases; support dynamic profile forms that adapt to user or organisational needs; let admins manage multiple versions of a field; and enable conditional display or validation.

Watch out: if the same underlying field has multiple variants, users may hold values against different variants. Group by profile_field_id rather than variant_id when you want the whole population.

Field

Role

id

Primary key

profile_field_id

Foreign key → profile_fields.id

title

Variant name

code

Variant identifier

position

Display sequence — reserved word, quote it in SQL

company_id

Tenant key

profile_field_variants_roles — which role sees which variant

Tailors profile fields to user roles, supporting role-based customisation and data management. It links specific profile field variants to particular roles, controlling which variants are shown or available based on a user's role.

Fuse uses it to: customise profile fields per role so the right data is collected; control visibility and editing permissions per role; support dynamic profile forms; and let admins manage which variants each role can see.

For reporting: mostly configuration rather than analysis, but useful when explaining why a profile attribute is populated for some user groups and blank for others. It also carries default landing-page and default-community settings per role.

Field

Role

id

Primary key

variant_id

Foreign key → profile_field_variants.id

community_id

Foreign key → communities.id

default_community

Role default

default_landing_page

Role default

company_id

Tenant key

Communities & groups

communities — the spaces users belong to

Creates and manages user groups, supporting collaboration, engagement and targeted content sharing. Each community is a space where users connect, share content, collaborate and take part in discussions or activities.

Fuse uses it to: organise users into groups for collaboration, learning or social interaction; display community pages with posts, events and resources; manage membership, permissions and privacy; and support notifications, activity feeds and targeted content delivery.

For reporting: type distinguishes general communities from topic communities and learning plan communities — this matters a great deal, because audience metrics such as Topic Audience are calculated against the community attached to the topic. members_count is a quick headline figure but cannot be sliced.

Field

Role

id

Primary key

company_id

Tenant key

name

Display name

description

Attribute

type

Community type — general, topic, learning plan. Reserved word, quote it in SQL

members_count

Denormalised counter

default_for_new_user

Onboarding flag

membership_settings

Access configuration

members_can_leave_community

Access configuration

public_topics_creation_enabled

Permission flag

anonymous_comments_allowed_for_members

Permission flag

notifications_settings

Notification configuration

featured_content_settings

Display configuration

knowledge_tab

Navigation toggle

topics_tab

Navigation toggle

event_occurrences_tab

Navigation toggle

custom_tab

Navigation configuration

mobile_custom_tab

Navigation configuration

icon_id

Asset reference

price

Commercial attribute

subscription_plan

Commercial attribute

created_at

Timestamp

updated_at

Timestamp

memberships — which users are in which communities

Organises users into communities, supporting access control, collaboration and user management. It is the join table managing user membership of communities.

Fuse uses it to: control access to community content and features; manage permissions, roles and participation; support notifications, collaboration and reporting based on membership; and let admins add, remove or update memberships.

This is the single most important table for audience denominators. Universal Analytics metrics such as Users in Communities, Engaged User (%) and Inactive % all count records here. If your percentages disagree with the Fuse dashboard, check whether you are counting distinct users or membership rows — a user in five communities produces five rows.

Field

Role

id

Primary key

user_id

Foreign key → users.id

community_id

Foreign key → communities.id

company_id

Tenant key

membership_type

Membership category

admin

Permission flag

expert

Permission flag

ask

Permission flag — can ask questions

contribute

Permission flag — can contribute

link

Permission flag — can share links

recording

Permission flag — can record

article

Permission flag — can publish articles

notifications_enabled

Notification setting

notify_all

Notification setting

settings

Serialised settings

created_at

Timestamp — join date

updated_at

Timestamp

user_group_memberships — which users are in which groups

Organises users into groups, supporting group-based features and permissions. It is the join table connecting users to groups so the system can manage group membership for permissions, content access, collaboration and notifications.

Fuse uses it to: determine which users can access group-specific content or functionality; manage group-based permissions and roles; support messaging, collaboration and reporting within groups; and query all members of a group or all groups a user belongs to.

Note: groups and communities are separate concepts. Groups are a permissions construct; communities are the content and collaboration space. Do not use one as a proxy for the other.

Field

Role

id

Primary key

user_id

Foreign key → users.id

user_group_id

Foreign key — the group

company_id

Tenant key

community_items — content shared into a community

Organises and delivers shared content within communities. It tracks the individual items belonging to a community, letting users share, view and interact with content in a community space.

Fuse uses it to: display shared content in community pages and feeds; support collaboration, discussion and resource sharing; let users create, edit and manage community items; and enable searching, filtering and reporting on community activity.

For reporting: this is your bridge from contents to communities. Because a single item of content can appear in several communities, expect fan-out — a view of that content will be attributed to every community it sits in unless you constrain the join or aggregate before joining.

Field

Role

id

Primary key

community_id

Foreign key → communities.id

content_id

Foreign key → contents.id

author_id

Foreign key → users.id

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp

community_topics — topics assigned to a community

Organises and manages discussions within communities, supporting structured engagement and easy navigation. It defines the subjects or themes around which community members create posts, ask questions or start discussions.

Fuse uses it to: organise posts and discussions by topic; help users find relevant conversations or resources; let admins create and categorise topics; and support filtering, searching and reporting on community activity by topic.

For reporting: this join is what makes "Topic Audience" work — the audience for a topic is the membership of the community the topic is attached to. pinned_at identifies topics deliberately promoted in the community, which is useful when analysing why some topics outperform others.

Field

Role

id

Primary key

community_id

Foreign key → communities.id

topic_id

Foreign key → topics.id

pinned_at

Timestamp — promotion marker

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp

Access control for performance assessments

These three tables govern who can see and manage performance assessments. They are configuration rather than analytics, but they explain gaps in assessment reporting — a user with no matching access rule will never appear in assessment data.

performance_assessments_app_access_policies

Controls and customises access to performance assessment features, ensuring proper security and permissions. It defines the rules determining which users, roles or groups can access specific features or data in the performance assessments module.

Fuse uses it to: enforce security and permissions on assessment features; let admins configure who can view or manage assessments; and support dynamic access control so only authorised users can act.

Field

Role

id

Primary key

access_mode

Access level

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp

performance_assessments_app_group_access_rules

Manages and enforces group-based access to performance assessment features, so only authorised groups can perform specific actions or view sensitive data. It defines which groups can view, edit or administer parts of the performance assessments application.

Fuse uses it to: control which groups can view, edit or manage assessments; support flexible group-based permission management; enforce security on sensitive assessment data; and let admins update rules as the organisation changes.

Field

Role

id

Primary key

type

Rule type — reserved word, quote it in SQL

access_policy_id

Foreign key → access policy

profile_field_option_id

Foreign key → profile_field_options.id

community_id

Foreign key → communities.id

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp

performance_assessments_app_user_access_rules

Manages and enforces user-specific access to performance assessment features. It defines which individual users can view, edit or administer parts of the performance assessments application.

Fuse uses it to: enforce granular access control; let admins configure each user's access level; support permission checks before displaying or allowing actions; and audit and report on access to sensitive assessment data.

Field

Role

id

Primary key

type

Rule type — reserved word, quote it in SQL

access_policy_id

Foreign key → access policy

user_id

Foreign key → users.id

company_id

Tenant key

created_at

Timestamp

updated_at

Timestamp