How to Migrate from HubSpot to Twenty CRM
·OSSAlt Team
hubspottwentymigrationcrmguide
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.