Twenty for AI agents
Twenty is an open-source CRM for managing customer relationships, used by sales teams that want a modern, self-hosted alternative to larger CRM platforms. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.
What agents do in Twenty.
Create a CRM record
Add a new contact, company, or deal record to the CRM.
List records in an object
Pull records from a CRM object, like deals or contacts, as a read-only check.
Confirm before deleting a record
Check with the user before deleting a CRM record, since its history and related records go with it.
8 Twenty actions, graded by risk.
Every Twenty action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.
read
4Look things up. Allowed by default.
- twenty.get_recordGet CRM Record
- twenty.list_fieldsList CRM Fields
- twenty.list_objectsList CRM Objects
- twenty.list_recordsList CRM Records
write
3Create and change things. Allow, or ask the user first.
- twenty.create_recordCreate CRM Record
- twenty.update_recordUpdate CRM Record
- twenty.batch_create_recordsBatch Create CRM Records
destructive
1Delete, cancel or archive. Ask first, or deny outright.
- twenty.delete_recordDelete CRM Record
Twenty in three steps.
- 01Your users connect TwentyThey add their Twenty api key on Arc0 Connect, under your brand. It goes straight into the vault.
- 02You set the rulesReads run, writes like “create CRM Record” can wait for the user, and “delete CRM Record” can be denied outright.
- 03Any agent can actYour agent calls Twenty through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
await arc0.policies.set('twenty', { read: 'allow', write: 'ask', // create_record destructive: 'deny', // delete_record }) # Claude Code: the same connection, one URL $ claude mcp add --transport http arc0 \ https://mcp.arc0.ai/u/u_8f2
How Twenty connects.
Users add their Twenty api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.
The same Twenty connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →
- AUTH
- API key
- CREDENTIALS
- Per-tenant encrypted vault
- MODEL SEES
- Results only, never credentials
- AUDIT LOG
- Every call, on every plan
Use Twenty from any agent.
Twenty and Arc0, answered.
Can I use Twenty with Claude, ChatGPT or Cursor?
Yes. Connect Twenty to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Twenty actions you allow.
How do users connect Twenty?
Users add their Twenty api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.
Which Twenty actions can my agent take?
8 in total: 4 read, 3 write and 1 destructive, such as “create CRM Record”. Your policies decide which of them each agent may call.
Can I stop my agent from deleting things in Twenty?
Yes. Actions like “delete CRM Record” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.
Can my own backend call Twenty too?
Yes. The same Twenty connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.
Plug Twenty into your agent.
Your users connect Twenty once, under your brand. Your agent gets 8 actions behind your policies, with every call on the record.
Free to build · MCP + REST · Audit log on every plan