How to Migrate from HubSpot to Twenty CRM
How to Migrate from HubSpot to Twenty CRM
HubSpot's free CRM works until you need marketing, sales, or service hubs — then pricing jumps to $20-120+/user/month. Twenty is the modern open source CRM — Notion-like UX, GraphQL API, and full data ownership. Here's how to migrate.
Step 1: Deploy Twenty
# Docker Compose
git clone https://github.com/twentyhq/twenty.git
cd twenty
cp .env.example .env
# Configure DATABASE_URL, REDIS_URL, etc.
docker compose up -d
Access at localhost:3000 and create your workspace.
Step 2: Export from HubSpot
Contacts:
- HubSpot → Contacts → Actions → Export
- Select all properties or choose specific ones
- Download CSV
Companies:
- HubSpot → Companies → Actions → Export
- Download CSV
Deals:
- HubSpot → Deals → Actions → Export
- Download CSV
Step 3: Import into Twenty
Twenty supports CSV import:
- Open Twenty → Settings → Data Model
- Verify your object fields match HubSpot's export columns
- Go to the People or Companies view
- Click Import → Upload CSV
- Map columns to Twenty fields
Field mapping:
| HubSpot | Twenty |
|---|---|
| First Name | firstName |
| Last Name | lastName |
| Phone | phone |
| Company | company (relation) |
| Job Title | jobTitle |
| City | city |
| Lifecycle Stage | Custom field |
| Lead Score | Custom field |
Step 4: Set Up Pipeline
- Go to Settings → Data Model → Opportunities
- Create pipeline stages matching HubSpot:
| HubSpot Stage | Twenty Stage |
|---|---|
| Appointment Scheduled | Meeting Scheduled |
| Qualified to Buy | Qualified |
| Presentation Scheduled | Demo |
| Decision Maker Bought-In | Negotiation |
| Contract Sent | Proposal Sent |
| Closed Won | Won |
| Closed Lost | Lost |
Step 5: Configure Custom Fields
Twenty uses a flexible data model. Add custom fields to match HubSpot properties:
- Settings → Data Model → select object (People, Companies)
- Add Field → choose type (text, number, date, select, relation)
- Map your HubSpot custom properties
Step 6: Set Up Integrations
| HubSpot Feature | Twenty Equivalent |
|---|---|
| Email tracking | Email integration (coming) |
| Meeting scheduling | Calendar sync |
| Forms | Webhooks + API |
| Workflows | API-based automation |
| Reporting | Analytics views |
| Email sequences | Not yet (roadmap) |
| Live chat | Not included (use Chatwoot) |
Twenty's API is GraphQL — powerful for building custom integrations:
mutation {
createPerson(data: {
name: { firstName: "Jane", lastName: "Doe" }
email: { primaryEmail: "jane@example.com" }
company: { connect: { id: "company-id" } }
}) {
id
}
}
What You'll Gain
- Full data ownership — your CRM data on your server
- Modern UX — Notion-like interface, keyboard shortcuts
- GraphQL API — powerful, typed API for automation
- No per-user pricing — unlimited users
- Custom data model — add any fields or objects
- Open source — AGPL-3.0, active development
What You'll Lose
- HubSpot's marketing hub (emails, forms, landing pages)
- Sales sequences and automation
- Built-in reporting dashboards
- App marketplace integrations
- Customer support ticketing
Cost Comparison
| Users | HubSpot Starter | Twenty Self-Hosted | Savings |
|---|---|---|---|
| 5 | $100/month | $15/month | $1,020/year |
| 10 | $200/month | $25/month | $2,100/year |
| 25 | $500/month | $40/month | $5,520/year |
Migration Timeline
| Week | Task |
|---|---|
| Week 1 | Deploy Twenty, export HubSpot, import contacts/companies |
| Week 2 | Set up pipeline, custom fields, integrations |
| Week 3 | Train team, run both CRMs |
| Week 4 | Full cutover, archive HubSpot |
Compare CRM platforms on OSSAlt — features, data model flexibility, and pricing side by side.
See open source alternatives to HubSpot on OSSAlt.