Twenty
The #1 Open-Source CRM. Modern, powerful, affordable platform to manage your customer relationships.
Verdict
Common use cases
- Bulk-import leads from conference spreadsheets
- Summarize open opportunities before sales calls
- Log action items as CRM tasks after meetings
- Pull account details into customer support threads
- Update deal stages from Slack standup notes
Integration
- Vendor
- Twenty
- Category
- crm
- Auth
- API_KEY
- Tools
- 8
- Composio slug
twenty
Tools
- Batch Create CRM Records
Create 1-60 records of one type. Supported standard fields: companies (name, domainName, linkedinLink, annualRevenue, address, accountOwnerId); people (name, emails, linkedinLink, jobTitle, phones, avatarUrl, companyId); opportunities (name
- Create CRM Record
Create one company, person, opportunity, or task using the supported standard fields in the parameter schema. Custom fields and workspace-specific enum variants are not supported.
- Delete CRM Recorddestructive
Permanently delete one company, person, opportunity, or task by UUID. Use only for a specifically identified record; this does not delete by filter or in bulk.
- Get CRM Record
Get one company, person, opportunity, or task by its Twenty UUID, optionally including direct relations.
- List CRM Fields
List field definitions from the connected Twenty workspace to discover exact field names, types, editability, nullability, uniqueness, and relation targets for schema inspection and filters. Record writes accept only fields exposed by the C
- List CRM Objects
List standard and custom object definitions in the connected Twenty workspace for schema inspection. Record tools currently support only companies, people, opportunities, and tasks.
- List CRM Records
List companies, people, opportunities, or tasks with Twenty filter syntax, ordering, relation depth, and forward cursor pagination.
- Update CRM Record
Partially update one company, person, opportunity, or task by UUID using the supported standard fields in the parameter schema; only supplied fields change. Custom fields and workspace-specific enum variants are not supported.
Setup
Setup guide
- 11. Open your Switchy workspace settings and navigate to the Integrations tab. 2. Click 'Add MCP Integration' and select Twenty from the CRM category. 3. In a separate browser tab, log into your Twenty workspace and go to Settings → API & Webhooks. 4. Generate a new API key with read and write permissions, then copy it to your clipboard. 5. Paste the API key into the Switchy connection form and enter your Twenty workspace URL (e.g., app.twenty.com/workspace/your-workspace-id). 6. Click 'Connect' and wait for Switchy to verify the credentials. 7. Open any Project in Switchy and type '@Twenty list companies limit 5' to confirm the connection works. 8. If you see a list of company records, the setup is complete and you can start invoking tools in conversations.
What teammates see: by default, memories from Twenty are scoped to the Project (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Projects have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Import Lead Batch
@Twenty batch create companies: Acme Corp (acme.com), Widget Inc (widget.io), Bolt Systems (bolt.co). Set account owner to my user ID.
Pipeline Health Check
@Twenty list opportunities where stage is 'Proposal Sent', ordered by amount descending. Include company and owner relations.
Meeting Follow-Up Tasks
@Twenty create three tasks: 'Send pricing deck to Acme' due Friday, 'Schedule demo with Widget' due Monday, 'Follow up on Bolt contract' due Wednesday.
Account Context Pull
@Twenty get company record for 'Acme Corp' including all related people, opportunities, and tasks from the last 30 days.
Stale Lead Cleanup
@Twenty list companies where last contact date is before six months ago, then delete records with no associated opportunities.
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@twenty show me all open opportunities with a close date in the next 30 days, ordered by amount descending
Found 7 open opportunities closing within 30 days: 1. Enterprise Platform Migration – Acme Corp – $450,000 – closes Jan 15 2. Annual Support Renewal – GlobalTech Inc – $180,000 – closes Jan 22 3. Professional Services Package – StartupXYZ – $95,000 – closes Jan 28 4. Q1 License Expansion – MidMarket LLC – $67,500 – closes Feb 3 5. Consulting Engagement – Regional Bank – $45,000 – closes Feb 8 6. Training & Onboarding – Healthcare Co – $28,000 – closes Feb 10 7. Pilot Program – EdTech Startup – $15,000 – closes Feb 12 This illustrative example shows how Twenty returns filtered opportunity lists with key deal fields.
This example demonstrates Twenty's filter and sort capabilities for pipeline visibility. The MCP uses Twenty's native filter syntax, so complex date ranges and multi-field sorting work as documented in the Twenty API. Your API key must have read access to the opportunities object in your workspace.
@twenty create a new company record for Horizon Dynamics with domain horizondynamics.com, LinkedIn linkedin.com/company/horizon-dynamics, and assign it to account owner ID abc-123
Created company record: **Horizon Dynamics** UUID: `def-456-789` Domain: horizondynamics.com LinkedIn: linkedin.com/company/horizon-dynamics Account Owner: Sarah Chen (abc-123) Created: 2025-01-09 14:32 UTC The company is now visible in your Twenty workspace. You can add custom fields, attach people records, or create opportunities through the Twenty UI or additional @twenty commands. This example illustrates the typical response structure after a successful create operation.
This write operation permanently adds a record to your Twenty workspace. The MCP supports only standard fields (name, domain, LinkedIn, revenue, address, owner); custom fields defined in your workspace cannot be set via this integration. Verify the account owner UUID exists before creating records to avoid assignment errors.
@twenty pull all people records associated with companies in the healthcare industry, then draft a summary of their job titles and seniority distribution for our Q1 targeting plan
Retrieved 43 people across 12 healthcare companies. Job title breakdown: **Executive (9):** 3 CEOs, 2 CTOs, 2 VPs of IT, 1 Chief Medical Officer, 1 VP of Operations **Director-level (14):** 6 IT Directors, 4 Clinical Directors, 3 Operations Directors, 1 Compliance Director **Manager-level (12):** 5 IT Managers, 4 Project Managers, 3 Clinical Managers **Individual Contributor (8):** 4 IT Specialists, 2 Analysts, 2 Coordinators **Q1 Targeting Recommendation:** Focus outreach on the 9 executive contacts for strategic conversations and the 14 directors for technical evaluations. The manager tier shows strong IT representation, suggesting active digital transformation initiatives. This illustrative summary combines Twenty's list capability with AI synthesis.
This synthesis example shows how the MCP's list tool feeds the AI's reasoning layer. Twenty returns raw people records; the AI aggregates and interprets them. Filtering by industry requires that field to exist and be populated in your workspace. Large result sets may require pagination, and the AI's summary accuracy depends on complete, structured data in your CRM.
Use-case deep-dives
When Twenty wins for support-to-sales handoff at 10-person teams
A 10-person SaaS team routes support tickets into Twenty contacts, then enriches them with LinkedIn URLs and job titles before passing qualified leads to sales. The batch-create tool handles 30-60 inbound contacts per day without rate-limit drama, and the list-records filter lets support reps pull "all contacts from acme.com domain" to spot expansion plays. Twenty's API-key auth means the support lead configures it once and the whole team shares the workspace. This scenario breaks down above 200 inbound contacts daily—batch size caps at 60, so you're chaining multiple calls and the error surface grows. If your support volume is predictable and under that threshold, Twenty keeps the CRM in sync without a Zapier tax.
When Twenty's opportunity tools match finance's spreadsheet brain
A 6-person B2B team runs quarterly pipeline reviews where finance pulls opportunity data into Google Sheets for revenue forecasting. Twenty's list-records tool returns opportunities with filter syntax that mirrors SQL—finance writes "stage equals closed-won AND closeDate after 2025-01-01" and gets a clean JSON export. The get-record tool with relation depth pulls associated company and owner details in one call, so the CFO isn't stitching three CSVs together. This works when your opportunity schema is stable and you're reviewing 50-300 deals per quarter. If your finance team needs custom fields or multi-currency rollups, Twenty's standard-field-only constraint will force manual cleanup. For teams where the CRM schema is simple and the review cadence is predictable, Twenty eliminates the export-import ritual.
When Twenty's task tools keep remote AMs aligned without Slack chaos
A 4-person account management team works across three time zones and uses Twenty tasks to track customer check-ins, renewal reminders, and upsell follow-ups. The list-records tool with ordering by due date surfaces this week's tasks in standup, and the update-record tool lets AMs mark tasks complete or push due dates without opening the CRM UI. The batch-create tool seeds 20-40 recurring tasks at the start of each month—annual renewals, quarterly business reviews—so nothing falls through the cracks. This scenario assumes your task schema fits Twenty's standard fields: title, due date, assignee, status. If your team needs custom task types or dependency chains, you'll hit the standard-field wall and end up back in Asana. For straightforward task tracking where the CRM is the source of truth, Twenty keeps remote teams in sync without tool sprawl.
Frequently asked
What does the Twenty MCP let me do in Switchy?
It connects your Twenty CRM workspace so AI agents can read, create, update, and delete companies, people, opportunities, and tasks. Agents can list records with filters, inspect field definitions, and batch-create up to sixty records at once. Custom fields and workspace-specific enum values aren't supported yet, so you're limited to Twenty's standard schema.
Do I need admin access to connect Twenty?
You need an API key from your Twenty workspace, which typically requires workspace admin or developer permissions to generate. The key grants full read-write access to companies, people, opportunities, and tasks, so whoever connects it should understand that agents will have the same permissions the key carries.
Can the Twenty MCP update custom fields in my workspace?
No. The MCP currently supports only Twenty's standard fields for companies, people, opportunities, and tasks. If your workflow depends on custom fields or workspace-specific picklist values, you'll need to update those manually in Twenty or wait for broader schema support in a future release.
How does this compare to using Twenty's API directly?
The MCP wraps Twenty's GraphQL API into eight focused tools that agents can call conversationally. You skip writing filter syntax and pagination logic yourself, but you lose access to custom fields and advanced relation queries. If your use case fits the standard schema, the MCP is faster; otherwise, call the API.
Who on my team should connect the Twenty workspace?
Whoever owns CRM data integrity and has API key permissions. Because agents can delete records permanently and batch-create dozens at once, the connector should sit with someone who understands your data model and can audit agent actions. One connection covers the whole Switchy workspace.