Zoom Schema#

        graph LR
    ZoomAccount -- HAS_SETTINGS --> ZoomSecuritySettings
    ZoomAccount -- RESOURCE --> ZoomApp
    ZoomAccount -- RESOURCE --> ZoomClientVersion
    ZoomAccount -- RESOURCE --> ZoomGroup
    ZoomAccount -- RESOURCE --> ZoomMeeting
    ZoomAccount -- RESOURCE --> ZoomRecording
    ZoomAccount -- RESOURCE --> ZoomRole
    ZoomAccount -- RESOURCE --> ZoomRolePrivilege
    ZoomAccount -- RESOURCE --> ZoomSecuritySettings
    ZoomAccount -- RESOURCE --> ZoomUser
    ZoomGroup -- HAS_SETTINGS --> ZoomSecuritySettings
    ZoomMeeting -- HOSTED_BY --> ZoomUser
    ZoomRecording -- HOSTED_BY --> ZoomUser
    ZoomRecording -- RECORDED_FROM --> ZoomMeeting
    ZoomRole -- GRANTS --> ZoomRolePrivilege
    ZoomRolePrivilege -- SCOPED_TO --> ZoomGroup
    ZoomUser -- HAS_ROLE --> ZoomRole
    ZoomUser -- HAS_SETTINGS --> ZoomSecuritySettings
    ZoomUser -- MEMBER_OF --> ZoomGroup
    

ZoomAccount#

A Zoom account containing users and pending invitations.

Ontology Mapping: The Tenant label enables cross-provider tenant queries.

Ontology Mapping: This node uses the ontology label Tenant.

Properties#

Ontology-generated fields are shown in italics.

Field

Index

Description

id

Yes

Zoom account ID used for server-to-server OAuth.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

_ont_name

Yes

Normalized field sourced from id.

_ont_source

Module that populated this node’s ontology fields.

Relationships#

  • (:ZoomAccount)-[:HAS_SETTINGS]->(:ZoomSecuritySettings)

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomApp): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomClientVersion): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomGroup): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomMeeting): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomRecording): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomRole): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomRolePrivilege): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomSecuritySettings): The owning Zoom account contains this resource.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomUser): Contains a user or pending invitation in its Zoom account.

ZoomApp#

An account-added or approved Marketplace app. Approval and installation are independent states.

Ontology Mapping: This node has the extra label ThirdPartyApp to enable cross-platform queries for third-party applications.

_ont_client_id uses the Marketplace app ID as a surrogate identifier, not an OAuth client ID. Publication status does not imply enabled state or protocol.

Ontology Mapping: This node uses the ontology label ThirdPartyApp.

Properties#

Ontology-generated fields are shown in italics.

Field

Index

Description

id

Yes

Account-scoped Marketplace app ID.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

app_id

Marketplace app_id.

app_scopes

Exact OAuth scope identifiers from app_scopes; unknown if omitted, empty if explicitly returned empty.

app_status

Detail app_status is publication status, not installation state.

app_type

Detail app_type.

approval_required

Inverse of approval_info.app_approval_closed, when provided.

approval_type

approval_info.approved_type, such as forAllUser or forSpecificUser.

approved

Yes

Present in the approved_apps list.

developer_type

List app_developer_type: THIRD_PARTY, ZOOM or INTERNAL; unknown if omitted.

installed

Yes

Present in the account_added list; does not enumerate individual user installations.

name

Yes

Marketplace app_name.

_ont_client_id

Yes

Normalized field sourced from app_id.

_ont_name

Yes

Normalized field sourced from name.

_ont_source

Module that populated this node’s ontology fields.

Relationships#

  • (:User)-[:AUTHORIZED]->(:ZoomApp): generated by analysis job Ontology - User AUTHORIZED ThirdPartyApp linking.

    • Properties:

      Field

      Description

      scopes

      Property generated by analysis job: Ontology - User AUTHORIZED ThirdPartyApp linking.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomApp): The owning Zoom account contains this resource.

ZoomClientVersion#

An account-wide Dashboard count of one Zoom client version.

This is an aggregate from the client versions report, not a device or user inventory, and it cannot be attributed to individual users.

Properties#

Field

Index

Description

id

Yes

Account-scoped Dashboard client version string.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

client_version

Yes

Dashboard client_version, such as a platform-prefixed build string.

total_count

Dashboard total_count reported for this client version.

Relationships#

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomClientVersion): The owning Zoom account contains this resource.

ZoomGroup#

A Zoom account group with members correlated from the complete Users API snapshot.

Ontology Mapping: This node has the extra label UserGroup to enable cross-platform queries for user groups.

Ontology Mapping: This node uses the ontology label UserGroup.

Properties#

Ontology-generated fields are shown in italics.

Field

Index

Description

id

Yes

Account-scoped Zoom group ID.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

name

Yes

Group name.

total_members

Provider total_members.

zoom_id

Group id.

_ont_name

Yes

Normalized field sourced from name.

_ont_source

Module that populated this node’s ontology fields.

Relationships#

  • (:ZoomGroup)-[:HAS_SETTINGS]->(:ZoomSecuritySettings)

  • (:ZoomUser)-[:MEMBER_OF]->(:ZoomGroup): MEMBER_OF relationship to ZoomUser.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomGroup): The owning Zoom account contains this resource.

  • (:ZoomRolePrivilege)-[:SCOPED_TO]->(:ZoomGroup): SCOPED_TO relationship to ZoomGroup.

ZoomMeeting#

An unexpired scheduled meeting, including a recurring meeting series.

Protection settings describe provider configuration, not verified public access. Meeting passcodes, join/start URLs, agendas and invitees are never ingested. Cleanup only runs after every eligible host was read, so a denied read keeps the prior meetings, and a transfer keeps one HOSTED_BY.

Properties#

Field

Index

Description

id

Yes

Account-scoped Zoom meeting number.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

approval_type

Registration: 0 automatic approval, 1 manual approval, 2 not required.

authentication_domains

Allowed domains from settings.authentication_domains, when returned.

auto_recording

Configured automatic recording mode from settings.auto_recording.

created_at

Provider created_at as a native datetime, when available.

duration

Scheduled duration in minutes.

encryption_type

Configured encryption mode from settings.encryption_type.

host_id

Yes

Provider user ID of the meeting host.

join_before_host

Whether settings.join_before_host allows participants to join before the host.

meeting_authentication

Whether settings.meeting_authentication requires authenticated participants.

meeting_id

Provider meeting ID (meeting number), stored as a string.

password_protected

Whether the response supplies a nonempty passcode; unknown if omitted. Passcodes are never stored.

start_time

Scheduled start_time as a native datetime, when available.

status

Meeting status from the meeting details response.

topic

Meeting topic from the meeting details response.

type

Provider meeting type code for instant, scheduled, or recurring meetings.

waiting_room

Whether settings.waiting_room enables the waiting room.

Relationships#

  • (:ZoomMeeting)-[:HOSTED_BY]->(:ZoomUser)

  • (:ZoomRecording)-[:RECORDED_FROM]->(:ZoomMeeting)

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomMeeting): The owning Zoom account contains this resource.

ZoomRecording#

Cloud recording metadata for one meeting instance within the configured window.

Contains aggregate file metadata and sharing configuration, never recordings, transcripts, passcodes, or URLs. Links to a scheduled meeting when it is ingested. Cleanup runs after every eligible host and recording was read, and expires records outside the rolling lookback window. A denied or unread host skips cleanup, so the prior recordings are kept.

Properties#

Field

Index

Description

id

Yes

Account-scoped recorded meeting occurrence UUID.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

approval_type

Registration: 0 automatic approval, 1 manual approval, 2 not required.

authentication_domains

Allowed viewer domains from settings.authentication_domains, when returned.

auto_delete

Whether settings.auto_delete enables automatic deletion.

auto_delete_date

Provider settings.auto_delete_date, when automatic deletion is configured.

duration

Recorded meeting duration in minutes.

file_types

Types of available recording files; file contents and access URLs are never fetched.

host_id

Yes

Provider user ID of the recorded meeting host.

meeting_id

Provider meeting ID (meeting number), stored as a string.

meeting_uuid

Identifies this recorded meeting instance, including recurring meetings.

on_demand

Whether viewing requires registration.

password_protected

Whether settings supplies a nonempty passcode; unknown if omitted. Passcodes are never stored.

recording_authentication

Whether settings.recording_authentication restricts viewing to authenticated users.

recording_count

Provider recording_count for this meeting instance.

share_recording

Provider sharing mode: publicly, internally, or none. Public sharing can still require authentication or a passcode.

start_time

Recorded meeting start_time as a native datetime, when available.

topic

Topic of the recorded meeting.

total_size

Aggregate recording size in bytes.

viewer_download

Whether settings.viewer_download permits recording downloads.

Relationships#

  • (:ZoomRecording)-[:HOSTED_BY]->(:ZoomUser)

  • (:ZoomRecording)-[:RECORDED_FROM]->(:ZoomMeeting)

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomRecording): The owning Zoom account contains this resource.

ZoomRole#

A common account role and its assigned primary users; privileges are separate nodes.

Ontology Mapping: This node has the extra label PermissionRole to enable cross-platform queries for permission roles.

Ontology Mapping: This node uses the ontology label PermissionRole.

Properties#

Ontology-generated fields are shown in italics.

Field

Index

Description

id

Yes

Account-scoped Zoom role ID.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

description

Role description.

name

Yes

Role name.

total_members

Provider total_members; only primary membership is correlated from the user inventory.

zoom_id

Role id from the Roles API.

_ont_name

Yes

Normalized field sourced from name.

_ont_scope

Yes

Property generated by the ontology mapping.

_ont_source

Module that populated this node’s ontology fields.

Relationships#

  • (:ZoomRole)-[:GRANTS]->(:ZoomRolePrivilege): GRANTS relationship to ZoomRole.

  • (:ZoomUser)-[:HAS_ROLE]->(:ZoomRole): HAS_ROLE relationship to ZoomUser.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomRole): The owning Zoom account contains this resource.

ZoomRolePrivilege#

One privilege granted by a role, with explicit group restrictions when returned.

Properties#

Field

Index

Description

id

Yes

Account-scoped role ID and privilege identifier.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

group_ids

Provider group IDs from privilege_scopes; empty when no group restriction is returned.

privilege

Yes

Role privileges entry.

restricted_to_groups

True when privilege_scopes restricts this privilege to group_ids; false indicates no group restriction returned.

Relationships#

  • (:ZoomRole)-[:GRANTS]->(:ZoomRolePrivilege): GRANTS relationship to ZoomRole.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomRolePrivilege): The owning Zoom account contains this resource.

  • (:ZoomRolePrivilege)-[:SCOPED_TO]->(:ZoomGroup): SCOPED_TO relationship to ZoomGroup.

ZoomSecuritySettings#

Allowlisted security policy metadata from Zoom’s settings endpoints.

Configured values and lock flags are separate nodes. A locked flag describes whether members may change a setting, not whether that setting is enabled. These are provider-reported settings, not a computed inheritance hierarchy. Missing values are unknown. Passcodes and raw settings payloads are excluded. Cleanup runs only when every owner was read, so denied owners keep their prior settings until a complete sync.

Properties#

Field

Index

Description

id

Yes

Account-scoped owner and settings-kind identity.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Yes

Owning Zoom account ID.

allow_authentication_exception

option=meeting_authentication allow_authentication_exception.

allow_participants_to_rename

in_meeting.allow_participants_to_rename; configured account snapshots only.

auto_delete_cloud_recordings

recording.auto_delete_cmr; account and user values, account and group lock flags.

auto_delete_cloud_recordings_days

recording.auto_delete_cmr_days, such as 30, 60, 90 or 120; configured account and user only.

auto_security

meeting_security.auto_security; require at least one meeting security option.

cloud_recording

recording.cloud_recording.

cloud_recording_download

recording.cloud_recording_download.

cloud_recording_download_host

recording.cloud_recording_download_host; restrict downloads to the host.

embed_passcode_in_join_link

meeting_security.embed_password_in_join_link.

encryption_type

meeting_security.encryption_type: enhanced_encryption or e2ee; configured only.

end_to_end_encrypted_meetings

meeting_security.end_to_end_encrypted_meetings.

file_transfer

in_meeting.file_transfer.

join_before_host

schedule_meeting.join_before_host.

kind

configured contains values; locked contains lock flags, not enabled values.

local_recording

recording.local_recording.

meeting_authentication

option=meeting_authentication meeting_authentication, or schedule_meeting.meeting_authentication for locks.

meeting_passcode_required

meeting_security.meeting_password; stores the policy, never the passcode.

only_authenticated_can_join_from_webclient

meeting_security.only_authenticated_can_join_from_webclient.

phone_passcode_required

meeting_security.phone_password; stores the policy, never the passcode.

pmi_passcode_required

meeting_security.pmi_password boolean policy; never schedule_meeting.pmi_password, which is a secret.

private_chat

in_meeting.private_chat; allows participants to message each other privately.

recording_account_members_only

recording.account_user_access_recording.

recording_authentication

option=recording_authentication recording_authentication, or recording.recording_authentication for locks.

recording_embed_passcode_in_link

recording.embed_passcode_in_shareable_link.

recording_invitees_without_passcode

recording.allow_invitees_access_recordings_without_passcode.

recording_passcode_required

recording.required_password_for_shared_cloud_recordings.

recording_sharing

recording.allow_share.

remote_control

in_meeting.remote_control.

require_sso_for_domains

security.signin_with_sso.require_sso_for_domains; domains are not collected.

scope_id

Provider ID of the owning account, group, or user.

scope_type

Owner type: account, group, or user.

screen_sharing

in_meeting.screen_sharing.

sign_again_period_for_inactivity_on_client

security.sign_again_period_for_inactivity_on_client; minutes of client inactivity before sign-out, 0 when disabled. Configured account only.

sign_again_period_for_inactivity_on_web

security.sign_again_period_for_inactivity_on_web; minutes of web inactivity before sign-out, 0 when disabled. Configured account only.

sign_in_with_two_factor_auth

security.sign_in_with_two_factor_auth: all, group, role, or none; configured only.

sign_in_with_work_email

security.sign_in_with_work_email.

sso_enabled

security.signin_with_sso.enable.

two_factor_auth_group_ids

security.sign_in_with_two_factor_auth_groups; provider group IDs requiring 2FA when sign_in_with_two_factor_auth is group. Configured account only.

two_factor_auth_role_ids

security.sign_in_with_two_factor_auth_roles; provider role IDs requiring 2FA when sign_in_with_two_factor_auth is role. Configured account only.

waiting_room

in_meeting.waiting_room for configured snapshots, or meeting_security.waiting_room for locks.

waiting_room_scope

meeting_security.waiting_room_settings.participants_to_place_in_waiting_room: 0 all participants, 1 users outside the account, 2 users outside the account and allowed domains; configured only.

who_can_share_screen

in_meeting.who_can_share_screen: host or all; configured only.

Relationships#

  • (:ZoomAccount)-[:HAS_SETTINGS]->(:ZoomSecuritySettings)

  • (:ZoomGroup)-[:HAS_SETTINGS]->(:ZoomSecuritySettings)

  • (:ZoomUser)-[:HAS_SETTINGS]->(:ZoomSecuritySettings)

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomSecuritySettings): The owning Zoom account contains this resource.

ZoomUser#

A Zoom user account or an invitation awaiting activation.

Ontology Mapping: The UserAccount label enables cross-platform user queries. Pending invitations are inactive and are replaced by provider-ID nodes on activation.

Ontology Mapping: This node uses the ontology label UserAccount.

Properties#

Ontology-generated fields are shown in italics.

Field

Index

Description

id

Yes

Account-scoped Zoom ID, or account-scoped normalized email for pending invitations.

firstseen

Timestamp when a sync job first created this node.

lastupdated

Yes

Timestamp of the last sync that observed this node.

account_id

Zoom account containing this user or invitation.

created_at

Provider user_created_at as a native datetime, when available.

department

User’s department.

display_name

User’s display name.

email

Yes

Trimmed lowercase email used for identity correlation.

first_name

User’s first name.

group_ids

IDs of groups where the user is a member.

last_client_version

Yes

Users API last_client_version; last observed login client, not a complete device inventory.

last_login_time

Yes

Provider last_login_time as a native datetime with Zoom’s three-day reporting buffer; not precise activity telemetry.

last_name

User’s last name.

login_types

Provider login method codes; 101 denotes SSO, 100 Zoom work email.

plan_type

Readable assigned plan type; not purchased seats, billing, or complete product entitlements.

role_id

Assigned primary account role ID; the optional roles surface links the user to its role and ingests role privileges.

status

Account membership status: active, inactive, or pending.

type

Assigned plan type: 1 Basic, 2 Licensed, 4 Unassigned without Meetings Basic, 99 legacy None.

zoom_id

Provider user ID; absent for pending invitations.

_ont_active

Yes

Normalized field sourced from status.

_ont_email

Yes

Normalized field sourced from email.

_ont_firstname

Yes

Normalized field sourced from first_name.

_ont_fullname

Yes

Normalized field sourced from display_name.

_ont_lastactivity

Yes

Normalized field sourced from last_login_time.

_ont_lastname

Yes

Normalized field sourced from last_name.

_ont_source

Module that populated this node’s ontology fields.

Relationships#

  • (:User)-[:HAS_ACCOUNT]->(:ZoomUser)

  • (:ZoomUser)-[:HAS_ROLE]->(:ZoomRole): HAS_ROLE relationship to ZoomUser.

  • (:ZoomUser)-[:HAS_SETTINGS]->(:ZoomSecuritySettings)

  • (:ZoomMeeting)-[:HOSTED_BY]->(:ZoomUser)

  • (:ZoomRecording)-[:HOSTED_BY]->(:ZoomUser)

  • (:ZoomUser)-[:MEMBER_OF]->(:ZoomGroup): MEMBER_OF relationship to ZoomUser.

  • (:ZoomAccount)-[:RESOURCE]->(:ZoomUser): Contains a user or pending invitation in its Zoom account.