Description
n8n-nodes-twenty
n8n community node for Twenty CRM โ the Open Source CRM platform
—
โจ Features
| | Feature | Description |
|:—:|———|————-|
| ๐ | Full CRUD | Create, Read, Update, Delete for all resources |
| โก | Auto Transform | Handles Twenty’s complex object formats automatically |
| ๐ฆ | Bulk Operations | Process multiple records in a single request |
| ๐ | Upsert | Create or update based on matching field |
| ๐ | Webhooks | Real-time triggers for all CRM events |
| ๐ | Auto Retry | Automatic retries with exponential backoff for transient errors |
| ๐ | Dynamic Dropdowns | Company/Person lists loaded from API in UI |
| ๐งฉ | Custom Objects | Support for any Twenty CRM custom object |
—
๐ฅ Installation
Via n8n UI (Recommended)
1. Go to Settings โ Community Nodes
2. Click Install a community node
3. Enter: @linkedpromo/n8n-nodes-twenty
4. Click Install
Via npm
npm install @linkedpromo/n8n-nodes-twenty
—
๐ Configuration
Step 1: Get Your API Key
1. Log into your Twenty CRM instance
2. Go to Settings โ Developers โ API Keys
3. Create a new API key or copy an existing one
Step 2: Add Credentials in n8n
1. Go to Credentials โ Add Credential โ Twenty CRM API
2. Fill in the fields:
| Field | Value | Example |
|:——|:——|:——–|
| API URL | Your Twenty instance URL (without /rest) | https://your-twenty.com |
| API Key | JWT token from Twenty | eyJhbGciOiJIUzI1NiIs... |
> โ ๏ธ Important: URL must be WITHOUT trailing slash (/) and WITHOUT /rest
—
๐ Supported Operations
TwentyCrm Node
| Category | Resource | Operations | Description |
|:——–:|:———|:———–|:————|
| ๐ข | Company | Create, Get, Get Many, Update, Delete, Upsert | Manage organizations and businesses |
| ๐ค | Person | Create, Get, Get Many, Update, Delete, Upsert | Manage contacts and individuals |
| ๐ฐ | Opportunity | Create, Get, Get Many, Update, Delete, Upsert | Track deals and sales pipeline |
| ๐ | Note | Create, Get, Get Many, Update, Delete | Add notes to records |
| โ
| Task | Create, Get, Get Many, Update, Delete | Manage tasks and to-dos |
| ๐ | Activity | Create, Get, Get Many, Update, Delete | Track activities and interactions |
| ๐ฆ | Bulk | Bulk Create, Bulk Update, Bulk Delete | Mass operations on records |
| ๐ | Search | Search | Find records across multiple types |
| ๐งฉ | Custom Object | Create, Get, Get Many, Update, Delete | Work with any custom object |
TwentyCrmTrigger Node
| Category | Events | Description |
|:——–:|:——-|:————|
| ๐ข | company.created company.updated company.deleted | Company changes |
| ๐ค | person.created person.updated person.deleted | Person changes |
| ๐ฐ | opportunity.created opportunity.updated opportunity.deleted | Deal changes |
| โ
| task.created task.updated task.deleted | Task changes |
| ๐ | note.created note.updated note.deleted | Note changes |
—
๐งฉ Custom Objects
Work with any Twenty CRM custom object using the Custom Object resource:
1. Select Custom Object as the resource
2. Enter the Object API Name (e.g., customLeads, myCustomObject)
3. Provide fields as JSON
{
"customField1": "value1",
"customField2": "value2"
}
> ๐ก Find your object’s API name in Twenty CRM Settings โ Data Model โ Your Object โ API Name
—
๐ Dynamic Dropdowns
The node automatically loads data from your CRM for convenient selection:
| Field | Loads From | Used In |
|:——|:———–|:——–|
| Company | /rest/companies | Person โ Company field |
| Assignee | /rest/people | Task โ Assignee field |
| Opportunities | /rest/opportunities | Various relation fields |
> ๐ก Dropdowns show up to 60 items. For more, use the record ID directly.
—
๐ Automatic Retry
The node automatically retries failed requests for transient errors:
| Status Code | Error Type | Retries |
|:———–:|:———–|:——-:|
| 429 | Rate Limit Exceeded | โ
3x |
| 502 | Bad Gateway | โ
3x |
| 503 | Service Unavailable | โ
3x |
| 504 | Gateway Timeout | โ
3x |
| Network | Connection errors | โ
3x |
- Exponential backoff: 1s โ 2s โ 4s (with jitter)
- Respects
Retry-Afterheader from API - No retry for client errors (400, 401, 403, 404)
—
๐ Auto Field Transformation
The node automatically transforms simple values to Twenty’s complex format:
|
๐ข Company โ You provide:
|
๐ค Node sends to API:
|
|
๐ค Person โ You provide:
|
๐ค Node sends to API:
|
> โ ๏ธ Note: Twenty CRM Notes API does NOT support a body field. Only title and position are available.
—
๐ง Troubleshooting
๐ Node hangs / timeout
| | |
|:–|:–|
| Symptom | Node runs for a long time without returning results |
| Cause | Incorrect API URL in credentials |
| Solution | Check URL format (see below) |
+ โ
Correct: https://your-twenty-instance.com
โ Wrong: https://your-twenty-instance.com/
โ Wrong: https://your-twenty-instance.com/rest
๐ Node still doesn’t work after changing credentials
Solution: Delete the node completely and add a new one with correct credentials
โ Common API Errors
| Code | Error | Cause | Solution |
|:—-:|:——|:——|:———|
| 401 | Unauthorized | Invalid API key | Check credentials |
| 404 | Not Found | Wrong endpoint | Verify API URL |
| 400 | Bad Request | Invalid data | Check field values |
| 429 | Rate Limited | Too many requests | Node auto-retries |
—
๐ฆ Compatibility
| Requirement | Version |
|:————|:——–|
| n8n | 2.4.6+ |
| Node.js | 18.10+ |
| Twenty CRM | API v1 |
—
๐งช Development
Install dependencies
npm installBuild
npm run buildRun tests
npm testRun tests with coverage
npm run test:coverageLint
npm run lint
—
๐ Links
| | |
|:–|:–|
| ๐ฆ npm | npmjs.com/package/@linkedpromo/n8n-nodes-twenty |
| ๐ป GitHub | github.com/vomos-ua/n8n-nodes-twenty |
| ๐ Twenty CRM | twenty.com |
| ๐ Issues | Report a bug |
—
๐ License
MIT License โ see LICENSE for details.
—
Made with โค๏ธ by abm24