Back to Nodes

Twenty CRM

v0.4.14
Last updated Feb 6, 2026

n8n community node for Twenty CRM - Open Source CRM

87 Weekly Downloads
392 Monthly Downloads

Included Nodes

Twenty CRM
Twenty CRM Trigger

Description

Twenty CRM

n8n-nodes-twenty

npm version
CI
License: MIT
n8n community node

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-After header 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:

    {
      "name": "Acme Inc",
      "domainName": "acme.com"
    }
    

    ๐Ÿ“ค Node sends to API:

    {
      "name": "Acme Inc",
      "domainName": {
        "primaryLinkUrl": "https://acme.com",
        "primaryLinkLabel": "",
        "secondaryLinks": []
      }
    }
    

    ๐Ÿ‘ค Person โ€” You provide:

    {
      "firstName": "John",
      "lastName": "Doe",
      "email": "john@example.com"
    }
    

    ๐Ÿ“ค Node sends to API:

    {
      "name": {
        "firstName": "John",
        "lastName": "Doe"
      },
      "emails": {
        "primaryEmail": "john@example.com",
        "additionalEmails": []
      }
    }
    

    > โš ๏ธ 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 install

Build

npm run build

Run tests

npm test

Run tests with coverage

npm run test:coverage

Lint

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