February 2024
Automatic Fivetran Platform Connector creation
Automatic connector creation: We now add a destination-level Fivetran Platform Connector to every new destination that you create in your Fivetran dashboard. This way, you have full access to essential Fivetran technical information from the start, like logs and metadata.
We don't currently add the Fivetran Platform Connector to destinations created using our REST API.
Immediate data sync: Once created, the connector immediately begins syncing data to the destination, so that you have access to this technical information from the start.
Smart Trial Management: During trial periods, we add the Fivetran Platform Connector, but its initial sync does not trigger the start of the trial period.
dbt Cloud Orchestration
You can now use dbt Cloud* Orchestration to trigger transformation runs from Fivetran. This feature is now available in Beta.
* dbt Cloud is a trademark of dbt Labs, Inc. All rights therein are reserved to dbt Labs, Inc. Fivetran Transformations is not a product or service of or endorsed by dbt Labs, Inc.
Fivetran Azure US Servers
We have added new servers in the Azure Eastern US (Virginia) region.
If you're on a Business Critical plan, you can now select this region in your destination setup form. Connectors configured in a destination run in their designated cloud and region, meaning that your data doesn't leave our region-specific servers during processing. For example, if you configure your connectors to use our servers in the US, your data does not leave the US during processing.
We now support Azure Private Link connections to sources and destinations in the Azure US East (Virginia) region.
For more information, see our data residency documentation.
Lite Connectors
Lite connectors are now available for the following sources:
- Checkr
- CJ Commission Detail
- DSV
- Factorial
- Google Business Profile
- GRIN
- RTB House
- LinkSquares
- Microsoft Entra ID
- ON24
- Postmark
- Rakuten Advertising
- Sharetribe
- UKG Pro
- Zoom
- VTS
Panoply
Effective February 29, 2024, you can no longer create new Panoply destinations. However, we continue to support your existing Panoply destinations.
Periscope
Effective February 29, 2024, you can no longer create new Periscope destinations. However, we continue to support your existing Periscope destinations.
Proxy Agent
The Fivetran Proxy Agent connection method is now available in beta for the GCP us-central1 (Iowa) region. The Proxy Agent allows you to connect Fivetran to your database securely. Installed behind your firewall, it initiates communication with Fivetran, eliminating the need for other complicated networking options.
Transformations for dbt Core
Added notification subscriptions for model-based transformations
We have updated the Transformation Notifications to support model-based transformations. You can create these transformations using Quickstart packages, or by selecting models from your Git dbt projects.
* dbt Core is a trademark of dbt Labs, Inc. All rights therein are reserved to dbt Labs, Inc. Fivetran Transformations is not a product or service of or endorsed by dbt Labs, Inc.
New dbt Quickstart packages
We have added new Quickstart packages for the following connectors:
Removed data lineage graph
We have removed the data lineage graph feature. As a result of this, we have made the following changes:
- Removed the Data lineage graph tab from the transformation details page
- Added the Run log tab
If you want to continue using the data lineage graph feature, contact Fivetran support.
* dbt Core is a trademark of dbt Labs, Inc. All rights therein are reserved to dbt Labs, Inc. Fivetran Transformations is not a product or service of or endorsed by dbt Labs, Inc.
Updated dbt Quickstart packages
We have updated the Quickstart packages for the following connectors:
- Facebook Ads to version 0.7.2
- Fivetran Platform Connector to version 1.4.3
- Intercom to version 0.9.1
- Zendesk Support to version 0.13.1
New connectors
Azure Cosmos DB for MongoDB
Azure Cosmos DB for MongoDB is managed MongoDB-compatible database service. Read our Azure Cosmos DB for MongoDB connector documentation.
Sprout Social
Sprout Social is a social media business management platform. Read our Sprout Social connector documentation.
Schema changes
15Five
We have added a new column, question_text, to the CHECK_IN_ANSWER table.
We have removed the CHECK_IN_PULSE and CHECK_IN_QUESTION tables.
We have removed the object_index column from the CHECK_IN_ANSWER table.
We have changed the primary key of the COMPANY_GROUP_ID table. The new primary key is the fivetran_id column. Previously, the primary key was a combination of the company_group_id, fivetran_id, and users_id columns.
We have changed the primary key of the following tables:
CHECK_IN_ACCOMPLISHMENTCHECK_IN_COMMENTCHECK_IN_GOAL
The new primary key for these tables is the fivetran_id column. Previously, the primary key was a combination of the check_in_id and fivetran_id columns.
ActiveCampaign
We have changed the primary key of the TRACKING_EVENT and SITE_EVENT tables. The new primary key for these tables is the name column. Previously, we included the index column as a part of the composite primary key for these tables.
Amazon Selling Partner
We have changed the primary key of the ITEM_OFFER_DETAIL table. The new composite primary key is a combination of the asin, sub_condition, and index columns.
Appfigures
We have added two new columns, network and storefront, to the AD_REPORT and ADVERTISEMENT_SPEND tables.
We have changed the primary key of the ESTIMATE table. The new composite primary key is a combination of the date, iso, product_id, and storefront columns. Previously, the primary key was a combination of the date and product_id columns.
We have changed the primary key of the PAYMENT table. The new composite primary key is a combination of the date, iso, product_id, and storefront columns. Previously, the primary key was a combination of the date, iso, and product_id columns.
We have changed the primary key of the REVENUE table. The new composite primary key is a combination of the date, iso, product_id, and storefront columns. Previously, the primary key was a combination of the date and product_id columns.
We have changed the primary key of the SALE table. The new composite primary key is a combination of the date, device, iso, product_id, and storefront columns. Previously, the primary key was a combination of the date, iso, and product_id columns.
We have changed the primary key of the SUBSCRIPTION table. The new composite primary key is a combination of the date, iso, product_id, and storefront columns. Previously, the primary key was a combination of the date and product_id columns.
Braze
We have added two new columns, channel_content_cards and channel_sms, to the following tables:
CAMPAIGNCANVASCANVAS_STEP
We are gradually rolling out these changes to all existing connections.
Brex
We have renamed the primary column to is_primary in the CASH_ACCOUNT table.
Chargebee Product Catalog 1.0
We have removed the updated_at column as the composite primary key. The updated_at column now has a foreign key relationship to the SUBSCRIPTION table in the following tables:
SUBSCRIPTION_ADDONSUBSCRIPTION_CHARGED_EVENT_BASED_ADDONSUBSCRIPTION_COUPONSUBSCRIPTION_EVENT_BASED_ADDON
ChartMogul
We have renamed the system column to systems in the DATA_SOURCE table.
Cin7
We have renamed the group column to groups in the CONTACT table.
We have changed the primary key in the BRANCH_LOCATION table from the index column to a combination of the branch_id and zone columns.
We have changed the primary key in the BRANCH_LOCATION_BIN table from the fivetran_id column to a combination of branch_id, branch_location_zone, and index columns.
commercetools
We have added a new table, ORDER_PAYMENT_INFO.
Concord
We have changed the primary key of the AGREEMENT_VERSION_LAST_FIELD_VALUE and AGREEMENT_VERSION_LAST_FIELD_OPTION tables. The new composite primary key is a combination of the index, agreement_version_last_field_uuid, and agreement_uuid columns. Previously, the primary key was a combination of the index and agreement_version_last_field_uuid columns.
We have changed the primary key of a few REPORT_FILTER_STATUS and REPORT_FILTER_CREATED_BY tables. The new composite primary key is a combination of the index, report_id, and organization_id columns. Previously, the primary key was a combination of the index and report_id columns.
Crossbeam
We have changed the primary key of the PARTNER_OVERLAP_COUNT table. The new primary key is the _fivetran_id column. Previously, the primary key was a combination of the index and partner_organization_id columns.
Eloqua
We have changed the behavior of the following tables in relation to the custom columns:
ACCOUNTCONTACTCAMPAIGN
If a custom column name in one of the tables matches the name of a standard column, then we append the prefix, custom_, to the column name. If applicable, we will sync all data to the new column(s).
For example, the CONTACT table has a province column. If you add a new custom column province to the table, the custom column name in your destination will be custom_province. However, if your custom column name is province_country for which a standard column does not exist, the column name in the destination will not change.
To re-sync these tables, contact Fivetran support.
Employment Hero
We have changed the composite primary key of the TIMESHEET_ENTRY table. The employment_id and organization_id columns are no longer part of the composite primary key for this table.
Eventbrite
We have changed the composite primary key of the ATTENDEE_ANSWER table. The new composite primary key is a combination of the attendee_id and question_id columns. The index column is no longer part of the composite primary key for this table.
Facebook Pages
We removed the following metrics, since they will be deprecated for all API versions on March 14, 2024, according to Facebook's Out-Of-Cycle Changes documentation:
- page_actions_post_reactions_anger_total
- page_actions_post_reactions_haha_total
- page_actions_post_reactions_like_total
- page_actions_post_reactions_love_total
- page_actions_post_reactions_sorry_total
- page_actions_post_reactions_wow_total
- page_call_phone_clicks_by_age_gender_logged_in_unique
- page_call_phone_clicks_logged_in_by_city_unique
- page_call_phone_clicks_logged_in_by_country_unique
- page_consumptions
- page_content_activity
- page_content_activity_by_action_type
- page_content_activity_by_action_type_unique
- page_content_activity_by_age_gender_unique
- page_content_activity_by_city_unique
- page_content_activity_by_country_unique
- page_content_activity_by_locale_unique
- page_cta_clicks_by_age_gender_logged_in_unique
- page_cta_clicks_logged_in_by_city_unique
- page_cta_clicks_logged_in_by_country_unique
- page_engaged_users
- page_fans_by_like_source_unique
- page_fans_by_like_source
- page_fans_by_unlike_source_unique
- page_fans_by_unlike_source
- page_fans_gender_age
- page_get_directions_clicks_by_age_gender_logged_in_unique
- page_get_directions_clicks_logged_in_by_city_unique
- page_get_directions_clicks_logged_in_by_country_unique
- page_impressions_frequency_distribution
- page_places_checkin_mobile_unique
- page_places_checkin_mobile
- page_places_checkins_by_age_gender
- page_places_checkins_by_country
- page_places_checkins_by_locale
- page_positive_feedback_by_type_unique
- page_positive_feedback_by_type
- page_posts_impressions_frequency_distribution
- page_views_by_age_gender_logged_in_unique
- page_views_by_profile_tab_logged_in_unique
- page_views_by_profile_tab_total
- page_views_external_referrals
- page_views_logged_in_total
- page_views_logged_in_unique
- page_views_logout
- page_website_clicks_by_age_gender_logged_in_unique
- page_website_clicks_logged_in_by_city_unique
- page_website_clicks_logged_in_by_country_unique
- post_activity
- post_activity_by_action_type
- post_activity_unique
- post_impressions_fan_paid_unique
- post_impressions_fan_paid
We also removed the following DAILY PAGE METRIC CATEGORIES, because there are no metrics anymore that belong to those categories:
- BY_ACTION_TYPE
- BY_EXTERNAL_REFERRAL
- BY_LIKE_SOURCE
- BY_UNLIKE_SOURCE
Float
We have changed the primary key of the REPORT_PEOPLE and REPORT_PROJECT tables:
- For the
REPORT_PEOPLEtable, the new composite primary key is a combination of theend_date,people_id, andstart_datecolumns. Previously, the primary key was a combination of thefivetran-idandpeople_idcolumns. - For the
REPORT_PROJECTtable. The new composite primary key is a combination of theend_date,project_id, andstart_datecolumns. Previously, the primary key was a combination of thefivetran-idandproject_idcolumns.
Fullstory
We have removed the USER_SESSION and USER_EVENT tables and added two new tables, SEGMENT and SEGMENT_EVENT, to sync the user session and user event data in these tables.
Gladly
We have renamed the following columns in the tables below:
| Table Name | Old Column Name | New Column Name |
|---|---|---|
CONVERSATION_ITEM | timestamp | time_stamp |
CUSTOMER_EMAIL | primary | primary_email |
CUSTOMER_PHONE | primary | primary_number |
PUBLIC_ANSWER | language | languages |
TASK | timestamp | time_stamp |
Google Analytics 4 Export
We have added a new column, is_active_user, to the EVENT table.
HappyFox
We have added a new table, USER_CUSTOM_FIELD.
We have removed the custom_id column from the USERS table.
Helpshift
We have removed the ANALYTIC_SENSAI_PREDICT table as Helpshift has deprecated it.
incident.io
We have renamed the array column to arrays in the CATALOG_TYPE_SCHEMA_ATTRIBUTE table.
We have changed the primary key of the IDENTITY_UTILITY_ROLE table. The new composite primary key is a combination of the index and identity_utility_name columns. Previously, the index column was the primary key.
We have removed the IDENTITY_UTILITY table.
Jira
We have added a new table, SPRINT_BOARD, to store information on sprint and board relationships.
The SPRINT.board_id column stores the ID of the board the sprint was originally added to.
LaunchDarkly
We have added a new primary key column, fivetran_id, to the FLAG_DEFAULT_PROJECT table.
We have changed the primary key of the FLAG_DEFAULT_PROJECT_TAG table. The new composite primary key is a combination of the index and _fivetran_id columns.
Looker
We have changes the primary keys of the DIALECT_CONNECTION_TEST table. The new composite primary key is a combination of the connection_test and connection_name columns.
We have changed the primary keys of the USER_ATTRIBUTE_VALUE table. The new composite primary key is a combination of the id and user_id columns.
We have renamed the column column to columns in the DASHBOARD_LAYOUT_COMPONENT table.
We have renamed the limit column to limits in the DASHBOARD_LOOK_QUERY table.
We have renamed the order column to orders in HOMEPAGE_ITEM table.
We have renamed the primary key column, tag to tags, in INTEGRATION_REQUIRED_FIELD table.
Mailgun
We have added the following new tables to incrementally sync the data for domain events:
EVENTEVENT_TAGEVENT_MESSAGE_ATTACHMENTEVENT_MESSAGE_RECIPIENTEVENT_ROUTE
Microsoft Advertising
We have added the following reporting tables:
AGE_GENDER_AUDIENCE_DAILY_REPORTAGE_GENDER_AUDIENCE_HOURLY_REPORTBUDGET_SUMMARY_DAILY_REPORTDSA_AUTO_TARGET_PERFORMANCE_DAILY_REPORTDSA_AUTO_TARGET_PERFORMANCE_HOURLY_REPORTDSA_CATEGORY_PERFORMANCE_DAILY_REPORTDSA_CATEGORY_PERFORMANCE_HOURLY_REPORTDSA_SEARCH_QUERY_PERFORMANCE_DAILY_REPORTDSA_SEARCH_QUERY_PERFORMANCE_HOURLY_REPORTGEOGRAPHIC_PERFORMANCE_DAILY_REPORTGEOGRAPHIC_PERFORMANCE_HOURLY_REPORTNEGATIVE_KEYWORD_CONFLICT_REPORTPROFESSIONAL_DEMOGRAPHICS_AUDIENCE_DAILY_REPORTPROFESSIONAL_DEMOGRAPHICS_AUDIENCE_HOURLY_REPORT
We are gradually rolling out this change to all existing connections.
By default, we select all new tables for the sync. You can sync them for free until March 6, 2024. Be sure to exclude the tables that you don't want to count towards paid Monthly Active Rows (MAR) before this date.
PagerDuty
We have added a new primary key column, _fivetran_id, to the PAUSED_INCIDENT_REPORTING_ALERT table.
We have changed the primary key of the PAUSED_INCIDENT_TRIGGERED_AFTER_PAUSE_ALERT and PAUSED_INCIDENT_RESOLVED_AFTER_PAUSE_ALERT tables:
For the
PAUSED_INCIDENT_TRIGGERED_AFTER_PAUSE_ALERTtable, the new composite key is a combination of theid,service_id, and_fivetran_id(PAUSED_INCIDENT_REPORTING_ALERT) columns.For the
PAUSED_INCIDENT_RESOLVED_AFTER_PAUSE_ALERTtable, the new composite key is a combination of theid,service_id, and_fivetran_id(PAUSED_INCIDENT_REPORTING_ALERT) columns.
Playvox
We have renamed the following columns in the tables below:
| Table Name | Old Column Name | New Column Name |
|---|---|---|
CALIBRATION_ANALYST_SECTION | percent | percentage |
COACHING | snapshot | snapshots |
WORKLOAD_ASSIGNMENT_FILTERS | group | groups |
Salesforce Marketing Cloud
We have added the following columns to the JOURNEY table and assigned version column as the primary key for the table:
category_idchannelcreated_datedefinition_typeentry_modeexecution_modeexitslast_published_datemeta_datamodified_datenotifiersscheduled_statusstatsversion
We have added the following columns to the ACTIVITY table and assigned journey_version column as the primary key for the table:
descriptionjourney_versionmeta_dataschema
Statsig
We have added the following new tables:
DYNAMIC_CONFIGDYNAMIC_CONFIG_TAGDYNAMIC_CONFIG_RULEDYNAMIC_CONFIG_RULE_CONDITIONGATEGATE_TAGGATE_RULEGATE_RULE_CONDITIONGATE_RULE_CONDITION_TARGET_VALUE
Survicate
We have removed the survey_id column as a part of the composite primary key for the following tables:
BUTTON_NEXT_RESPONSEDATE_RESPONSEDROPDOWN_RESPONSEEMPTY_RESPONSEFORM_RESPONSEMATRIX_RESPONSEMULTIPLE_RESPONSENPS_RESPONSERANKING_RESPONSERATING_RESPONSERESPONSESINGLE_RESPONSEMILEY_SCALE_RESPONSETEXT_RESPONSE
Tableau
We have changed the primary keys of the DATA_SOURCE_REVISION and WORK_BOOK_REVISION tables:
- For the
DATA_SOURCE_REVISIONtable, the new composite primary key is a combination of therevision_numberanddatasource_idcolumns. - For the
WORK_BOOK_REVISIONtable, the new composite primary key is a combination of therevision_numberandworkbook_idcolumns.
We no longer include the index column as a part of the composite primary key for these tables.
Twilio
We have added a new table, VERIFICATION_SERVICE.
Vitally
We have renamed the timestamp column to time_stamp in the CONVERSATION_MESSAGE table.
WooCommerce
We have added the following new metadata tables:
COUPON_METADATACUSTOMER_METADATAORDER_LINE_ITEM_METADATAORDER_METADATAPRODUCT_METADATAPRODUCT_VARIATION_METADATAREFUND_METADATA
We have added two new tables, ORDER_LINE_ITEM and REFUND_LINE_ITEM.
We have removed the LINE_ITEM and METADATA tables.
We have changed the composite primary keys of the ORDER_LINE_ITEM_TAX and REFUND_LINE_ITEM_TAX tables:
- For the
ORDER_LINE_ITEM_TAXtable, the new composite primary key is a combination of theid,order_id, andorder_line_item_idcolumns. - For the
REFUND_LINE_ITEM_TAXtable, the new composite primary key is a combination of theid,refund_id, andrefund_line_item_idcolumns.
Previously, the composite primary key of these tables was a combination of the id and line_item_id columns.
Zendesk Support
We have added two new tables, TICKET_CHAT and TICKET_CHAT_EVENT. We are gradually rolling out this change to all existing connections.
Improvements
Airtable
Airtable has deprecated support for API key based authentication. All Airtable connections now use OAuth 2.0 authorization.
Airtable-enterprise connectors switching to OAuth 2.0 will experience a temporary increase in data usage (MAR spike) during the first sync. This is because tables must be re-imported due to lost access to API key webhooks for incremental updates.
After successful OAuth 2.0 authentication, we create new webhooks based on the available source quota for incremental syncs.
Amazon DocumentDB
We now support parallel processing to speed up the connector's initial sync. We have also added the functionality in the connector setup form where you can now opt to add one or more replica nodes. Fivetran will use the replicas to improve the initial sync performance and balance resource utilization across the replicas. For more information, see our setup instructions.
Auth0
We now use the List users endpoint of the Auth0 Management API to sync the USERS table. Previously, we used the Export users endpoint to sync this table.
We now incrementally sync the USERS table and its child tables to capture new records.
We are gradually rolling out this change to all existing connections.
AWS MSK destination
Our AWS MSK destination is now generally available. Read our AWS MSK destination documentation.
Braintree
The Braintree connector now supports priority-first sync. Priority-first syncs fetch your most recent data first so that it's quickly ready for you to use. Braintree's priority-first syncs fetch the most recent 2 days' worth of data from the CREDIT_CARD_VERIFICATION table. To learn more, see our priority-first sync documentation.
Calendly
We have now removed the data types for all columns to prevent sync failures.
Close
We now incrementally sync the CONTACT and LEAD tables and their child tables to capture new records. We also re-import these tables and their child tables once a week to capture updates and deletes.
Copper
We have updated the sync strategy for the PEOPLE table to ensure data integrity. We now use data from the date_modified column to incrementally sync the table. We also re-import the table once a week to capture deletes.
Customer.io
Our Customer.io connector is now generally available. Read our Customer.io connector documentation.
dbt Cloud
You can now specify your custom API base URL while setting up your connector. To support this enhancement, we have made the following changes:
- Added a new option, CUSTOM, to the API server region drop-down menu and a new field, Access URL, to the connector setup form.
- Added a new parameter,
custom_url, to the Fivetran REST API.
For more information, see our setup instructions and REST API documentation.
Google Ad Manager
We have added a new configuration option, Custom dimensions, to the connector setup form. You can now select and sync custom dimensions in reports. For more information, see our setup instructions.
Google Ads
We have introduced a 1-hour minimal sync frequency for custom reports to reduce the load on Google Ads API based on the following resources:
EXPANDED_LANDING_PAGE_VIEWGEOGRAPHIC_VIEWLANDING_PAGE_VIEWSEARCH_TERM_VIEW
Google Analytics 4 Export
Our Google Analytics 4 Export connector is now generally available. Read our Google Analytics 4 Export connector documentation.
Iterable
We now capture deletes for the TEMPLATES_HISTORY table.
LearnUpon
We now sync all versions of your courses, including the archived versions, into the COURSE table. Previously, we synced only the latest versions of the courses into this table.
Oracle Fusion Cloud Applications
We now convert the data types for columns with the suffix, weighting, from NUMERIC to DOUBLE.
We now convert the data types for columns with scale value not equal to 0 or precision value greater than 18, from NUMERIC to DOUBLE.
Outbrain
We have added the Pull archived campaigns option for reports in the setup form. If you want to sync data for archived campaigns, set the toggle to ON. For more information, see our Outbrain documentation.
PostgreSQL
We now support PostgreSQL version 16. For more information, see our PostgreSQL documentation.
We now sync unknown data types to the destination as STRING.
S3 Data Lake
We now create a file, sequence_number.txt, to track the changes made to the Iceberg tables in your destination. We create this file in each table's metadata folder. Be sure not to delete these files from your destination.
Salesforce
History mode for the Salesforce connector is now generally available.
We have upgraded our Salesforce connector from version 59.0 to 60.0 of the Salesforce REST API. Learn more about the changes in Salesforce's changelog. We are gradually rolling out this change to all existing connections.
SAP Concur
We now use API v4 of SAP Concur to sync the LIST table. Previously, we used API v3 of SAP Concur to sync the table. To ensure data integrity, we recommend that you re-sync the LIST table. We are gradually rolling out this improvement to all existing connections.
ShipHero
We have changed the data types of following columns in the tables below:
| Table Name | Column Name | Old Data Type | New Data Type |
|---|---|---|---|
INVENTORY_CHANGE | created_at | instant | instant "iso-date-time" |
LINE_ITEM_PICK | created_at | instant | instant "iso-date-time" |
PACK_PER_DAY | created_at | instant | instant "iso-date-time" |
PURCHASE_ORDER | po_date | instant | instant "iso-date-time" |
RETURN | created_at | instant | instant "iso-date-time" |
Shortcut
We now incrementally sync the STORY table and its child tables to capture new records.
SonarQube
We have renamed the API Key field to User token in the connector setup form. We have also modified our REST API configuration parameters and replaced the api_key parameter with user_token. For more information, see our setup instructions and REST API config.
SQL Server
Our SQL Server connector can now sync tables without primary keys using Fivetran Teleport Sync.
Teamwork
We now incrementally sync the ACTIVITY table to capture new records.
Tempo
We now re-import the TIMESHEET_APPROVAL table daily to capture updates and deletes. Previously, we re-imported this table weekly.
Workday HCM
We have added support for Workday Custom and Calculated fields. For more information about configuring custom and calculated fields, see our documentation, setup instructions, and REST API.
We have released a pre-built, dbt Core-compatible data model for Workday HCM. Find the model in Fivetran's dbt hub or data models documentation. Learn more about our dbt Core integration in our Transformations for dbt Core documentation*.
* dbt Core is a trademark of dbt Labs, Inc. All rights therein are reserved to dbt Labs, Inc. Fivetran Transformations is not a product or service of or endorsed by dbt Labs, Inc.
Xero
We now make individual API calls for each Xero's asset once a week. Previously, we made individual API calls with every sync. For more information about assets, see Xero's API documentation.