Skip to main content
Connectors

M-Files connector

Set up the M-Files connector in Kaivo: authentication, configuration, the 5 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your M-Files data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your data from M-Files instead of moving it.

What is the M-Files connector

Sync your M-Files documents and metadata into BigQuery with Kaivo to report on the content your team manages alongside the rest of your data.

CategoryFiles & Databases
AuthenticationUsername and password
SetupSelf-service

Getting started with the M-Files connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your M-Files account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating M-Files

Connect with your M-Files login. You provide:

FieldDescription
Password

Configuring the M-Files connector

When you set up the connector, you provide:

FieldDescription
Username
Vault GUID
Server URL
Object Type

Built-in object types are document (0), document collection (9), assignment (10), share (19), email (20), and email conversation (21). There may also exist custom types that are not listed here. In most cases, files are associated with documents, and this should be zero.

Object ID

The ID of an object is found on the M-Files user interface.

Tables and columns synced from M-Files

Kaivo syncs 5 tables from M-Files into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
acl_for_objects__checked_out_to_user_idINT64
acl_for_objects__custom_component__can_deactivateBOOL
acl_for_objects__custom_component__current_user_bindingINT64
acl_for_objects__custom_component__has_current_userBOOL
acl_for_objects__custom_component__has_current_user_bindingBOOL
acl_for_objects__custom_component__has_named_acl_linkBOOL
acl_for_objects__custom_component__has_pseudo_usersBOOL
acl_for_objects__custom_component__is_activeBOOL
acl_for_objects__custom_component__named_acl_linkINT64
acl_for_objects__has_checked_out_to_user_idBOOL
acl_for_objects__is_fully_authoritativeBOOL
acl_for_objects__is_un_specifiedBOOL
assignment_class_info__any_assignee_approvesBOOL
assignment_class_info__any_assignee_completesBOOL
assignment_class_info__assignment_typeINT64
automatic_permissions__can_deactivateBOOL
automatic_permissions__is_based_on_object_aclBOOL
automatic_permissions__is_defaultBOOL
automatic_permissions__named_acl__access_control_list__checked_out_to_user_idINT64
automatic_permissions__named_acl__access_control_list__custom_component__can_deactivateBOOL
automatic_permissions__named_acl__access_control_list__custom_component__current_user_bindingINT64
automatic_permissions__named_acl__access_control_list__custom_component__has_current_userBOOL
automatic_permissions__named_acl__access_control_list__custom_component__has_current_user_bindingBOOL
automatic_permissions__named_acl__access_control_list__custom_component__has_named_acl_linkBOOL
automatic_permissions__named_acl__access_control_list__custom_component__has_pseudo_usersBOOL
automatic_permissions__named_acl__access_control_list__custom_component__is_activeBOOL
automatic_permissions__named_acl__access_control_list__custom_component__named_acl_linkINT64
automatic_permissions__named_acl__access_control_list__has_checked_out_to_user_idBOOL
automatic_permissions__named_acl__access_control_list__is_fully_authoritativeBOOL
automatic_permissions__named_acl__access_control_list__is_un_specifiedBOOL
automatic_permissions__named_acl__has_automatic_componentBOOL
automatic_permissions__named_acl__idINT64
automatic_permissions__named_acl__is_named_aclBOOL
automatic_permissions__named_acl__is_un_specifiedBOOL
automatic_permissions__named_acl__nameSTRING
can_attach_objectsBOOL
default_classBOOL
has_automatic_permissionBOOL
has_forced_workflowBOOL
has_iconBOOL
idINT64
nameSTRING
name_property_defINT64
obj_typeINT64
object_typeINT64
permissions__can_attach_objectsBOOL
permissions__can_editBOOL
permissions__can_readBOOL
workflowINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: class_definitions__acl_for_objects__automatic_components

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: class_definitions__acl_for_objects__custom_component__access_control_entries

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
change_permissions_permissionINT64
delete_permissionINT64
edit_permissionINT64
has_concrete_user_or_gruop_idBOOL
is_groupBOOL
is_psudo_userBOOL
read_permissionINT64
user_or_group_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: class_definitions__access_control_list

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: class_definitions__associated_property_defs

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
property_defINT64
requiredBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: class_definitions__automatic_permissions__named_acl__access_control_list__automatic_components

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: class_definitions__automatic_permissions__named_acl__access_control_list__custom_component__access_control_entries

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
change_permissions_permissionINT64
delete_permissionINT64
edit_permissionINT64
has_concrete_user_or_gruop_idBOOL
is_groupBOOL
is_psudo_userBOOL
read_permissionINT64
user_or_group_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
accessed_by_meTIMESTAMP
accessed_by_me_utcTIMESTAMP
checked_out_atTIMESTAMP
checked_out_at_display_valueSTRING
checked_out_at_utcTIMESTAMP
checked_out_fromSTRING
checked_out_toINT64
checked_out_to_user_nameSTRING
classINT64
createdTIMESTAMP
created_display_valueSTRING
created_utcTIMESTAMP
deletedBOOL
display_idSTRING
escaped_title_with_idSTRING
has_assignmentsBOOL
has_relationships_fromBOOL
has_relationships_from_thisBOOL
has_relationships_toBOOL
has_relationships_to_thisBOOL
is_stubBOOL
last_accessed_by_meTIMESTAMP
last_modifiedTIMESTAMP
last_modified_display_valueSTRING
last_modified_utcTIMESTAMP
latest_checked_in_versionINT64
object_typeINT64
object_idINT64
obj_ver__idINT64
obj_ver__typeINT64
obj_ver__versionINT64
obj_ver__version_typeINT64
object_capability_flagsINT64
object_checked_outBOOL
object_checked_out_to_this_userBOOL
object_flagsINT64
object_guidSTRING
object_version_flagsINT64
path_in_id_viewSTRING
scoreINT64
single_fileBOOL
this_version_latest_to_this_userBOOL
titleSTRING
visible_after_operationBOOL
property_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: objects__base_properties

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: objects__files

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
change_timeTIMESTAMP
change_time_utcTIMESTAMP
created_display_valueSTRING
created_utcTIMESTAMP
escaped_nameSTRING
extensionSTRING
file_guidSTRING
file_version_typeINT64
idINT64
last_modifiedTIMESTAMP
last_modified_display_valueSTRING
nameSTRING
sizeINT64
versionINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
content_typeINT64
has_automatic_permissionBOOL
object_idINT64
object_last_modifiedSTRING
object_typeINT64
property_defINT64
typed_value__data_typeINT64
typed_value__display_valueSTRING
typed_value__has_automatic_permissionBOOL
typed_value__has_valueBOOL
typed_value__is_number_sortingBOOL
typed_value__lookup__deletedBOOL
typed_value__lookup__display_valueSTRING
typed_value__lookup__hiddenBOOL
typed_value__lookup__itemINT64
typed_value__lookup__object_flagsINT64
typed_value__lookup__object_typeINT64
typed_value__lookup__versionINT64
typed_value__lookup__version_typeINT64
typed_value__serialized_valueSTRING
typed_value__sorting_keySTRING
typed_value__valueSTRING
value__data_typeINT64
value__display_valueSTRING
value__has_automatic_permissionBOOL
value__has_valueBOOL
value__is_number_sortingBOOL
value__lookup__deletedBOOL
value__lookup__display_valueSTRING
value__lookup__hiddenBOOL
value__lookup__itemINT64
value__lookup__object_flagsINT64
value__lookup__object_typeINT64
value__lookup__versionINT64
value__lookup__version_typeINT64
value__serialized_valueSTRING
value__sorting_keySTRING
value__valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: objects_properties__typed_value__lookups

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
deletedBOOL
display_valueSTRING
hiddenBOOL
itemINT64
object_flagsINT64
object_typeINT64
versionINT64
version_typeINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: objects_properties__value__lookups

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
deletedBOOL
display_valueSTRING
hiddenBOOL
itemINT64
object_flagsINT64
object_typeINT64
versionINT64
version_typeINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
all_object_typesBOOL
automatic_value_typeINT64
based_on_value_listBOOL
content_typeINT64
data_typeINT64
dependency_pdINT64
dependency_relationINT64
guidSTRING
has_static_filterBOOL
idINT64
is_create_permission_allowedBOOL
is_owner_property_defBOOL
nameSTRING
object_typeINT64
owner_property_def__dependency_relationINT64
owner_property_def__idINT64
owner_property_def__is_relation_filteringBOOL
permissions__can_attach_objectsBOOL
permissions__can_editBOOL
permissions__can_readBOOL
predefinedBOOL
sort_ascendingBOOL
sorting_typeINT64
this_is_conflict_pdBOOL
this_is_default_pdBOOL
this_is_owner_pdBOOL
update_typeINT64
value_listINT64
value_list_sorting_typeINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: property_definitions__static_filters

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
condition_typeINT64
expression__data_property_value_property_defINT64
expression__data_status_value_typeINT64
expression__expression_typeINT64
mf_data_functionINT64
status_value_typeINT64
typed_value__data_typeINT64
typed_value__display_valueSTRING
typed_value__has_automatic_permissionBOOL
typed_value__has_valueBOOL
typed_value__is_number_sortingBOOL
typed_value__lookup__deletedBOOL
typed_value__lookup__display_valueSTRING
typed_value__lookup__hiddenBOOL
typed_value__lookup__itemINT64
typed_value__lookup__object_flagsINT64
typed_value__lookup__object_typeINT64
typed_value__lookup__versionINT64
typed_value__lookup__version_typeINT64
typed_value__serialized_valueSTRING
typed_value__sorting_keySTRING
typed_value__valueSTRING
valuelist_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
allow_addingBOOL
can_have_filesBOOL
default_property_defINT64
externalBOOL
has_ownerBOOL
hierarchialBOOL
idINT64
is_adding_allowed_for_userBOOL
nameSTRING
name_pluralSTRING
ownerINT64
owner_property_defINT64
real_object_typeBOOL
show_in_task_paneBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: type_definitions__read_only_properties_during_insert

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: type_definitions__read_only_properties_during_update

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: type_definitions__object_type_targets_for_browsing

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the M-Files sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where M-Files supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for M-Files?

It depends on how much history is in your M-Files account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when M-Files's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in M-Files, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in M-Files instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the M-Files connector in Kaivo and all of its synced data is deleted with it.

Common use cases for M-Files data

Document reporting

Turn the documents and metadata you manage in M-Files into dashboards and metrics.

Process tracking

Analyse document status and workflow data to monitor approvals and bottlenecks.

Combine with other sources

Join M-Files metadata with your other systems in BigQuery for a full view.

Keep a synced history to see how your content and processes change over time.

Use M-Files data in your AI and BI tools

Once M-Files data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with M-Files data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for M-Files connector pricing and plan details.

Was this helpful?

Still need help? Share an idea