Redtail to Salesforce migration works when you treat it as schema translation, not CSV shuffling: rebuild households, split activities, preserve owners, and load with Bulk API 2.0.
A technical guide to migrating from Redtail CRM to Salesforce FSC: data model mismatch, Household reconstruction, API limits, and cutover execution.
Read this first
Pair-specific gotchas that catch teams out. Each one has cost somebody a weekend.
Salesforce FSC now defaults to Person Accounts for new installations
The older Individual model (separate Account + Contact records) is only supported for existing implementations. If you're building a greenfield FSC org for this migration, use Person Accounts.
Household membership is not kinship
Salesforce Help explicitly notes that FSC does not directly track how members within a household are related. If you care about spouse, child, dependent, trustee, or beneficiary semantics, model those separately with Contact-Contact Relationship objects or custom logic — do not assume household membership preserves them. (help.salesforce.com)
Don't create Salesforce custom fields for UDFs that are empty across >90% of records
Ask your operations team whether the field is actually used before migrating it. Map repeated or multi-valued Redtail UDF patterns to child custom objects, not single custom fields — a flattened field-per-occurrence design is quick to load and painful to operate.
Request the full Database Backup from the Redtail Admins Only section
This provides a static .zip file containing your entire dataset as a MySQL dump. This approach bypasses the API rate limits entirely for the historical load — pulling hundreds of thousands of historical records via the API alone will take weeks and inevitably drop connections.
If you load Person Accounts before Household Accounts, you cannot create ACR records in
If you load Person Accounts before Household Accounts, you cannot create ACR records in the same batch. The Household Account must exist and have a Salesforce ID before the ACR can reference it. Getting the load order wrong means a second pass to update records — doubling your API call budget.
The runbook
Work top to bottom. Tick steps as you go — your progress is saved in this browser.
01 Discovery Agree scope, pipeline design and success criteria before touching data.
Objective A scope covering every object in the revenue model, with sales leadership signed up to the pipeline design.
Keep these open
-
Inventory every object in Redtail CRM
Count accounts, contacts, leads, deals or opportunities, activities, notes, emails, files, products and quotes. Activity and email history is usually the largest object by an order of magnitude and the one people forget to size.
Data Profiler Get real record counts instead of estimating from memory -
Map the current pipeline and agree the target model
Document every pipeline, stage, probability and required field, then agree the Salesforce model with sales leadership. Migrating a broken pipeline faithfully is a wasted opportunity; redesigning it mid-migration is a wasted migration.
Stage changes alter historical conversion rates. Agree how you will restate reporting before you change the model.
-
Catalogue integrations and automation
List every system touching Redtail CRM: marketing automation, quoting, billing, ERP, data enrichment, dialler, BI. Each is a separate cutover task with its own owner, and each can silently write bad data into your new CRM.
-
Capture the reporting that must survive
Interview the people who actually live in the dashboards — forecast, pipeline coverage, rep activity, cohort conversion. Every one of these needs the underlying fields to migrate, which frequently expands the scope.
-
Build the business case and pick the go-live date
Model licence delta, implementation effort and productivity dip. Then choose the date deliberately: mid-quarter is disruptive, quarter-end is worse. Most teams land on the first week of a new quarter.
COI & ROI Calculator Build the 36-month business case you will need for sign-off
Redtail CRM → Salesforce specifics
- Scalability ceilings
- Redtail works well for solo advisors and small teams, but multi-branch structures, OSJ compliance processes, and cross-team collaboration strain its architecture. Salesforce FSC supports those organizational patterns natively.
- Automation limits
- Redtail's workflows require manual steps and lack the conditional logic that growing firms need for onboarding, compliance reviews, and service scheduling. Salesforce Flows replace those manual steps with programmable automation.
- Ecosystem integration
- Redtail integrates with a narrower set of custodians, portfolio tools, and marketing platforms. Salesforce's AppExchange and MuleSoft connectors give firms access to thousands of pre-built integrations — Orion, Black Diamond, Tamarac, DocuSign, and more.
- Reporting and AI
- Salesforce provides predictive analytics, next-best-action recommendations, and AI-driven client engagement scoring that Redtail does not offer.
Don't move on until
- Object counts confirmed for accounts, contacts, deals and activities
- Target pipeline and stage model agreed with sales leadership
- Reporting requirements captured from the people who use the reports
02 Data Audit CRM data is usually dirtier than anyone expects. Find out how dirty.
Objective A profiled export with duplicates, ownership gaps and relationship integrity all quantified and triaged.
Keep these open
-
Export and profile every object
Profile null rates, distinct values and type consistency across all objects. Pay attention to fields sales reps were supposed to fill in: an 80% null rate on a field your forecast depends on is a business finding, not a data one.
Data Profiler Profile the Redtail CRM export for nulls, outliers and type drift -
Quantify duplicates and agree the merge policy
Measure duplicate accounts (same company, different spellings and suffixes) and contacts (same email, or same person at a renamed company). Agree survivorship rules before merging: which record wins, which fields, and what happens to the activity history on the loser.
Merging before you have agreed survivorship rules destroys history irreversibly. Decide first, merge second.
Data Cleaner Strip empty rows, stray whitespace and dead columns -
Verify relationship integrity
Check every deal has a valid account, every contact a valid account, every activity a valid parent. Referential breaks are the defect that turns a clean-looking load into a CRM where the pipeline report does not tie to the account list.
-
Resolve ownership and the user map
Build the Redtail CRM user → Salesforce user map, including leavers. Every record needs a valid owner: records assigned to deactivated users either fail to load or land unassigned, and unassigned pipeline is pipeline nobody works.
Records owned by deactivated users are a top cause of load failures. Decide the reassignment target before you start.
-
Scan for PII and regional compliance
CRMs hold marketing consent, lawful basis and unsubscribe state. Confirm these fields migrate intact and that consent provenance survives — losing consent records is a regulatory problem, not a data-quality one.
PII & Compliance Scanner Find regulated fields before they land in a new system -
Clean, normalise and archive the pre-state
Normalise country and state values, phone formats, currencies and casing, and standardise all timestamps to UTC. Keep an untouched copy of the raw export — it is your only reference if a mapping decision turns out wrong.
-
Clean notes
strip HTML tags if targeting ContentNote, truncate to 131,072 characters, preserve timestamps and author attribution
Redtail CRM → Salesforce specifics
- Big bang vs. phased
- A weekend cutover (big bang) works for firms under 20,000 records. Larger firms benefit from a phased approach: migrate historical data first, then execute a final delta migration of records created or modified since the initial load.
- What to leave behind
- Archived contacts not accessed in 3+ years, test records, voided opportunities. Migrating junk data costs real money in Salesforce storage and API calls.
- History depth
- Many firms do not need every closed task from 2013 in Salesforce, but if compliance or service history depends on it, cut it only with written sign-off.
- Database backup
- gives you the complete historical dataset in one shot, with no rate limit concerns.
- API calls
- supplement the backup with user attribution (the backup strips user IDs), any records created after the backup was generated, and documents (which are fetched per contact).
Don't move on until
- Duplicate rate quantified per object with a merge policy agreed
- Every record has a valid owner mapped to a target user
- Relationship integrity verified — no orphaned deals or contacts
03 Field Mapping Map objects, relationships and picklists — in that order.
Objective A signed mapping spec that covers objects, relationships, picklist values and currency handling.
Keep these open
-
Map objects and their relationships first
Establish how Redtail CRM objects correspond to Salesforce objects before any field work. Leads-versus-contacts, accounts-versus-organisations and deal hierarchies differ structurally between CRMs, and a field map built on the wrong object model has to be redone.
Schema Mapper Opens pre-loaded with the Redtail CRM → Salesforce field pair -
Generate and then hand-review the field map
Auto-match both schemas, then review every row. Look hardest at anything named "type", "source", "stage" or "status", where names match and meanings do not.
-
Map every picklist value, including retired ones
Enumerate all values on both sides — deal stages, lead sources, industries, statuses — and map each explicitly, including values no longer offered but still present on old records. Unmapped values either fail the row or land as blanks that quietly break segmentation.
Historical records often carry picklist values that were retired years ago and no longer appear in the UI.
-
Decide currency, amount and date handling
If you sell in multiple currencies, confirm how Salesforce stores amounts, exchange rates and dated conversion rates. Recalculating historical deal values at today's rate silently rewrites your revenue history.
Multi-currency deals re-converted at current rates will not tie to your historical reporting or your finance system.
-
Determine the load order
Sequence the load so parents exist before children: users, then accounts, then contacts, then deals, then activities and notes. Keep source IDs in custom fields so relationships can be rebuilt by lookup rather than guesswork.
-
Freeze the spec and sign off
Version-control the mapping, walk RevOps and sales leadership through the decisions that change reporting, and get written sign-off before the pilot.
-
Split contacts by type
→ Individuals become Person Account payloads, organizations become Business Account payloads
Data Format Converter Reshape the export into the format Salesforce's importer expects -
Generate ACR records
linking each Person Account to its Household, with role assignment
-
Split activities
into Task and Event payloads based on the type field
Don't move on until
- Object and relationship model mapped and reviewed
- Every picklist value explicitly mapped, including dead values
- Load order determined so parents always exist before children
04 Test Migration Pilot with related records, not a flat sample.
Objective A pilot load whose relationships, ownership and roll-up reporting all verify against source.
Keep these open
-
Configure the Salesforce sandbox to match the agreed model
Build the pipelines, stages, custom fields, record types and user roles first. Load into a default configuration and you will only discover the configuration defects at full scale.
-
Select a connected pilot slice
Take complete account trees — 50-100 accounts with all their contacts, deals, activities and files — rather than a flat random sample. Relationship defects are the whole point of a CRM pilot and a flat sample cannot expose them.
-
Run the load in dependency order with full logging
Load users, accounts, contacts, deals, then activities, logging every request against its source ID. Note which failures are transient (rate limits, timeouts) and which are structural (validation, missing parent).
-
Verify relationships and roll-ups
Confirm every deal sits on the right account with the right owner and stage, and that pipeline totals per account and per rep match Redtail CRM exactly. Roll-up mismatches almost always mean a relationship or currency defect upstream.
Migration Validation Tool Diff the pilot batch against source before scaling up -
Measure throughput and project the full load
Record actual records-per-hour under Salesforce's API limits and extrapolate, remembering activity history usually dominates volume. If the projection exceeds your window, split the load or trim activity scope now.
-
Let reps work the pilot data
Put two or three reps in the sandbox against their own accounts. They spot missing context, wrong owners and unusable notes far faster than any reconciliation script, and their buy-in is what makes adoption work.
Don't move on until
- Relationships intact across the whole pilot slice
- Pipeline roll-ups match source for the pilot accounts
- Reps have worked pilot records and confirmed they are usable
05 Cutover Switch the revenue system with the pipeline intact.
Objective All in-scope CRM data live in Salesforce, integrations repointed, and reps selling on day one.
Keep these open
-
Pre-load history ahead of the freeze
Load closed deals, historical activities and inactive accounts while Redtail CRM stays live. Only open pipeline and the final delta need to move inside the window.
-
Publish the cutover runbook
A timed sequence with owners and abort criteria: freeze, final export, delta load, integration switch, smoke test, go/no-go, rep enablement. Pick a window that avoids quarter-end and month-end close.
-
Freeze Redtail CRM and take the final delta
Set Redtail CRM read-only and export everything changed since the pre-load. Reps updating deals during an unenforced freeze is the classic way to lose the most recent — and most valuable — pipeline changes.
A rep who updates a deal in the old CRM during the freeze will lose that update permanently.
-
Load the delta and reconcile the pipeline
Run the delta, then verify open pipeline value and count per rep against Redtail CRM before anything else. If the pipeline number is wrong on day one, reps stop trusting the system and never fully come back.
Migration Validation Tool Confirm the final delta landed before you reopen -
Repoint every integration and verify with real records
Switch marketing automation, quoting, billing, enrichment, dialler and BI connections, then push a live record through each path. An unrepointed integration writing into the old CRM causes divergence that gets harder to reconcile every day.
Two-way integrations left pointing at the old CRM will keep writing there. Disable them before you switch, not after.
Cron Expression Builder Schedule the delta syncs that run through the freeze -
Go/no-go, then enable the reps
Call the decision explicitly against the exit criteria. Run enablement on real data with their own accounts on screen, and keep Redtail CRM read-only rather than cancelled until validation closes.
Don't move on until
- Historical load complete and reconciled before the freeze
- All integrations repointed and verified end to end
- Reps logged in with pipeline visible and correct
06 Validation Prove the revenue numbers tie out, then close the project.
Objective Reconciled data, forecast parity with pre-migration reporting, and signed acceptance.
Keep these open
-
Reconcile every object
Compare counts and values across accounts, contacts, deals, activities and files, plus field-level spot checks on a random sample. Produce a single report suitable for audit and for finance.
Migration Validation Tool Reconcile Redtail CRM and Salesforce record-for-record -
Tie the pipeline and forecast to baseline
Rebuild forecast, pipeline coverage and win-rate reporting and compare to pre-migration figures. Every variance needs an explanation — most trace back to stage or currency mapping decisions made in Field Mapping.
Stage-model changes will legitimately shift historical conversion rates. Restate the baseline rather than chasing the difference as a defect.
-
Verify ownership, visibility and permissions
Confirm every record has the right owner and that sharing rules, territories and role hierarchy give each rep exactly the visibility intended. Over-broad visibility in a CRM is a data-protection issue as much as a config one.
-
Re-profile for field completeness
Compare loaded null rates against the source profile per field. A field that arrived empty while counts matched is the failure counts alone cannot detect.
Data Profiler Prove field completeness held up through the load -
Test automation and integration write-back
Fire every workflow, assignment rule, sequence and notification, and confirm each integration writes correctly in both directions. Automation is rebuilt rather than migrated, so it is unproven until observed.
-
Sign off and schedule decommission
Get written acceptance against the Discovery criteria, keep Redtail CRM read-only for 30-90 days with a final archive export taken, then diarise cancellation so the contract does not auto-renew.
-
Rebuild automations
Redtail workflows do not export. Recreate only the automations users actually need in Salesforce Flows — don't copy Redtail habits one-for-one into Salesforce.
-
Monitor for 30 days
Run daily record count checks, spot-check note content, and monitor Salesforce error logs for failed automation triggers on migrated data.
Redtail CRM → Salesforce specifics
- Reconnect integrations
- Custodial feeds (Schwab, Fidelity, Pershing), portfolio management tools (Tamarac, Orion, Black Diamond), and marketing platforms need to be pointed at Salesforce.
- User training
- Salesforce FSC's Household-centric navigation is fundamentally different from Redtail's contact-first interface. Budget 2–4 hours of hands-on training per advisor on household views, task vs. event behavior, and financial account relationships.
Don't move on until
- Full reconciliation report complete across all objects
- Forecast and pipeline reports tie to pre-migration baselines
- Acceptance signed and Redtail CRM decommission scheduled
Field mapping reference
The field-by-field mapping for each object. Use this as the starting point for your mapping spec.
Redtail Object FSC Object
| Redtail CRM field | Salesforce field | Notes |
|---|---|---|
| Family / Household | Account (RecordType = Household) | Create one Household Account per Redtail Family. Name it using the family surname. |
| Contact (Individual) | Person Account | FSC default. Creates both an Account and Contact record under the hood. |
| Contact (Organization) | Account (RecordType = Business) | Standard B2B Account. Do not force entities into person records. |
| Family membership | Account-Contact Relationship (ACR) | One ACR per person-to-household link. Set Role (Primary, Secondary), IsDirect, and rollup flags. |
| Spouse/Child links | Contact-Contact Relationship | Interpersonal relationships between Person Accounts. Household membership alone does not carry these semantics. |
| Activity (Task) | Task | Filter on Redtail type field. Map subject, description, activityDate, status. |
| Activity (Appointment) | Event | Filter on Redtail type field. Map startDateTime, endDateTime, location. |
| Note | ContentNote (or legacy Note) | ContentNote preferred. Body is rich text but has a 131,072 char limit. Strip or convert HTML. |
| Opportunity | Opportunity | Standard mapping. Map stage values to Salesforce picklist. |
| Financial Account (manual) | FinancialAccount (FSC object) | Map account type, balance, custodian. Create FinancialAccountRole records for ownership. |
| User Defined Fields | Custom Fields on the target object | Create matching custom fields with correct data types. |
| Keywords / Tags | Custom Picklist or multi-select picklist | Salesforce doesn't have a native tagging system equivalent to Redtail's. |
| Document / Attachment | ContentVersion + ContentDocumentLink | Stage file binaries separately. Files need a different pipeline. |
| Redtail User reference | OwnerId or User lookup | Build an explicit user ID crosswalk. The backup omits the user lookup table. |
What breaks
Known failure modes. Have a recovery plan for each before you cut over.
Duplicate contacts:
Redtail firms commonly have 10–30% duplicate contacts accumulated over years of manual entry. Run deduplication before loading into Salesforce — Salesforce's native duplicate management tools do not effectively handle Person Accounts. Dedupe on deterministic keys: Redtail IDs, household IDs, email, and normalized legal name. Never on name alone.
Notes with HTML formatting:
Redtail email notes often contain raw HTML. Salesforce ContentNote accepts rich text, but rendering may break. Strip <style> tags and inline CSS, preserve <p>, <br>, and <b> tags.
Long text blobs:
Notes exceeding 131,072 characters must be truncated or split. Log every truncation for compliance review.
Missing activity types:
Redtail's activity_type field must match a value from its own lookup table (/crm/v1/activitytypes). If your export contains activity types that don't map to a Salesforce Task Type or Event Type picklist value, those records will fail on import.
Recurring activities:
Future occurrences of recurring activities are not included in the database backup. If your firm relies on recurring review meetings, these must be recreated manually in Salesforce.
Attachments:
Documents stored in Redtail Imaging are completely separate from the CRM database backup. They require a separate extraction workflow and load into Salesforce Files (ContentVersion + ContentDocumentLink). Salesforce support docs recommend special CSV prep and often batch size of 1 for attachment-style imports. (help.salesforce.com)
Email archives:
Redtail's email archiving uses a proprietary Zimbra-based system (.zdb format). These cannot be directly imported into Salesforce — they need conversion to .eml or direct parsing before creating EmailMessage or Task records.
Salesforce automation during load:
Apex triggers, validation rules, and Flows on the Salesforce side can cause bulk jobs to fail. Disable non-essential triggers and validation rules during the initial data load, then re-enable them after validation.
Tools used in this playbook
All free, all run entirely in your browser — nothing is uploaded.
FAQ
How do Redtail Households map to Salesforce Financial Services Cloud?
Redtail Households (Families) are simple grouping labels with no data aggregation. In Salesforce FSC, each Household becomes a Business Account (RecordType = Household). Individual family members become Person Accounts, and each person-to-household link requires an Account-Contact Relationship (ACR) junction record with role, start date, and rollup configuration. Household membership alone does not preserve kinship semantics like spouse or child — those require separate Contact-Contact Relationship records.
How do I export all my data from Redtail CRM for a Salesforce migration?
Request a database backup from Redtail's Admins Only section (Dropbox Files and Database Backups). This produces a MySQL .sql dump covering contacts, notes, activities, and opportunities. However, it strips user IDs, excludes email archives and attachments (Redtail Imaging), and requires MySQL expertise to restore. You'll need to supplement it with API extraction for user attribution and documents.
What are Redtail CRM API rate limits for migration?
Redtail's public API terms reserve the right to restrict excessive volume but do not publish a durable per-plan rate-limit matrix. Secondary integration guides commonly report approximately 100 requests per minute on standard plans. List endpoints return a maximum of 50 records per page. For large historical datasets, combining the database backup with targeted API calls is the recommended approach.
How long does a Redtail to Salesforce migration take?
Timeline depends on data volume and complexity. A small firm with under 10,000 records and simple Household structures can complete the migration in 1–2 weeks including testing. Larger firms with complex UDFs, extensive note history, and multi-level Household relationships typically need 3–6 weeks. With a managed service, the active migration window is often just days.
Can I migrate Redtail Activities directly to Salesforce?
No. Redtail stores tasks and appointments together under a single Activities object. During migration, you must parse the activity type field and explicitly split records into separate Salesforce Task objects (for to-dos) and Event objects (for scheduled appointments). A direct copy of one source object into one target object will fail.