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.

CRMAPI keyMCP + RESTtwenty.com
AUDIT LOG · TWENTYPOLICY: acme-support
09:41:07 · claude · u_8f2read
twenty.list_fields
List CRM Fields✓ allowed · 212ms
09:41:08 · claude · u_8f2read
twenty.get_record
Get CRM Record✓ allowed · 164ms
09:41:09 · claude · u_8f2write
twenty.create_record
Create CRM Record✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
twenty.delete_record
Delete CRM Record✕ blocked · policy: deny
EVERY TWENTY CALL, ON THE RECORD
01 · USE CASES

What agents do in Twenty.

01

Create a CRM record

Add a new contact, company, or deal record to the CRM.

02

List records in an object

Pull records from a CRM object, like deals or contacts, as a read-only check.

03

Confirm before deleting a record

Check with the user before deleting a CRM record, since its history and related records go with it.

02 · ACTIONS

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

4

Look things up. Allowed by default.

  • twenty.get_record
    Get CRM Record
  • twenty.list_fields
    List CRM Fields
  • twenty.list_objects
    List CRM Objects
  • twenty.list_records
    List CRM Records

write

3

Create and change things. Allow, or ask the user first.

  • twenty.create_record
    Create CRM Record
  • twenty.update_record
    Update CRM Record
  • twenty.batch_create_records
    Batch Create CRM Records

destructive

1

Delete, cancel or archive. Ask first, or deny outright.

  • twenty.delete_record
    Delete CRM Record
03 · HOW IT WORKS

Twenty in three steps.

  1. 01Your users connect TwentyThey add their Twenty api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create CRM Record” can wait for the user, and “delete CRM Record” can be denied outright.
  3. 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.
POLICY.TS
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
04 · AUTH AND DATA

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
05 · WORKS WITH

Use Twenty from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Twenty and Arc0, answered.

Q01

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.

Q02

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.

Q03

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.

Q04

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.

Q05

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.

Get started

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