Overview
The Twenty Zapier integration lets you connect your CRM with thousands of other applications to automate repetitive tasks and streamline your workflow. Build automated workflows (called “Zaps”) without writing any code.What You Can Do
With the Twenty Zapier integration, you can:- Create records - Automatically create contacts, companies, or deals from other apps
- Update records - Keep your CRM data in sync across platforms
- Trigger workflows - Start automated workflows when records change in Twenty
- Delete records - Remove outdated data automatically
Popular Use Cases
Lead Capture
Automatically create contacts in Twenty from form submissions (Google Forms, Typeform, etc.)
Sales Notifications
Send Slack messages when deals are won or lost in Twenty
Data Enrichment
Enrich contacts with data from Clearbit, Hunter, or other services
Email Marketing
Sync contacts to Mailchimp or other email platforms automatically
Setting Up the Integration
Prerequisites
- A Twenty account (cloud or self-hosted)
- A Zapier account (free or paid)
- A Twenty API key
Getting Your API Key
Connecting to Zapier
Create a New Zap
Go to Zapier and click Create Zap.
Choose a Trigger or Action
Select either:
- A trigger app (to start with another app)
- Twenty as your trigger (to start with Twenty events)
Connect Your Twenty Account
When prompted, enter:
- API Key: Your Twenty API key
- API URL (self-hosted only): Your Twenty instance URL (e.g.,
https://crm.yourcompany.com)
Available Triggers
Triggers start your Zap when something happens in Twenty.Record Trigger
The main trigger monitors changes to any record type in Twenty. Configuration:- Record Type: Choose which object to monitor (Person, Company, Opportunity, etc.)
- Operation: Select the event type:
created- New recordsupdated- Modified recordsdeleted- Removed records
- Send a welcome email when a new contact is created
- Notify your team in Slack when a deal is won
- Update a spreadsheet when contact information changes
Available Actions
Actions perform operations in Twenty when your Zap runs.Create, Update, or Delete Record
The main action lets you create, update, or delete any record type. Configuration:- Record Type: Choose the object type (Person, Company, etc.)
- Operation: Select the action:
created- Create a new recordupdated- Update an existing recorddeleted- Delete a record
- Fields: Map fields from your trigger to Twenty fields
Example Zap Configurations
1. Lead Capture from Google Forms
Trigger: Google Forms - New ResponseAction: Twenty - Create Record Setup:
- Set Record Type to “Person”
- Set Operation to “created”
- Map form fields:
- Form “Name” → First Name
- Form “Email” → Email
- Form “Company” → Company Name
- Form “Message” → Notes
2. Slack Notification for New Deals
Trigger: Twenty - Record TriggerAction: Slack - Send Channel Message Setup:
- Set Record Type to “Opportunity”
- Set Operation to “created”
- Configure Slack message:
3. Sync Contacts to Mailchimp
Trigger: Twenty - Record TriggerAction: Mailchimp - Add/Update Subscriber Setup:
- Set Record Type to “Person”
- Set Operation to “created” or “updated”
- Map email and merge fields
- Add to appropriate list
4. Enrich Contacts with Clearbit
Trigger: Twenty - Record TriggerAction 1: Clearbit - Enrich Person
Action 2: Twenty - Update Record Setup:
- Trigger on new Person created
- Use Clearbit to find company data
- Update the Person in Twenty with enriched data
Working with Custom Objects
Twenty supports custom objects, and they’re all available in Zapier:- The Record Type dropdown dynamically loads your objects
- Field mappings update based on your selected object
- Custom fields appear alongside standard fields
If you create a new custom object in Twenty, disconnect and reconnect your Twenty account in Zapier to refresh the object list.
Advanced Features
Multi-Step Zaps
Combine multiple actions for complex workflows:Using Filters
Add filters to control when your Zap runs:- Only create deals above a certain amount
- Skip contacts without email addresses
- Process only specific record types
Lookups and Searches
Find existing records before creating duplicates:- Add a “Find Record” step before “Create Record”
- Search by email or other unique identifier
- Use “Create if not found” to avoid duplicates
Troubleshooting
Zap Not Triggering
If your Zap isn’t firing:- Check that webhooks are enabled in Twenty
- Verify the record type and operation match your criteria
- Test the trigger manually in Zapier
- Check the Zap history for errors
Authentication Errors
If you see authentication failures:- Verify your API key is still valid in Twenty settings
- For self-hosted: confirm your API URL is correct
- Regenerate your API key and reconnect if needed
Field Mapping Issues
If fields aren’t mapping correctly:- Ensure field types match (text to text, number to number)
- Check for required fields in Twenty
- Use custom values for dropdown fields
- Refresh fields in Zapier after schema changes
Rate Limiting
Zapier may throttle requests to prevent overload:- Free plans: Lower rate limits
- Paid plans: Higher throughput
- Batch operations when possible
Implementation Details
The Zapier integration is built on the Twenty GraphQL API:- Integration package:
packages/twenty-zapier/ - Authentication:
packages/twenty-zapier/src/authentication.ts:14 - Triggers:
packages/twenty-zapier/src/triggers/trigger_record.ts:20 - Actions:
packages/twenty-zapier/src/creates/crud_record.ts:111
Best Practices
- Test thoroughly - Use Zapier’s test mode before going live
- Use filters - Prevent unnecessary Zap runs with conditions
- Handle errors - Set up error notifications
- Monitor usage - Check Zap history regularly
- Document workflows - Name your Zaps descriptively
Need Help?
Join our Discord community for Zapier integration support.
