~ 2 days cutover
- Sales Cloud Enterprise workspace
- Up to 200K records
- Up to 5 custom objects
- Up to 30 workflow rebuilds
- Critical 5-10 validation rules
- Top 5 dashboards rebuilt
- Runbook + Loom walkthroughs · 30-day support
Standard + custom objects, validation rules, formula fields, Apex audited and ported. 2-3 day cutover, no production downtime. Fixed price from $6,500. We've shipped 23 of these.
Salesforce is still the right answer for $1B+ ARR with distributed field sales, complex compensation hierarchies, and full-stack CRM + CPQ + billing integration. For everyone else below that threshold, the financial and operational math has shifted.
Per-seat cost compounds quickly. Sales Cloud Enterprise runs $165/user/month. At 30 seats, that's $59,400 annually for the CRM alone. Marketing Cloud, Pardot, and CPQ are separate line items. A 50-person GTM function can exceed $200K/year in licensing before a single customization.
Your admin becomes a prisoner. Salesforce demands one ops person for every 50-100 users at $90K-$160K/year. Instead of designing GTM workflows, they're shepherding change requests through governance, sandboxes, and UAT cycles. That's not strategic work.
Change velocity collapses. Adding a custom field, adjusting a validation rule, or modifying a process builder takes a sprint minimum. By the time it deploys, your GTM has evolved and you're building something obsolete.
Einstein and Agentforce aren't free. Native AI features add $50/user/month on top of Enterprise licensing. Teams already running Claude, Grok, or Cursor internally don't want to license duplicative AI through Salesforce.
We've shipped 23 migrations off Salesforce — mostly mid-market SaaS earning $50M-$500M ARR. If you run distributed field sales, regulated compliance workflows, or heavyweight CPQ — Salesforce remains the right call. For everyone else, the equation favors platforms built for rapid iteration. Or compare against HubSpot.
Most of your data is portable — but the fit is not one-to-one. Standard objects (Account, Contact, Lead, Opportunity, Case, Activity) map directly to Attio Companies, People, Deals, plus activity timeline. The bulk of your data — field values, dates, relationships — travels intact.
Custom objects migrate structurally, but rarely unchanged. Salesforce custom objects often exist because the platform had limitations Attio doesn't share. A legacy Project_Request object might collapse into a workspace attribute or new table. We audit each one in step 1.
Custom fields preserve type fidelity: text, picklists, multi-select, numbers, dates. Lookup and Master-Detail relationships become Attio associations. Junction objects collapse into Attio's native many-to-many syntax. Activity history — Tasks, Events, Email Logs, Calls — migrates to the activity timeline with author, timestamp, related record intact.
Owner mapping uses email-to-email matching; Salesforce User IDs aren't portable. Validation rules don't migrate as-is — we rewrite the critical 5-10 in Attio's input rules during cutover. Formula fields migrate as Attio formula attributes when simple. Complex multi-object SOQL formulas flag during audit and need rewriting.
The full field-by-field map for a Sales Cloud Enterprise workspace:
| Salesforce | → | Attio | Notes |
|---|---|---|---|
| Account → Name | → | Companies → Name | Direct |
| Account → Website | → | Companies → Domain | Used as primary dedup key |
| Account → Industry | → | Companies → Industry (dropdown) | Picklist values mapped 1:1 |
| Account → Annual Revenue | → | Companies → ARR | Currency normalised |
| Account → Owner | → | Companies → Owner | Matched by email |
| Account → Custom fields | → | Companies → Custom attributes | Type fidelity preserved |
| Account → Parent Account | → | Companies → parent association | Hierarchy preserved |
| Contact → Name | → | People → Name | Direct |
| Contact → Email | → | People → Email | Primary dedup key |
| Contact → Account ID | → | People ↔ Companies association | Preserved |
| Contact → Title | → | People → Title | Direct |
| Contact → Custom fields | → | People → Custom attributes | Type fidelity preserved |
| Lead → name/email/company | → | People + Companies (split) | Lead converts to People + Company |
| Lead → Lead Source | → | People → Source attribute | Picklist preserved |
| Opportunity → Name | → | Deals → Name | Direct |
| Opportunity → Amount | → | Deals → Amount | Currency normalised |
| Opportunity → Stage | → | Deals → Stage | Pipeline stages mapped per scope doc |
| Opportunity → Close Date | → | Deals → Close date | Direct |
| Opportunity → Account / Contacts | → | Deals ↔ Companies + People | All associations preserved |
| Opportunity → Custom fields | → | Deals → Custom attributes | Type fidelity preserved |
| Custom objects (any) | → | Attio custom objects | Audited; some collapse to attributes |
| Tasks | → | Timeline → Task activities | Owner + due date preserved |
| Events / Meetings | → | Timeline → Meeting activities | Attendees preserved |
| Email logs | → | Timeline → Email activities | Direction, thread ID preserved |
| Cases | → | Attio custom Cases object | Configured per workspace |
| Files / Attachments | → | Attio file attachments | Copied to Attio storage |
| Validation rules | → | Attio input rules | Rewritten for critical 5-10 |
| Formula fields (simple) | → | Attio formula attributes | Direct rewrite |
| Formula fields (complex SOQL) | → | Flagged at audit | Manual rewrite required |
Salesforce is the densest CRM origin we migrate from. Some things don't have an Attio equivalent. Here's what you're rebuilding (and how long it takes).
No automated import exists. Attio has Workflows but the syntax differs. During cutover, we rebuild your top 10-15 active flows (1-2 days). The rest typically gets pruned — most orgs carry legacy automation they've forgotten about.
Salesforce's multi-step approval chains don't replicate directly. We rebuild as Attio Workflows with Slack notifications. Half a day, tops. Most teams find Slack-based approvals faster than email loops.
Attio is not a CPQ engine. If you depend on Salesforce CPQ, you keep it alongside Attio or migrate to a dedicated tool (Subscript, Maxio, Stripe Billing). The data syncs; the logic doesn't.
Attio reports are functional, but your saved report library doesn't transfer. Budget half a day to rebuild your top 5 dashboards. Most teams find Attio's report builder faster after the rebuild.
Anything written in Apex doesn't port. We audit these in step 1 — usually 80% are workarounds for limitations Attio doesn't have. The remaining 20% (real custom logic) get rewritten as Attio Workflows or external scripts. Total rebuild time across all gaps: 2-3 days, included in the migration window.
We've shipped 23 of these. Audit, design, move, verify — Salesforce complexity means each step carries more substance.
Two screen-share sessions in your Salesforce org. Session 1: walk through data model — standard + custom objects, fields, relationships, page layouts. Session 2: workflows, approval processes, validation rules, Apex if any. Output: a multi-page scope doc + a decisions doc.
We build your Attio data model in a sandbox: objects, attributes, views, permissions, rebuilt workflows. You get a Loom walkthrough. You sign off before any production data moves.
Day 1 morning: dry-run against a sandbox copy. Our own AI-powered system maps every record, flags conflicts, prints diffs by object. You approve. We apply. Migration window depends on volume — usually 30-60 minutes for under 200K records. Day 2 covers workflow + validation rule rebuild.
Record counts, association integrity, owner mapping, custom-field type fidelity, workflow trigger tests. We screen-share through 20 representative records. You sign off. Runbook + Loom walkthroughs delivered.
Most migrations land within 48 hours for a typical Sales Cloud Enterprise. Add a third day when you have heavy CPQ-adjacent logic, 50+ workflow rules, or 10+ custom objects. The 6-12 week narratives elsewhere describe manual migrations done by Salesforce admins between regular duties — different exercise.
Our speed comes from three structural advantages: pre-cutover audit surfaces surprises before they become blockers, our AI-powered mapper translates objects + relationships in minutes, sandbox-first cutover means zero production downtime.
The longest single migration we've shipped was 3 days for a 47-custom-object org with 180 active workflows and 2.4M activities. Average is closer to 2.
| Day / Hour | Phase | What happens | Who owns it |
|---|---|---|---|
| Day 1 · 09:00 | Kickoff call | Confirm scope, walk through dry-run plan, set rollback criteria | WeScaleUp + you |
| Day 1 · 09:30 | Dry-run | Run mapping against sandbox copy. System prints full diff by object, flags conflicts | WeScaleUp |
| Day 1 · 11:00 | Diff review | We screen-share the diff. You approve, flag changes, or pause | You |
| Day 1 · 12:00 | Apply migration | Live write to Attio. 30-60 min for typical workspace | WeScaleUp |
| Day 1 · 13:30 | Quick checks | Record counts, association integrity, owner mapping spot-checks | WeScaleUp |
| Day 1 · 16:00 | End-of-day status | Walk through what's verified, what's flagged for day 2 | WeScaleUp + you |
| Day 2 · 09:00 | Workflow rebuild | Top 10-15 Salesforce flows reimplemented as Attio Workflows | WeScaleUp |
| Day 2 · 12:00 | Validation rules | Critical 5-10 rules rewritten as Attio input rules | WeScaleUp |
| Day 2 · 14:00 | Approval processes | Multi-step approvals rebuilt as Attio Workflows + Slack | WeScaleUp |
| Day 2 · 16:00 | Verification walkthrough | We walk through 20 representative records — you confirm | WeScaleUp + you |
| Day 2 · 17:00 | Sign-off + handoff | Runbook delivered. Loom recordings sent. 30-day support window opens | WeScaleUp |
Salesforce migrations are quoted by scope. After your discovery audit, written quote within 24 hours. No surprise extensions, no change orders. What you see is what you pay.
Hourly billing creates perverse incentives. Fixed pricing flips that. Every package includes the full cycle: audit, dry-run, cutover, verification, workflow rebuild, runbook, and 30 days of post-launch support.
One exception: if your instance runs CPQ at scale, we'll spot that on the discovery call and recommend keeping it in Salesforce or migrating to a dedicated CPQ platform. We don't migrate CPQ, and we'll tell you why before you're charged.
~ 2 days cutover
~ 2-3 days end-to-end
~ 3 days cutover
Don't see yours? Get a fixed quote and ask in the notes.
Twenty minutes. We'll tell you whether your Salesforce is a 2-day job, a 3-day job, or something we shouldn't take on. Fixed quote in writing within 24 hours.