Skip to content

Migration guide · Wealth & Advisor CRM

Redtail to Salesforce Financial Services Cloud migration

Redtail CRMSalesforce Financial Services Cloud

Short answer

Moving from Redtail to Salesforce Financial Services Cloud (FSC) means mapping Redtail contacts, families and accounts into FSC person accounts, households and financial accounts, carrying over notes and activity history, and rebuilding Redtail workflows as cases, action plans or flows. Most firms move to gain automation, reporting and integrations Redtail cannot provide.

Why firms make this move

Redtail is a solid advisor CRM, but growing RIAs and broker-dealer teams often outgrow it: they need custodian and portfolio data on the client record, compliance-ready workflows, service tracking against SLAs, and reporting leadership can trust. Financial Services Cloud provides the household data model, action plans and integration options to do that.

The move is as much a design exercise as a data load. Deciding how families map to households, how workflows become cases or action plans, and which years of notes come across shapes the whole project.

What moves

  • Contacts and families as person accounts and households
  • Account and policy data as financial accounts (or from the custodian feed instead)
  • Notes and activities with original dates and authors
  • Workflows and their history as cases, action plans or flows
  • Tags, categories and custom fields as picklists or fields
  • Documents and attachments where licensing and storage allow

How the data maps

FromTo
ContactPerson account
Family / householdHousehold (account) with member relationships
AccountFinancial account and financial account roles
NoteNote or task with original date
ActivityTask or event
WorkflowCase, action plan or flow
TagsPicklist or multi-select field

See the field-by-field map ↓  ·  Migration architecture ↓

What to watch out for

  • Duplicate contacts and families built up over years
  • Notes that contain sensitive data needing restricted access
  • Workflow history that does not map one-to-one to cases
  • Custodian data that should come from a feed rather than the Redtail export
  • Users relying on Redtail-specific shortcuts during cutover

How Vantage Point runs the migration

  1. Discovery and data inventory: what exists, what is clean, what is worth moving
  2. Target design: objects, record types, households or companies, ownership and security
  3. Field-by-field data mapping document, signed off by business owners
  4. Cleanup and deduplication before the move, not after
  5. Test loads into a sandbox with reconciliation reports
  6. User acceptance testing with real scenarios
  7. Cutover: final delta load, integrations switched, old system set to read-only
  8. Hypercare and adoption support

Typical timeline

Typically 6 to 12 weeks, depending on data volume, years of history and the number of workflows.

Frequently asked questions

Can Redtail workflows move to Salesforce?

Yes. Active workflows are rebuilt as cases, action plans or flows, and historical workflow records can be migrated for reference.

Do we lose our notes history?

No. Notes and activities can be migrated with their original dates and authors, so advisors keep the full client history.

Last reviewed October 2, 2026 by the Vantage Point team. Browse all migration paths

Migration architecture

How data flows: Redtail to Salesforce Financial Services Cloud migration

CRM Middleware / connector layer Connected system
What syncs between systems
FromToWhatDirectionTimingHow
Redtail CRMSalesforce FSCvia Extract, clean & map Households, contacts, activities & notes → one-way test loads, then final deltamigration tooling
CustodiansSalesforce FSCvia MuleSoft / middleware Financial accounts (ongoing feed)Custodian data, not Redtail, becomes the source of truth. → one-way scheduledfile feed
Document archiveSalesforce FSCvia Data Loader or MuleSoft (SFTP) Files (ContentVersion)Salesforce cannot read an SFTP location directly; a loader or MuleSoft's SFTP connector does. Watch the rolling 24-hour API limit. → one-way batched by yearbulk file load

A typical pattern, simplified. Your design depends on licenses, data ownership and volumes, which we settle in discovery.

Field-level map

Redtail to Salesforce Financial Services Cloud: field by field

49 mappings we start from on this migration, 41 of which need a transform, a lookup or a decision. Every project gets its own signed-off version; this is the baseline.

FromToHowNotes
Contact (individual)Name, DOB, contact details Person AccountFirstName / LastName / PersonBirthdate req direct Confirm Person Accounts are enabled before loading. Some firms use Contact plus Household instead.
ContactPhones, emails and addresses (multiple) Person AccountPrimary fields + Contact Point records split Primary values go to standard fields. Extras go to Contact Point records or custom fields.
Household / familyHousehold name Account (Household record type)Name req direct
Family member + roleRelationship Account Contact RelationshipRoles / Primary Group flag req association Head of household, spouse, dependent and so on become ACR roles.
Contact (business)Organization record Account (Business)Name, address, phone direct
ContactType / Category / Status Person AccountClient category and status fields picklist map Clean up the value lists before mapping. They are often inconsistent.
ContactServicing advisor / writing advisor Person AccountOwnerId / primary advisor field req lookup Match advisors to Salesforce users by email.
ContactTags Person AccountMulti-select picklist or Topics picklist map
ContactUser-defined fields Person AccountCustom fields manual review Keep only the fields someone still uses.
ContactTax ID / SSN —— drop Not migrated by default. Bring it only with an approved security design.
Financial accountAccount number, type, balance Financial AccountAccount number, type, balance manual review If a custodian feed will run, it becomes the source of truth. Redtail accounts are reference only.
Financial accountHistorical balances and posted transactions Financial Account / Financial Account TransactionBalance and transaction records direct Load balances and posted transactions as of the extract date instead of recalculating them. Fees and adjustments may have been edited or waived in the source.
ActivitiesCategory (category later deleted) Task / EventCategory picklist / Subject picklist map Activities whose category was deleted in Redtail can export with a blank category while the Redtail screen still shows a default one. Decide before mapping whether to keep the original category name (as an inactive picklist value or in the subject) or map blanks to a default, so history does not come across uncategorized.
ActivitiesActivities for former clients or with no linked contact —— drop Agree a scope filter before the first realistic test load, for example drop former-client activities older than an agreed cutoff and activities not tied to any contact. Client status usually has to come from a separate export, so line that up early.
ActivitiesActivities (calls, meetings, tasks) Task / EventSubject, dates, WhoId / WhatId association
Activities (events)Activity date and start date EventActivityDate / StartDateTime derive Salesforce rejects an event whose activity date differs from its start date. Set both from the source start date; a completion date cannot be used for events. Tasks do not have this constraint.
Activities (tasks)Completed by Task— drop Salesforce Task has no completed-by field, only OwnerId (assigned to). Drop it from the mapping, or keep the name in the description if the history matters.
ActivitiesCreated by (no last-modified-by in the source) Task / EventCreatedById / LastModifiedById lookup The source has no last-modified-by, so reuse the created-by user for both. Needs the "Set Audit Fields upon Record Creation" permission; check after the load that LastModifiedById did not fall back to the load user.
ActivitiesCategory Task / EventSubject concat Prefix the category to the subject (for example "Client review: …") so it stays visible in list views and search without a custom field.
Activities / tasksAssigned user (former or inactive employee) Task / EventOwnerId lookup Users who will not exist in Salesforce map to an agreed placeholder user. Keep the original name in a text field if it matters for history.
Activities (events)Location EventLocation direct Map the source event location to the standard Location field so it shows on the event and in calendar views.
ActivitiesDetails (linked steps, step tasks, notes and comments) Task / EventDescription concat There is no single details field in the source. Build the description by joining the activity's linked step, step-task, note and comment text, and have the business confirm the result on a sample before the full load.
Activities (tasks)Activity date TaskActivityDate derive Take the date from the activity record itself, not from a join to completed-instance records, which can return the wrong date. Agree which record date to use (due, completed or last updated) and check it on a sample.
ActivitiesAdded-by user vs. user who worked the activity Task / EventOwnerId derive The added-by user is often not the person who did the work, so owners come out wrong if it is mapped straight across. Where the source records who completed or last worked the activity, use that user and fall back to added-by. Spot-check owners with the client before the production load.
NotesNotes ContentNoteContent direct Preserve note dates and authors.
Notes / activitiesRich-text body (HTML, line breaks) ContentNote / TaskContent / Description derive CSV-based pipelines often strip HTML and line breaks. Swap line breaks for a placeholder before export and restore them after load.
Notes / activitiesText with non-ASCII characters ContentNote / Task / EventContent / Subject / Description derive One stray non-ASCII character can make a cleanup or CSV step silently drop whole rows. Keep extracts in UTF-8, replace or normalize the characters instead of discarding the row, and reconcile record counts after every transform step.
NotesNotes that only record a completed activity or workflow —— drop System-generated completion notes duplicate the activity or workflow record. Filter them out instead of migrating them as separate notes.
NotesComments on excluded workflow-generated notes CaseDescription concat Dropping completion notes also drops any comments on them. Join comment → note → note association → workflow and append the comments to the matching Case. If the join is impractical, add the few that remain by hand after the load.
WorkflowsWorkflow templates Action Plan templates / FlowTemplate steps rebuild
Workflow stepStep comments and notes Action Plan item / TaskDescription concat Notes tied to a workflow step go inside that step, not as standalone notes.
WorkflowCompleted by Action Plan / TaskCompleted-by field or description derive There is no single completed-by value. Decide whether it comes from the workflow owner, the user on the last completed step, or a completion note, and record the rule in the mapping.
Workflow (completed instance)Workflow template CaseRecordTypeId / Type lookup Historical workflows can load as closed Cases. Keep a template-to-record-type table so each workflow lands on the right record type, and drive Type and other template-dependent picklists from the same table.
Workflow (completed instance)Name, description, category and completed steps CaseSubject / Description concat Put the category in the body as well as any field, since it shows when a workflow was cancelled. Roll completed steps into one dated block per Case: step, assignee, due date, completed date, comments.
Workflow (completed instance)Created, due and completion dates CaseCreatedDate / ClosedDate / due date field derive Setting CreatedDate and the created-by user on insert needs the "Set Audit Fields upon Record Creation" permission for the load user. Confirm the closed date can be set on insert, or keep the source completion date in its own field.
ImagingDocuments FilesContentVersion manual review Check document volume. Large archives often stay in a document system with links.
Workflow step (subtasks)Completed date TaskStatus / ActivityDate derive Take the completed date from each subtask, not from its parent step. A step-level join stamps every subtask with the step's date, so the history shows work finishing on the wrong day.
Workflow step (step tasks)Due date (shown in Redtail, not always stored) TaskActivityDate derive Redtail can display step due dates that it calculates from the workflow due date, so the export may have no value. Either derive the date from the workflow-level due date or leave it blank, and have the business decide how blank due dates should appear.
WorkflowLong description and instructions Case / Action Plan itemDescription direct Long workflow text can be cut short by an intermediate staging table or spreadsheet with a small column size. Compare source and output text lengths on a sample before loading; Description holds up to 32,000 characters.
ImagingDocument-to-record link ContentVersionFirstPublishLocationId association Set FirstPublishLocationId when creating the ContentVersion so the file links to its record in the same API call. Plan batches by total file size, not record count.
Notes and documents (repeat loads)Source note / file ID ContentNote / ContentVersionLoad tracking manual review Notes and files cannot be upserted by external ID. A full reload means delete and reinsert. For deltas, track loaded source IDs in a staging table and insert only new items. Load the most recent years first.
ContactRedtail Contact ID Person AccountRedtail_ID__c (external ID) req direct
All migrated recordsAccount, owner and created-by references All target objectsAccountId / OwnerId / CreatedById lookup Resolve lookups through external ID fields at load time (legacy contact ID on Account, legacy user ID on User). Salesforce record IDs copied from a sandbox do not exist in production.
Workflows and activitiesSource record ID Case / Task / EventExternal ID field derive Prefix the source ID by object type (for example RT-WF- for workflows, RT-ACT- for activities). IDs stay unique across objects, show where each record came from, and let reloads upsert instead of duplicating.
ContactMerged or duplicate contacts Person AccountRedtail_ID__c (external ID) manual review When source contacts were merged, decide which original ID becomes the external ID before loading; record order changes the result.
Household / familyFamily ID Account (Household)External ID / Account Contact Relationship req derive Don't key households on the family ID unless it is unique and consistent in the export. Key accounts and contacts on the Redtail contact ID, then use Account Contact Relationships to place each member in the right household.
Activities (events)Linked person and record EventWhoId / WhatId association Many source events have no linked person. Leave WhoId blank rather than inventing a placeholder contact, set WhatId to the household or account where one applies, and find events with no date before loading, since every event needs a start date.
Activities (tasks)Related household or account (bulk load) TaskWhatId / WhoId association Large task loads can fail with row-lock errors when many tasks point at the same account. Sort the file by parent record, load in serial mode or smaller batches, and switch off or bypass automations on Task for the load user.
Activities and workflows (business contacts)Linked business contact Task / Event / CaseWhatId / AccountId association Business contacts load as business Accounts, not Contacts, so activities and workflows tied to them can't use WhoId. Look up the business Account by its Redtail contact ID and set WhatId (AccountId on Cases), and keep business and individual records in one combined load file. Check that business-linked tasks and events land with WhatId populated before the full load.

Field names are the platforms' standard API names; your org's custom fields are mapped during discovery. What the "How" labels mean

How labels
direct
Value copies across unchanged.
picklist map
Each source value is mapped to a target value.
lookup
Matched to an existing record, such as a user by email.
association
Becomes a relationship between records, loaded in a later pass.
derive
Calculated or cleaned during the load.
split / concat
One field becomes several, or several become one.
rebuild
Configuration or automation that is rebuilt rather than moved.
drop
Not migrated, deliberately.
manual review
Needs a decision with your team before the load.