CRM and customer data 8 min

Twenty CRM in production: our view, limits included

Our view of Twenty CRM, run in production since early 2025: it holds up for a small or mid-sized sales team. Objects and fields are created without code, everything goes through the API, and self-hosted it carries no per-user licence. In return, operating it falls to you, backups included, and it is not an ERP.

Contents6
  1. 01What works well in Twenty?
  2. 02What takes effort?
  3. 03What does the AGPL licence change for a company?
  4. 04Who do we not recommend Twenty to?
  5. 05Where to start
  6. 06Frequently asked questions

Twenty CRM is open-source customer relationship software that you can install on your own server. Our view rests on real use: we have run Twenty in production since early 2025, and we contribute to the project. Palmora Property, a property listings portal in Thailand that we operate, is the most complete example: a self-hosted Twenty CRM, linked to the site, fed every day by n8n workflows.

“It holds up” does not mean “it runs by itself”. Here is what day-to-day operation has taught us, with no figure we could not show you: what works, what takes effort, what the licence implies, and who we do not recommend Twenty to. To place it among the other options, our CRM and customer data section gathers the guides on choosing, migrating and cleaning data.

In short

  • Twenty holds up in production for a sales team: a freely configurable data model, a complete API, and no per-user licence when self-hosted.

  • Operating it is up to you: the server, tested backups, regular updates, API keys that expire.

  • The AGPL licence gets in the way of neither use nor integration through the published interfaces; it governs modification of the code.

  • It is neither an ERP nor a marketing suite.

What works well in Twenty?

A data model shaped around your business

Twenty’s strength is the freedom of its model. According to its documentation, you create custom objects, fields of more than twenty types and relations between objects, without code. On Palmora Property, a property is not an “opportunity” in disguise: properties, zones and contact persons are objects in their own right, with business identifiers generated automatically.

That is what makes a team adopt the tool: it finds its own vocabulary there, instead of working around the CRM with a spreadsheet. We describe this use, where Twenty holds far more than contacts, in our guide Twenty beyond the CRM, as a back office for your business data.

A complete API, so the CRM can be the source of truth

Everything you see on screen is accessible through the API, in REST and GraphQL, with documentation generated for each workspace. That is what makes it possible to turn Twenty into the source of truth: on Palmora Property, the site updates from the CRM, through a pipeline that we moved back onto our own server in July 2026. Nobody enters anything twice.

Webhooks make it possible to react to a change in real time, with a reservation drawn from our own use:

From the field

On custom objects, a webhook is an unreliable trigger

The automatic saving of drafts is the cause. For our identifier generator, a scheduled job that re-reads the current state of the record proved safer.

Built-in workflows, and n8n or an app for the rest

Twenty offers its own workflows, triggered by a change to a record, a schedule, a manual action or an incoming webhook. For processes that cross several tools, we use n8n, which runs on the same server. And when a function is missing, you can add it through an app: we developed one, which reorders photos, and published it on Twenty’s app store.

No per-user licence when self-hosted

On its pricing page, the vendor states that the open-source core can be self-hosted with no licence fees; its cloud plan is billed per user per month. For a growing team, that is the difference between a fixed bill and one that follows every hire.

What takes effort?

Hosting is down to you

With us, Twenty runs in Docker containers, on a single server behind Traefik, alongside n8n, Matomo, Docuseal, Documenso, InvoiceNinja and Ollama: a dozen services on the same machine. It is economical, and it is demanding.

Our most expensive lesson comes from this sharing:

From the field

In July 2026, a single command destroyed the containers of ten services

It was a docker system prune, on the server that hosts the CRM. The data survived because it lived in volumes. Since then, our operating rules have been written down, instead of a promise to be careful.

Backups do not happen by themselves

Twenty’s data lives in a PostgreSQL database. It has to be exported regularly, off the server, and a restore tested from time to time: a backup that has never been restored is only a hypothesis. We detail what really breaks, incident included, in our article on backing up a server of your own.

Updates: regular, and to be prepared

An upgrade is simple, provided you do it regularly and follow this order:

A Twenty upgrade

  1. The release notes

    An upgrade can require a prerequisite; version 2.34, for example, needs PostgreSQL 15 or later.

  2. The backup

    The upgrade guide says to always back up the database before starting.

  3. The migration

    Migrations run automatically when the new version starts, and since version 1.23 you can jump straight to the latest version.

  4. The check

    Afterwards, you check that whatever depends on the CRM, the site and the n8n workflows, still works.

Bulk corrections go through the API, at the right rate

Fixing hundreds of records by hand is not realistic; the API makes it possible, provided you limit the rate. On Palmora Property, a first bulk repair launched without any limit produced 754 failures. Relaunched with rate limiting and automatic retries, it fixed all 837 records concerned, without a single failure. The advice that follows: every bulk operation starts with a simulation, is then applied explicitly, at the right rate, and is checked afterwards.

API keys expire

According to its API documentation, a key is created in the settings, under API & Webhooks, with an expiry date, and is displayed only once. It is good security practice, and a classic trap:

Watch out

The day the key expires, synchronisation stops

Note the expiry date somewhere someone will read it, and set up an alert, as for any automation.

Think through the model before importing data

A model that is badly thought out at the start costs a lot later, because every correction touches the data already entered and everything that reads it. Every field used to make decisions (a record’s source, its status, its owner) is defined before the import, with a list of values that do not overlap: two different situations never share the same value.

What does the AGPL licence change for a company?

Twenty is mainly under the AGPL v3 licence. According to the project’s licence file, some files marked “Enterprise” fall under a commercial licence, and some packages, including the development kits, are under the MIT licence.

What this means for a company:

  • using Twenty as it is, even hosted by you and used by your teams, poses no difficulty;
  • modifying Twenty’s code and having that version used over a network obliges you to offer its source code to its users (section 13 of the AGPL v3 licence, reproduced in that licence file);
  • building an application that talks to Twenty through its published interfaces (REST and GraphQL API, webhooks, development kits) falls under an exception set out in the licence file: such an application is not subject to the AGPL for that reason alone.

Our rule follows from this:

Key takeaway

We take not one line of Twenty’s code

We configure Twenty and integrate it through its published interfaces, like our app in the store. It is also what keeps updates simple: there is nothing home-made to carry over onto each new version.

Who do we not recommend Twenty to?

  • If you need an ERP (quotes, invoices, stock, accounting in the same tool): Twenty is a CRM. Our comparison for choosing between Twenty, Dolibarr and Odoo starts from the size of the team and the processes to be covered.
  • If you are looking for a complete marketing suite (email campaigns, landing pages): that is not its territory.
  • If nobody can look after the server and you do not want an operator: the vendor’s cloud plan exists, but it is billed per user, and according to its pricing page some features (single sign-on, record-level permissions, audit logs) are reserved for its Organization plan.

Where to start

Start by checking that a pure CRM covers your processes: if invoicing or stock must live in the same tool, Twenty is not the right starting point. If it is, success then comes down to two things: a data model decided before the import, and operations organised from day one.

If you want a Twenty installed, with your data imported, and operated for you, it is the first level of our CRM offer: set-up in your vocabulary, data imported, deduplicated and checked, then backups, updates and monitoring on a subscription if you wish.

Frequently asked questions

Is Twenty CRM reliable for a business?

For CRM use, yes in our experience: we have run it in production since early 2025. Reliability depends above all on operations, not on the software alone: backups tested off the server, regular updates preceded by a backup, and monitoring of the server and the integrations. A Twenty that is installed and then forgotten accumulates risks, like any self-hosted software.

Do you need a developer to use Twenty?

Not for daily use or routine configuration: objects, fields and workflows are created from the interface, without code. Yes for installation, API integrations and running the server, or else a provider who takes care of it. That is the real question to ask before choosing self-hosting: who will do the backups and the updates in a year’s time?

Does Twenty connect to Gmail or Outlook?

Yes. According to its documentation, you connect a Google Workspace or Microsoft 365 mailbox: emails are automatically attached to the matching companies and people, with the full threads on the record, and calendar events appear there too. You can filter the import by period or by sender, so that a whole mailbox does not end up in the CRM.

Can you import your data from another CRM?

Yes, by CSV file import or through the API. Twenty’s migration documentation limits file import to 10,000 records: beyond that, you split the file or use the API. The order matters (companies, then people, then opportunities). Our guide to migrating from HubSpot to an open-source CRM details the method, history included.

Does Twenty handle duplicates?

Partly. According to its documentation, a person’s email and a company’s domain are unique: on import, a row whose email or domain already exists updates the record instead of creating a second one. Approximate duplicates (a name written differently, two addresses for one person) still have to be dealt with: see our guide to cleaning your CRM data.

Sources

  1. Pricing page (new tab)twenty.com
  2. Upgrade guide (new tab)docs.twenty.com
  3. Project’s licence file (new tab)github.com
Source 1

Pricing page

Read on twenty.com(new tab)
Source 3

Project’s licence file

Read on github.com(new tab)

Jim · founder of Brain Plus AI

Also in crm and customer data

  • Choose and price7 min

    Twenty, Dolibarr or Odoo: which one for your team?

    Twenty, Dolibarr and Odoo are not in the same category: a pure CRM, a light ERP, a full ERP. Rather than a feature table, here is a decision grid by team size and by process, with what moves you from one level to the next.

  • Practical guide9 min

    Migrating from HubSpot to an open source CRM in seven steps

    Leaving HubSpot for Twenty, Dolibarr or Odoo can be done without losing your customers, provided you deal with the model, export, cleaning, import and history in order. Here is our seven-step method, and the honest list of what does not come across by itself.

  • Practical guide9 min

    Twenty beyond the CRM: a back office for your business data

    Properties, projects, equipment, case files: Twenty can hold far more than your contacts. What it takes to make it the back office for your business data, connected to your site, and where this use stops.

WhatsApp