How to Export Data from Salesforce Financial Services Cloud
Learn every method to export Salesforce FSC data — Data Export Service, Data Loader, Reports, and API — with FSC-specific limits, file handling, and relationship pitfalls.
Exporting data from Salesforce Financial Services Cloud (FSC) is harder than exporting from standard Sales or Service Cloud — and most teams don't realize this until they're staring at 30+ disconnected CSV files with no idea how to reassemble Household relationships.
No single native tool exports a complete, relationally intact copy of your FSC data. The Data Export Service gives you raw CSVs. Data Loader requires manual SOQL per object. Reports cap out at 100,000 rows. None of them preserve the Household → Person Account → Financial Account hierarchy that makes FSC data meaningful.
A complete FSC export typically combines four lanes: the native Data Export Service for org-wide CSV backups, Data Loader or Bulk API for targeted object pulls, a separate workflow for Files and Attachments, and Metadata API or CLI retrieval if you also need record types, layouts, flows, and custom fields.
If your goal is a quick backup, use the Data Export Service. If your goal is migration or warehousing, use Data Loader or the APIs. If your goal is a spreadsheet for business users, use Reports. If your org stores KYC documents, statements, or other large binaries, treat files as their own extraction workstream.
A weekly org export is not a migration-ready extract. Salesforce's native export gives you CSV files with raw IDs. Metadata must be retrieved separately. In FSC, that means you'll be reconstructing households, person-account relationships, and file links after every download.
Why Exporting Data from Salesforce FSC Is Uniquely Complex
Standard Salesforce orgs use a straightforward Account → Contact → Opportunity model. FSC adds an entire layer of financial-services-specific objects and relationships on top.
FSC uses standard Salesforce objects like Account, Opportunity, and Case, then extends that foundation with the Financial Account Data Model — which includes objects to track financial accounts, transactions, assets, and more.
The key FSC-specific objects you need to export:
FinServ__FinancialAccount__c— Represents a financial account such as an investment account, bank account, or insurance policy.FinServ__AccountAccountRelation__c— Represents a relationship between two accounts, such as between a household and a business account.AccountContactRelation(with FinServ custom fields) — Represents the relationship between an individual (specifically the contact part of the individual) and the household (account) that the individual is a member of.FinServ__FinancialHolding__c— Holdings in investment accounts (shares, bonds, etc.)FinServ__FinancialGoal__c— Client financial goalsFinServ__AssetsAndLiabilities__c— Assets or liabilities not in financial accountsFinServ__FinancialAccountRole__c— Links people/entities to financial accounts with rolesFinServ__IdentificationDocument__c— KYC and identity verification documentsFinServ__LifeEvent__c— Life events that affect financial planning
Business accounts represent both B2B clients and households. A household is a type of business account that collects related individuals — like a group of family members — so you can view and manage their financial lives collectively. Business accounts are defined as a household with the related Party Relationship Group object. Other objects connect business, households, and individuals to each other and track their relationships.
Then there are Person Accounts, which FSC uses heavily. In the Salesforce UI, a Person Account looks like a single, unified record. Under the hood, a Person Account combines fields from the standard Account and Contact objects. When you create a Person Account, the data is still stored in separate Account and Contact records. This dual-record nature means a simple Account CSV export won't capture the full picture.
When you export from an FSC org, Person Accounts appear in both the Account CSV and the Contact CSV. If your export consumer doesn't understand this, you'll get phantom duplicates or orphaned records.
Households and relationship networks compound the complexity. The FSC Groups and Household model includes Account, AccountAccountRelation, AccountContactRelation, ContactContactRelation, PartyRelationshipGroup, and Person Accounts. If you export only top-level account records, you don't have the relationship graph that makes FSC useful.
There are product-specific edge cases too. If you deactivate an AccountContactRelation between a business and an individual, you can't create a new relation between them later — you must reactivate the original. Each Financial Account must have at least one active Primary Owner role or load errors occur. These are exactly the kinds of issues that bite teams trying to rebuild FSC from flat files.
Before you export anything, inventory the actual schema in your org. Salesforce now documents newer Financial Account Management standard objects, but many FSC orgs still use managed-package data model objects prefixed with FinServ__. Two FSC orgs can look similar in the UI and still require different extraction plans.
For a deeper look at why flat CSV files struggle with relational CRM data, see our breakdown of Using CSVs for SaaS Data Migrations.
Method 1: Using the Native Salesforce Data Export Service
What it is: A built-in tool accessible from Setup → Data Export that generates a ZIP archive of CSV files covering all (or selected) objects in your org.
Step-by-step
- From Setup, enter "Data Export" in the Quick Find box, then select Data Export and choose Export Now or Schedule Export.
- Select encoding (UTF-8 for most cases).
- If you want images, documents, attachments, and so on included in your data, select the appropriate options.
- Select "Replace carriage returns with spaces" to have spaces instead of carriage returns or line breaks in your export files. This is useful if you plan to use your export files for importing or other integrations.
- Select the objects to include — check the "Include all data" box to capture FSC custom objects.
- Click Start Export (or Save for a scheduled export).
- Wait for the email notification, then download the ZIP files from the Data Export page.
Frequency and edition limits
Salesforce restricts how frequently full data exports can run: weekly exports are available once every 7 days in Enterprise, Performance, and Unlimited Editions. Monthly exports are available once every 29 days in all other supported editions.
File and download limits
- Exported data is packaged into ZIP files of roughly 512 MB each. Large exports automatically split into multiple ZIPs.
- After Salesforce generates the export files, they stay available for 48 hours. Once this window ends, the files are automatically deleted.
- Formula and roll-up summary fields do not export because Salesforce calculates their values dynamically.
- Records in the Recycle Bin are not included in exports.
- Salesforce does not provide an SLA for the completion of Data Export. Export jobs may take several days or longer if system queues are busy.
- You can maintain only one active Data Export schedule per org.
Winter '26 rate limiting
Salesforce now enforces a sequential download policy for export files: users can download only one export file at a time. A 60-second wait is required before downloading the next file. Starting a second download too soon triggers an HTTP 429 "Too Many Requests" error.
The restriction applies only to manual downloads performed through Setup → Data Export. It does not affect API-based tools, Data Loader, command-line scripts, or any automated integrations. This is a UI-only safeguard, not a platform-wide limit.
What the Data Export Service doesn't give you
The Data Export Service is archive-grade, not restore-ready. It produces raw data, but without the essential components that make Salesforce function. No metadata, no relationships, and no automation are included. Essentially, it's just a collection of standalone records that are disconnected from each other.
For FSC specifically, this means the CSV for FinServ__FinancialAccount__c contains a raw PrimaryOwner__c field with a Salesforce ID like 001Xx000003abc. To know who that is, you need to manually VLOOKUP against the Account or Contact CSV. Multiply that by every relationship object in the FSC model, and the problem scales fast.
It's important to understand that these exports are not designed to act as backups, and the Data Export Service doesn't include functionality to restore your data from exported files.
Method 2: Extracting FSC Objects with Salesforce Data Loader
What it is: Data Loader is a client application for the bulk import or export of data. Use it to insert, update, delete, or export Salesforce records.
Data Loader gives you targeted, object-by-object control — exactly what you need for FSC, where you have 15+ custom objects to extract.
Step-by-step
- Download and install Data Loader (available for Windows and macOS).
- Click Export. If you want to also export archived activity records and soft-deleted records, click Export All instead.
- Log in with your Salesforce credentials.
- Select the object to export (e.g.,
FinServ__FinancialAccount__c). - Write or build a SOQL query to define which fields and records to extract.
- Choose a destination folder and filename.
- Run the export and review the output CSV.
Example SOQL queries for FSC objects
Exporting all Financial Accounts with their primary owner and balance:
SELECT Id, Name, FinServ__PrimaryOwner__c, FinServ__Balance__c,
FinServ__FinancialAccountType__c, FinServ__Status__c,
FinServ__FinancialAccountNumber__c,
FinServ__OpenDate__c, FinServ__CloseDate__c
FROM FinServ__FinancialAccount__cExporting Household-to-Individual relationships:
SELECT Id, AccountId, ContactId, FinServ__Primary__c,
FinServ__PrimaryGroup__c, FinServ__Rollups__c
FROM AccountContactRelationExporting Account-Account relationships (e.g., Household-to-Business):
SELECT Id, FinServ__Account__c, FinServ__RelatedAccount__c,
FinServ__AssociationType__c
FROM FinServ__AccountAccountRelation__cExporting Person Accounts specifically:
SELECT Id, Name, IsPersonAccount, PersonEmail,
PersonMobilePhone, LastModifiedDate
FROM Account
WHERE IsPersonAccount = trueLimits to know
- Data Loader is supported for loads of up to 150 million records with a maximum file size of 150 MB. Salesforce's FSC documentation notes that key objects like Financial Account, Financial Account Role, and Assets and Liabilities can reach 70 million records at rest. For large FSC estates, a casual export becomes an engineering workstream.
- Every export consumes Salesforce API calls, which are subject to daily limits based on your edition. Exceeding these limits halts further exports until the next reset.
- Data Loader works only in batches and does not support real-time or event-driven exports.
- Scheduling automated exports requires command-line scripting and use of external schedulers, which may be challenging for non-technical users.
For very large tables, move to Bulk API 2.0 query patterns instead of trying to brute-force a single synchronous pull. Salesforce's PK Chunking uses record IDs to split a query automatically, with a default chunk size of 100,000 and a configurable maximum of 250,000 — built specifically for first-time full extracts across tens or hundreds of millions of rows.
When exporting FSC data with Data Loader, export relationship objects after their parent objects. You need the Account IDs from your Account export to make sense of the IDs in FinServ__AccountAccountRelation__c.
Method 3: Exporting via Salesforce Reports
Reports are the fastest way to pull a small, filtered dataset — and the worst option for a full FSC export.
How it works
- Create or open a report in Salesforce Reports.
- Find the Export option in the Edit drop-down menu. Then select the Export view: Formatted Report or Details Only.
- Formatted reports are available for export as Excel files. Details Only are available as both Excel and CSV files.
Hard limits
- You can only collect 2,000 rows of data in a formatted report. And you can export up to 100,000 rows and 100 columns in the XLSX format.
- When exporting a report in Lightning Experience as Formatted Report or .xlsx Details Only, you can export only up to 100,000 rows and 100 columns. If a report takes 10 minutes or more to export, the report export times out and fails.
- Joined reports can include a maximum of 2,000 rows and are available for export only as a Formatted Report.
- The Reports API returns only the first 2,000 rows per request and supports up to 500 synchronous report runs per hour.
When to use reports for FSC
Reports work for one-off audits: "Show me all Financial Accounts opened this quarter" or "List all Households with AUM over $1M." They do not work for full data extraction. You can't export FSC relationship objects through reports, and the row limits make them useless for orgs with more than 100,000 records in any single object.
Method 4: API-Based Extraction (REST, Bulk, or CLI)
For teams with developer resources, the Salesforce REST API, Bulk API, and CLI offer the most flexibility for extracting FSC data programmatically.
Why the API is the strongest option for FSC
- You can query any object, including all
FinServ__managed package objects. - You can traverse relationships in a single query using sub-selects.
- The Bulk API handles millions of records efficiently.
- You control the output format and can write directly to a data warehouse.
- It's the only viable path for scheduled delta exports or near-real-time extraction.
Example: REST API query for Financial Accounts with roles
curl https://yourinstance.salesforce.com/services/data/v60.0/query/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--data-urlencode "q=SELECT Id, Name, FinServ__PrimaryOwner__c, \
(SELECT Id, FinServ__RelatedContact__c, FinServ__Role__c \
FROM FinServ__FinancialAccountRoles__r) \
FROM FinServ__FinancialAccount__c"Salesforce CLI can also run SOQL and return machine-friendly JSON:
sf data query --query 'SELECT Id, Name, IsPersonAccount FROM Account WHERE IsPersonAccount = true' --jsonAPI governor limits
- Daily API call limits are edition-dependent (Enterprise: 100,000 calls/day by default).
- The REST query endpoint returns up to 2,000 records at a time. Once your result set exceeds 10,000 records, switch to Bulk API.
- Bulk API has some restrictions — for example, related objects exports are not supported by this API. You'll need separate queries for parent and child objects, then join them post-export.
- Salesforce recommends Bulk API 2.0 when requests involve 2,000 or more records or large data volumes.
Avoid data tree export for FSC
Salesforce's sf data tree export works for simple parent-child JSON but does not handle junction tables or complex relationships well. It has a 2,000-record query limit for export and 200-record-per-data-file limits on import. FSC households, relationship tables, and financial-account links are exactly the cases where tree export becomes the wrong tool.
Files, Attachments, and KYC Documents Need Separate Handling
Files are where many FSC exports quietly fall apart. Salesforce distinguishes legacy Attachments from Salesforce Files — they're different storage models with different size limits.
Legacy attachments in Notes & Attachments top out at 25 MB, while Salesforce Files can reach 2 GB over REST, 38 MB over SOAP, and 10 MB over Bulk API.
There's a visibility trap: users with View All Data still don't automatically query every file unless Query All Files is enabled. Your record export can look complete while your binary export is not.
If your export user can see parent records but not all binaries, file counts won't match business reality. Validate ContentVersion access before you start the full run.
If you attempt to export attachments, KYC documents, or files larger than 1GB, the Data Export Service frequently fails, times out, or becomes impractical to download.
The safer pattern: export file metadata (ContentDocument, ContentVersion, ContentDocumentLink) first via Data Loader or API, then download binaries separately and preserve parent-record linkage through the content objects. Don't rely on one-click zip downloads for large file sets.
The Data Export Service has no custom filtering — it's all-or-nothing for attachments, and including them dramatically increases export time and file size.
The Hidden Challenge: Rebuilding Households and Person Accounts from CSVs
This is where most FSC exports fall apart. Every native method outputs flat files with raw Salesforce IDs. Rebuilding the FSC relationship graph requires significant manual effort.
If you export a Household using the Data Export Service, you don't get a single, clean file showing the family structure. Instead, you get a fragmented mess:
- An
Account.csvcontaining the Household Account record. - Another row in
Account.csvcontaining the Account half of the Person Account. - A
Contact.csvcontaining the Contact half of the Person Account. - An
AccountContactRelation.csvcontaining the junction IDs linking them all together.
If your organization uses Person Accounts and you are exporting accounts, all account fields are included in the account data. If your organization uses Person Accounts and you are exporting contacts, person account records are included in the contact data. The same individual appears in two separate CSV files with different field sets. You must de-duplicate and merge them correctly.
Person Account fields add their own confusion. Standard contact-derived fields on person accounts use the Person prefix (e.g., PersonEmail), while contact custom fields surface with the _pc suffix. If you don't decide upfront whether Account or Contact is your source of truth for each person-level field, your exports get messy fast.
Household rollups are another trap. Financial Services Cloud supports many kinds of financial accounts, including checking accounts, savings accounts, mortgages, credit cards, investment accounts, 401(k) accounts, and insurance policies. Whatever the type of account, it rolls up to its primary owner and household. These rollup values are calculated dynamically and are not exported by the Data Export Service (formula fields are excluded).
Reciprocal relationship records add more complexity. AccountAccountRelation represents a relationship between two accounts, such as between a household and a business account. It uniquely identifies the relationship between Account and RelatedAccount, so that it can be referenced by a trigger that creates the inverse relationship record. When you export this, you get two rows per relationship (one for each direction). If you import these naively into a target system, you'll double every relationship.
The scale of the problem
A typical FSC export for a mid-size wealth management firm might include:
- 50,000 Person Accounts
- 12,000 Households
- 150,000 Financial Accounts
- 300,000 Financial Account Roles
- 80,000 Account-Account Relationships
- 200,000 Contact-Contact Relationships
Reassembling these from disconnected CSVs means running VLOOKUP or INDEX/MATCH across 6+ files, matching Salesforce IDs bidirectionally, and deduplicating reciprocal relationship records. One wrong join and you've assigned a client's $2M investment portfolio to the wrong household.
If a client is a member of multiple households (e.g., a primary residence, a family business, and a family trust), the mapping complexity multiplies further.
All FSC Export Methods at a Glance
| Method | Format | Frequency | FSC Objects | Relationships Intact | Max Records | Attachments |
|---|---|---|---|---|---|---|
| Data Export Service | CSV (ZIP) | 7 or 29 days | ✅ All | ❌ Raw IDs only | Entire org | ✅ (optional) |
| Data Loader | CSV | On-demand | ✅ All | ❌ Raw IDs only | 150M per export | Via ContentVersion |
| Reports | XLSX/CSV | On-demand | Standard + some custom | ❌ Flattened | 100K rows | ❌ |
| REST/Bulk API | JSON/CSV | On-demand | ✅ All | ⚠️ Sub-queries possible | Millions (batched) | Via ContentVersion |
| Third-party backup | Proprietary | Daily/hourly | ✅ All | ✅ (for restore only) | Unlimited | ✅ |
Best Practices for FSC Data Exports
Map your objects before you export. Don't start exporting until you have a complete list of every FSC object in your org. Use Setup → Object Manager and filter for the FinServ__ namespace to see your full inventory. Two FSC orgs can look similar in the UI and require completely different extraction plans depending on which features were enabled.
Export in dependency order. Start with Accounts and Contacts (including Person Accounts), then Households (via AccountContactRelation), then FinServ__AccountAccountRelation__c, then Financial Accounts, then roles, holdings, and goals. This makes post-export ID mapping possible.
Always include Salesforce IDs. Every export should include the Id field plus all lookup and relationship fields. These are the keys you need to reconstruct relationships.
Define the source of truth for person data upfront. Person Account fields use the Person prefix for contact-derived standard fields and the _pc suffix for contact custom fields. Decide whether each client attribute should come from Account, Contact, or person-account fields before you begin.
Validate record counts after export. Compare the row count in each CSV against the record count in Salesforce (use SELECT COUNT() FROM ObjectName in Developer Console). Discrepancies usually mean you hit a limit or a filter excluded records. Sample 10–20 Household records and verify all members and financial accounts are present.
Handle attachments as a separate workstream. KYC documents, signed forms, and other files stored as Attachments or ContentVersion records need their own export pipeline. Validate ContentVersion visibility before starting. Including attachments in the Data Export Service dramatically increases export time and file size.
Retrieve metadata in a separate bundle. Custom objects, fields, record types, layouts, flows, permission sets, and reports are not included in data exports. Use Salesforce CLI or Metadata API tooling to pull these separately if your migration requires schema definitions.
Schedule exports during off-peak hours. Set Data Export Service jobs to run during low-usage windows (weekends, overnight) to minimize performance impact on your production org.
For a reusable migration planning template, see our Data Migration Checklist.
Choosing Your Approach: Manual, Automated, or Managed
| Criteria | Manual (Data Loader / Reports) | Automated (API / ETL) | Managed Service |
|---|---|---|---|
| Setup time | Minutes | Days–weeks | Days |
| Technical skill required | Admin-level SOQL | Developer-level | None |
| Handles FSC relationships | ❌ Manual mapping | ⚠️ Custom code | ✅ Built-in |
| Recurring/scheduled | ❌ (CLI only for Data Loader) | ✅ | ✅ |
| Attachment handling | Manual per-object | Custom pipeline | ✅ |
| Best for | One-time audits | Ongoing data warehouse sync | Migration or compliance |
If you're doing a one-time audit or a quick backup, Data Loader with manual SOQL gets the job done. If you're feeding a data warehouse on a schedule, an API-based ETL pipeline is the right call.
But if your goal is a complete migration out of FSC — with all Household structures, Person Account mappings, Financial Account hierarchies, and KYC documents intact — neither manual nor automated self-service tools will preserve relational integrity without significant custom development.
Third-party backup tools like Salesforce Backup & Recover, Spanning, or Odaseva are built for disaster recovery and compliance — restoring data back into Salesforce. They don't produce migration-ready relational extracts for another platform.
When to Bring in a Migration Partner
You should consider outside help when:
- Your org has Person Accounts + Households + Financial Accounts all active (the trifecta of export complexity)
- You need to move attachments or files exceeding 1 GB per record
- Your target system requires a different data model (e.g., moving from FSC's Household model to a standard Account-Contact model)
- You can't afford to wait 7–29 days between export attempts to iterate on data quality
- Regulatory requirements demand a verified, auditable chain of custody for exported financial data
At ClonePartner, we've handled FSC migrations where the Household graph alone spanned 80,000+ relationship records. Our scripts preserve every AccountAccountRelation and ContactContactRelation link, resolve Person Account dual-record splits, and deliver migration-ready data — not disconnected CSVs that require weeks of manual reassembly.
We bypass the 7-day/29-day limits of the Data Export Service using optimized API extraction for continuous, real-time data pulls. We routinely extract KYC documents, contracts, and case attachments well over the 1GB failure threshold that breaks native Salesforce tools. And we handle the relationship mapping so your team doesn't spend weeks untangling junction objects and broken API calls.
To understand how we approach migrations without downtime, read Zero Downtime Guaranteed. For a deeper dive into the platform FSC is built on, see our Mastering Salesforce Service Cloud guide. And if you want to avoid the most common pitfalls, read 7 Costly Mistakes to Avoid When Migrating Financial Data.
Frequently Asked Questions
- Can I export Household relationships from Salesforce Financial Services Cloud?
- Yes, but not as a single file. Households are modeled via AccountContactRelation and FinServ__AccountAccountRelation__c. You must export each object separately using Data Loader or the API, then manually join them using Salesforce IDs. The native Data Export Service includes these objects but outputs them as disconnected CSVs with raw IDs.
- How often can I export data from Salesforce FSC?
- The native Data Export Service allows full exports once every 7 days for Enterprise, Performance, and Unlimited editions, or once every 29 days for Professional edition. Data Loader and API-based exports have no frequency limits — they're constrained only by daily API call limits.
- Why do Person Accounts appear in both Account and Contact exports?
- Person Accounts store data in separate Account and Contact records under the hood, even though they appear as a single record in the UI. When you run a full org export, the person's data appears in both the Account CSV (with account fields) and the Contact CSV (with contact fields). You need to reconcile both to get the complete record.
- How do I export files and attachments from Salesforce FSC?
- Handle them separately from core record exports. Export ContentVersion and ContentDocumentLink objects via Data Loader or API. Salesforce Files and legacy Attachments are different storage models with different size limits, and file visibility may require the Query All Files permission for complete extraction. The Data Export Service can include attachments but has no filtering — it's all-or-nothing.
- Does the Salesforce Data Export Service include FSC custom objects like Financial Accounts?
- Yes. When you select 'Include all data' in the Data Export Service, it includes FinServ__ managed package objects like FinServ__FinancialAccount__c and FinServ__FinancialHolding__c. However, the output is flat CSV files with raw Salesforce IDs — no relational context is preserved, and formula/rollup fields are excluded.