Full Refresh of the User Guide (#15236)

- Created new sections 
- Added new icons
- Created / Updated articles, focussed on use cases instead of only
features
- Added concrete examples of workflows to set up

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
StephanieJoly4
2025-10-22 09:37:31 +02:00
committed by GitHub
parent aba7437fd5
commit 479ac90b1c
87 changed files with 2978 additions and 688 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

@@ -1,7 +1,7 @@
---
title: Collaboration
icon: IconNote
info: Discover how to leverage Notes and Tasks to better collaborate with your team.
image: /images/user-guide/create-workspace/workspace-cover.png
sectionInfo: A brief guide to grasp the basics of Twenty
---
icon: IconMail
info: "Centralize communications and team collaboration."
image: /images/user-guide/emails/emails_header.png
sectionInfo: Centralize communications and team collaboration
---
@@ -0,0 +1,101 @@
---
title: Emails and Calendars
info: "View and manage email conversations within your CRM records."
icon: IconChecklist
image: /images/user-guide/emails/emails_header.png
sectionInfo: Centralize communications and team collaboration
---
**Note**: To connect your email accounts and configure sync settings, visit [Email & Calendar Setup](/user-guide/section/settings/email-calendar-setup).
## How Email Integration Works
Twenty automatically links emails from your connected mailboxes to the relevant CRM records, keeping all communication history in one place.
### Where to Find Emails
Email conversations appear in three main objects:
- **People**: View all emails exchanged with a specific contact
- **Companies**: See all emails related to a company and its employees
- **Opportunities**: Access email threads related to the company linked to this opportunity. Email threads from individual people on the opportunity are not shown yet.
### Viewing Email Threads
1. **Navigate to a Record**: Go to any Person, Company, or Opportunity record
2. **Select the Emails Tab**: Click on the "Emails" tab to view synced emails
3. **Open an Email Thread**: Click on any email to open and read the full conversation
4. **Browse History**: Scroll through the complete email history with that contact
<img src="/images/user-guide/emails/show-inbox.png" style={{width:'100%'}}/>
## What You'll See
### Email Thread View
When you open an email thread, you can:
- **Read Full Conversations**: See the complete email exchange
- **View Participants**: See all people involved in the email thread
- **Check Timestamps**: Know exactly when each email was sent
- **Access Context**: Understand the full communication history
### Email Visibility
Depending on your mailbox settings, you might see:
- **Full Content**: Complete email text and details
- **Subject + Metadata**: Subject line, sender, recipient, and timestamp
- **Metadata Only**: Basic information without email content
## Email Sync Behavior
### What Gets Synced
- **External Emails**: All emails with contacts outside your organization
- **Automatic Linking**: Emails connect to existing People and Company records
- **Multiple Addresses**: Emails from any address link to the same contact record
- **Updates**: New emails appear within 5 minutes
### What Doesn't Get Synced
- **Internal Emails**: Emails between colleagues (same domain) remain private
- **Group Emails**: Distribution lists and group emails are excluded
- **Excluded Folders**: Folders you've chosen not to sync (configured under Settings → Accounts → Email)
### Selective Folder Sync (Lab Feature)
Control which email folders sync with Twenty:
1. Enable "Message Folder" in Settings → Releases → Lab
2. Configure folders under Settings → Accounts → Email
3. Choose specific folders to include or exclude (Inbox, Sent, Archive, custom folders)
## Troubleshooting Email Sync
### Common Sync Issues
- **Sync Delays**: Emails appear within 5 minutes, but initial imports take longer
- **Missing Emails**: Check if:
- Folders are excluded in Message Folder settings
- Contact auto-creation is disabled (emails need existing Twenty records)
- Email is from colleagues (same domain) or group lists
- Mailbox is still completing initial sync
### Email Limitations
- **System Folders**: Some email folders may not be available for sync
- **Aliases**: Only true mailboxes can be connected (not email aliases)
## Calendar Integration
### Calendar Tab
Next to the Emails tab, you'll find a **Calendar** tab that contains the history of meetings scheduled with the record.
**Available for:**
- **People**: View all meetings scheduled with a specific contact
- **Companies**: See all meetings related to a company and its employees
- **Opportunities**: Access meeting history related to the company linked to this opportunity
**Visibility Settings**: Calendar data follows the same visibility settings as emails, ensuring consistent privacy controls across both communication channels.
### Viewing Meeting History
1. **Navigate to a Record**: Go to any Person, Company, or Opportunity record
2. **Select the Calendar Tab**: Click on the "Calendar" tab next to the Emails tab
3. **Browse Meeting History**: View all scheduled meetings and their details
4. **Access Meeting Context**: See meeting participants, times, and related information
<ArticleEditContent></ArticleEditContent>
@@ -1,12 +1,48 @@
---
title: Notes
info: Explore how to efficiently manage notes within record pages in Twenty, including procedures for creating, formatting, commenting, saving, and deleting notes.
info: Explore how to efficiently manage notes within record pages in Twenty.
icon: IconNote
image: /images/user-guide/notes/notes_header.png
sectionInfo: Discover how to leverage Notes and Tasks to better collaborate with your team.
---
Manage your record-linked notes efficiently using the powerful **Notes** feature. This guide walks through how to create, format, comment, and delete notes seamlessly within record pages.
Manage your record-linked notes efficiently using the powerful **Notes** feature. This guide walks through how to create, format, comment, and delete notes seamlessly within record pages.
## Common Use Cases
### Meeting Documentation
- **Meeting Minutes**: Log key discussion points, decisions, and action items from client calls
- **Call Summaries**: Record important details from sales conversations or support calls
- **Follow-up Notes**: Document next steps and commitments made during meetings
### Customer Interactions
- **Support History**: Track customer issues, solutions provided, and resolution status
- **Sales Context**: Record customer preferences, pain points, and buying signals
- **Relationship Building**: Note personal details about contacts to strengthen relationships
### Project Management
- **Status Updates**: Document project progress and milestone achievements
- **Issue Tracking**: Log problems encountered and solutions implemented
- **Team Handoffs**: Share context when transferring accounts between team members
### Automated Note Creation
Use [Workflows](/user-guide/section/workflows/getting-started-workflows) to automatically create notes:
- **Call Recorder Integration**: Auto-generate meeting summaries from recorded calls
- **Deal Handoff Notes**: Auto-create sales cycle summaries when handing off new customers to implementation teams
## Note Features
### Relations Field
Notes include a **Relations** field that allows you to attach a single note to multiple records across different objects. For example, you can link one meeting note to:
- The Person you met with
- The Company they represent
- The Opportunity being discussed
- Any relevant Tasks or other records
This "morph many" relationship ensures important information is accessible from all relevant record pages.
### User Tagging
**Note**: User tagging within notes is not currently available. This feature is planned for 2026, which will allow you to mention team members and trigger notifications.
## Creating Notes
@@ -1,12 +1,54 @@
---
title: Tasks
info: Understand how to effectively manage tasks in Twenty, including tasks creation, viewing, editing, marking as complete, and deletion.
info: Understand how to effectively manage tasks in Twenty.
image: /images/user-guide/tasks/tasks_header.png
sectionInfo: Discover how to leverage Notes and Tasks to better collaborate with your team.
---
Manage all tasks within your workspace using the **Tasks** feature. This guide will show you how to create and manage tasks, switch between upcoming and completed tasks, edit task details, and much more.
## Common Use Cases
### Sales Follow-ups
- **Meeting Next Steps**: Create tasks for action items discussed during client calls
- **Proposal Follow-ups**: Set reminders to check on pending proposals
- **Contract Reviews**: Schedule tasks for contract negotiations and approvals
### Customer Success
- **Onboarding Tasks**: Automatically create onboarding checklists when deals close
- **Check-in Reminders**: Schedule regular customer health check calls
- **Renewal Preparation**: Set tasks to prepare for contract renewals 90 days in advance
### Internal Project Management
Beyond sales and customer success, Tasks support broader organizational needs:
- **Product Development**: Track feature releases, bug fixes, and development milestones
- **Marketing Campaigns**: Manage campaign launches, content creation, and promotional activities
- **HR Operations**: Handle recruitment processes, employee onboarding, and performance reviews
- **Finance Tasks**: Schedule budget reviews, invoice processing, and financial reporting
- **Operations**: Coordinate facility management, vendor relationships, and process improvements
### Automated Task Creation
Use [Workflows](/user-guide/section/workflows/getting-started-workflows) to automatically create tasks:
- **Deal Won Triggers**: Auto-create onboarding tasks assigned to CS team when opportunities close
- **Email Reminders**: Set up weekly email reminders for tasks due this week (sent every Monday)
- **Pipeline Automation**: Create follow-up tasks when deals stall in specific stages
- **Meeting Integration**: Auto-generate tasks from meeting recordings or calendar events
## Task Features
### Relations Field
Tasks include a **Relations** field that allows you to attach a single task to multiple records across different objects. For example, you can link one follow-up task to:
- The Person you need to contact
- The Company they represent
- The Opportunity being pursued
- Any relevant Notes or other records
This "morph many" relationship ensures tasks are accessible from all relevant record pages and provides complete context.
### User Tagging
**Note**: User tagging within tasks is not currently available. This feature is planned for 2026, which will allow you to mention team members and trigger notifications when assigning or updating tasks.
## Creating Tasks
Creating tasks in Twenty is seamless. You can either:
@@ -5,47 +5,71 @@ export const USER_GUIDE_INDEX = {
{ fileName: 'what-is-twenty' },
{ fileName: 'create-workspace' },
{ fileName: 'getting-around-twenty' },
{ fileName: 'configure-workspace-in-three-steps' },
{ fileName: 'configure-your-workspace' },
{ fileName: 'implementation-services' },
{ fileName: 'migrating-from-other-crms' },
{ fileName: 'import-export-data' },
],
'Data Model': [
{ fileName: 'data-model' },
{ fileName: 'customize-your-data-model' },
{ fileName: 'standard-objects' },
{ fileName: 'objects' },
{ fileName: 'fields' },
{ fileName: 'creating-records' },
{ fileName: 'object-relations' },
{ fileName: 'data-model-faq' },
{ fileName: 'data-model' },
],
Views: [
{ fileName: 'views' },
{ fileName: 'views-sort-filter' },
{ fileName: 'kanban-views' },
'CRM Essentials': [
{ fileName: 'crm-essentials' },
{ fileName: 'contact-and-account-management' },
{ fileName: 'pipeline' },
{ fileName: 'view-management' },
{ fileName: 'sales-use-cases' },
],
Collaboration: [
'Workflows': [
{ fileName: 'getting-started-workflows' },
{ fileName: 'workflow-features' },
{ fileName: 'internal-automations' },
{ fileName: 'external-tool-integration' },
{ fileName: 'workflow-troubleshooting' },
{ fileName: 'workflow-credits' },
{ fileName: 'professional-services' },
{ fileName: 'workflows' },
],
'Collaboration': [
{ fileName: 'collaboration' },
{ fileName: 'emails-and-calendars' },
{ fileName: 'notes' },
{ fileName: 'tasks' },
],
Integrations: [
{ fileName: 'integrations' },
{ fileName: 'getting-started-workflows' },
{ fileName: 'workflows' },
{ fileName: 'emails' },
'Integrations API': [
{ fileName: 'apis-overview' },
{ fileName: 'api-webhooks' },
{ fileName: 'import-export-data' },
{ fileName: 'integrations-api' },
{ fileName: 'integrations' },
],
Settings: [
'Reporting': [
{ fileName: 'reporting' },
{ fileName: 'reporting-overview' },
],
'Settings': [
{ fileName: 'settings' },
{ fileName: 'profile-settings' },
{ fileName: 'experience-settings' },
{ fileName: 'email-calendar-setup' },
{ fileName: 'workspace-settings' },
{ fileName: 'member-management' },
{ fileName: 'permissions' },
{ fileName: 'domains-settings' },
{ fileName: 'releases-settings' },
{ fileName: 'settings-faq' },
],
Pricing: [
'Pricing': [
{ fileName: 'pricing' },
{ fileName: 'billing-and-pricing-faq' },
],
Other: [
{ fileName: 'other' },
'Resources': [
{ fileName: 'resources' },
{ fileName: 'glossary' },
{ fileName: 'tips' },
{ fileName: 'github' },
],
},
@@ -0,0 +1,9 @@
---
title: CRM Essentials
info: "Essential CRM features for managing leads, sales, and customers."
icon: IconTarget
image: /images/user-guide/home/contact-and-account-management.png
sectionInfo: "Essential CRM features for managing leads, sales, and customers"
---
@@ -0,0 +1,94 @@
---
title: Contact and Account Management
info: "Create and manage People and Company records to build your customer database."
icon: IconNote
image: /images/user-guide/home/contact-and-account-management.png
sectionInfo: "Essential CRM features for managing leads, sales, and customers"
---
## Getting data into your CRM
When you start using Twenty, you'll want to get your contacts and companies into the system. There are several ways to populate your CRM depending on your workflow and data sources.
### Manual entry
The most straightforward approach is adding records directly through the Twenty interface. Go to the **People** section and click the **+** button to add a new contact. Fill in their name, email, phone, and link them to their company. For companies, head to the **Companies** section and add the organization details - company name, domain, industry, and size.
The domain field is particularly important for company identification, and the email field is essential for person identification.
### CSV imports
When you have existing data from spreadsheets or other systems, CSV import is your fastest option. You can prepare your data in Excel or Google Sheets, then upload it all at once. This is particularly useful when migrating from another CRM or when someone has been tracking contacts in spreadsheets. Our [Import/Export Data](/user-guide/section/getting-started/import-export-data) guide walks you through the process.
### Automated data capture
For ongoing lead generation, you can set up automated workflows that bring data directly into Twenty:
**Website forms**: When someone fills out a form on your website, you can configure it to send the information to Twenty automatically. The form submission triggers a webhook that activates a workflow in Twenty, creating the new contact record without any manual work.
**Integration with other systems**: If you use other business tools, you can connect them to Twenty using API calls and workflows. This lets you automatically sync data between systems - for example, bringing in new customers from your billing system or leads from your marketing platform.
To learn more about setting up these automated data flows, check out our [Workflows](/user-guide/section/workflows) section.
### Email and calendar sync
When you connect your mailbox and calendar to Twenty, the system can automatically create People and Companies records for people you email or meet with. If you send an email to someone who isn't already in your CRM, Twenty can create a new Person record for them. The same happens when you schedule meetings with new contacts through your calendar.
This is particularly useful for sales and business development teams who are constantly meeting new people. Instead of manually adding every new contact, Twenty captures them automatically as you communicate. Learn how to set this up in our [Emails and Calendars](/user-guide/section/collaboration/emails-and-calendars) guide.
### Reducing manual work
Even when adding data manually, you can use workflows to streamline the process. For instance, you might set up automation that assigns new contacts to team members based on their location, or that automatically creates follow-up tasks when certain types of contacts are added.
## Organizing your contacts
### Keeping data unique and clean
Twenty automatically enforces uniqueness to keep your data organized. Each person's email address serves as a unique identifier - you can't have two people with the same email. Similarly, company domains are unique, so you won't accidentally create duplicate companies.
If your business needs other fields to be unique (like phone numbers, or reference codes), you can configure this in your data model. Head to our [Data Model](/user-guide/section/data-model/customize-your-data-model) section to learn how to set up additional uniqueness constraints for your specific needs.
### Handling duplicates
Sometimes you'll end up with duplicate records. Twenty has a merge feature for both People and Companies - you can combine duplicate records to keep your database clean without losing any information.
To merge records, select 2 records, open the ```Cmd+K``` menu (the menu with the ... icon on the very top right) and click "Merge Records".
### Creating company hierarchies
If you work with large organizations that have subsidiaries or multiple divisions, you can create relationships between companies. Set up relationship fields between Company records to map out these connections. This helps you understand the full organizational structure you're dealing with.
### Customizing your views
Different team members might need to see different information. You can create custom views that show different columns for different purposes - maybe your sales team needs to see deal stages while your support team focuses on contact details. Learn more about this in our [View Management](/user-guide/section/crm-essentials/view-management) article.
## Working with records
### What you'll find in each record
When you open a Person or Company record, you'll see all their information organized in tabs:
- **Fields**: The basic information like name, email, phone, and any custom fields you've added
- **Relations**: Shows the connections between this record and records from other objects
- **Timeline**: A chronological view of all interactions and updates to this record
- **Tasks**: Any follow-up tasks related to this contact
- **Notes**: Team notes and observations about this person or company
- **Files**: Documents and attachments related to this record
- **Emails**: Email threads with this contact (when your team has connected their mailboxes)
- **Calendar**: Meetings and appointments with this contact
The Email and Calendar tabs are particularly powerful - they automatically show all email exchanges and meetings that anyone on your team has had with this contact, as long as they've connected their mailbox to Twenty. You can learn more about setting this up in our [Emails and Calendars](/user-guide/section/collaboration/emails-and-calendars) guide.
### Adding the fields you need
The standard fields might not capture everything important for your business. If you need additional information - like customer segments, referral sources, or industry-specific data - you can add custom fields or modify existing ones. Head to our [Data Model](/user-guide/section/data-model/customize-your-data-model) section to learn how to customize your setup.
## Managing deleted records
When you delete a record in Twenty, it's not gone forever. Records are "soft deleted," which means they're hidden but can be restored if needed.
To access deleted records, use ```Cmd+K``` (or Ctrl+K on Windows) to open the command menu, then click "See deleted records." From there, you can either restore records or permanently delete them if you're sure you don't need them.
This safety net means you can clean up your database without worrying about accidentally losing important information.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,102 @@
---
title: Pipeline
info: "Track and manage your sales opportunities through customizable pipeline stages."
icon: IconNote
image: /images/user-guide/kanban-views/kanban.png
sectionInfo: "Essential CRM features for managing leads, sales, and customers"
---
## Understanding Pipelines
A sales pipeline tracks opportunities from initial contact to closed deal. Each stage represents a step in your sales process, and opportunities move through these stages as they progress toward closing.
Twenty includes standard sales stages like Prospecting, Qualification, Proposal, Negotiation, Closed. You can customize these stages to match your specific sales process.
## Working with Kanban Views
Kanban views visually map out your pipeline, where each column represents a stage and each card represents an opportunity. Each card shows key information like deal value, close date, and assigned owner at a glance. For complete details - including notes, tasks, meetings, and email history - click on any card to open the full opportunity record.
### Moving opportunities through your pipeline
You can move each opportunity between stages as it progresses through your sales process by dragging and dropping. Hold your click on a card and move it to the next stage.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927888627?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
### Customizing your pipeline stages
You can tailor your pipeline to suit your specific sales process. Stages represent values in a Select Field, so you can add, remove, or rename them as needed.
#### Adding stages
To add a stage, access the Select Field Settings by navigating to Settings > Data Model, selecting your object, and then the field your Kanban board depends on.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927890428?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
#### Removing stages
To remove a stage, hover the stage name or the `⋮` icon, click `Edit from settings` in the Select Field settings, and then click **Delete** next to the relevant stage.
<img src="/images/user-guide/kanban-views/edit-stage.png" style={{width:'100%'}}/>
### Customizing the cards
You can configure your Kanban board to display some fields and hide others. To hide a field, click on **Options** on the top right, then on **Fields** to bring up the list of options. Hover the field you want to hide to bring up the `-` button. Click on it to hide the field.
You can also rearrange the order of fields by holding down the field name and dragging it to where you want it.
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}}/>
### Compact view
You can also hide all the fields and get an overview of all the opportunities at a glance. To do so, click on **Options** on the top right and turn on the toggle for **Compact view** after selecting layout in kanban view.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}}/>
## Advanced pipeline management
### Automation with workflows
Use [Workflows](/user-guide/section/workflows/getting-started-workflows) to automate your pipeline:
- **Automatic stage progression**: Move deals based on activities
- **Notifications**: Alert team members of stage changes
- **Task creation**: Generate follow-up tasks for each stage
### Multiple pipelines
You can create different pipelines for various business lines, market segments, or specialized sales teams by creating new views. Each view can show different opportunities with specific filters and stages tailored to your needs. Learn more about setting this up in our [View Management](/user-guide/section/crm-essentials/view-management) guide.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,15 @@
---
title: Sales Use Cases
info: "Discover advanced sales capabilities that can be built using Twenty's workflow system."
icon: IconNote
image: /images/user-guide/workflows/sales-use-cases.png
sectionInfo: "Essential CRM features for managing leads, sales, and customers"
---
## Advanced Sales Capabilities
GTM teams often need advanced sales capabilities like lead scoring, data enrichment, round robin / territory assignment, automated reminders, and email sequences. While these aren't built-in features in Twenty, they can all be configured and tailored to your specific needs using our flexible workflow system.
Visit our [Workflows section](/user-guide/section/workflows/getting-started-workflows) to learn how to build these automations step by step. For detailed examples, see our [Internal Automations](/user-guide/section/workflows/internal-automations) and [External Tool Integration](/user-guide/section/workflows/external-tool-integration) guides.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,197 @@
---
title: View Management
info: "Create and customize views to organize your data with filters, sorting, and different layouts."
icon: IconNote
image: /images/user-guide/table-views/table.png
sectionInfo: "Essential CRM features for managing leads, sales, and customers"
---
## Layout Options
You can display your data in three different layouts, each suited for different purposes. Custom layouts to customize what the page looks like for each type of record will be released in December 2025.
### Default View
Each object comes with an unfiltered, unsorted, and undeletable view known as the Default view. It's named after the object's plural name, such as "All Companies," "All People," "All Opportunities".
<img src="/images/user-guide/views/default-view.png" style={{width:'100%'}}/>
### List Layout
The standard table format that displays records in rows and columns. This is perfect for seeing detailed information at a glance and comparing records side by side.
### List Group By Layout
Organizes your records by grouping them based on a select field. For example, you can group opportunities by stage, companies by locations, or any other select field. This helps you see patterns and organize related records together.
### Kanban Layout
A visual board where each column represents a stage and each record appears as a card. This layout is ideal for managing pipelines and workflows where records move through different stages. For more details on using Kanban views for pipeline management, see our [Pipeline](/user-guide/section/crm-essentials/pipeline) article.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927888627?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
## Creating New Views
There are three ways to create a new view:
### Using Cmd+K Menu
Use ```Cmd+K``` (or Ctrl+K on Windows) to open the command menu, then click "Create a new view".
### Using the View Dropdown Menu
Click on the view dropdown menu (top left), then click "Add View" at the bottom. From this menu you can:
- Choose an icon and name for your view
- Select the layout type (List or Kanban). Please note that you need to first select the List layout and then add a Group By. You cannot create a List Group By directly from there.
- For Kanban views, select which select field to use as column headers
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927639721?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
### Creating Views from Existing Filters
When you modify the sorting and filtering of an existing view, a "Save as new view" button appears. This lets you create a new view based on your current customizations.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927643495?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
## Making Views Actionable
The guidance below shows you how to customize the columns of your views. We do not recommend keeping all the columns - those views can be simplified and made actionable by adding sorting conditions and displaying only certain columns that are relevant to your specific use case.
## Customizing Your Views
All layouts support the same customization options: sorting, filtering, and field selection. You can make quick one-time changes by clicking directly on the column name, or use the Options Menu for more comprehensive editing.
### Quick Actions vs Options Menu
**For one-time changes**: Click directly on column headers to sort, or use the ```Move Left```, ```Move Right``` buttons.
**For multiple edits**: Use the **Options Menu** (top right corner) when you want to make several changes in a row. This menu gives you access to:
- **Layout selection** (List, List Group By, Kanban)
- **Grouping options** (for List Group By layout)
- **Fields management** (show/hide and reorder columns)
### Filtering Your Data
You can apply filters to show only the records that match your criteria. Click **Filter** in the toolbar, select a field, choose your condition, and set the value. You can add multiple filters for advanced filtering based on several conditions.
<div style={{padding:'71.24% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/926282262?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
### Sorting Your Records
Control the order of your records by clicking on any column header to sort by that field. Click again to reverse the sort order. You can apply multiple sorts for complex organization.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927885588?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
### Managing Fields and Columns
You can choose which fields to display and reorder them. For quick changes, click on a column name directly. For multiple edits, use **Options Menu > Fields** where you can:
- Show or hide fields using the eye icon
- Reorder fields by dragging and dropping
- Make multiple changes efficiently in one place
## Managing Your Views
### View Dropdown Menu Features
The view dropdown menu (top left) is your central hub for view management. From here you can:
- **Edit view names and icons**: Click the three dots next to any view
- **Reorder views**: Drag and drop views to organize them by priority
- **Save views as favorites**: Favorites appear just under Settings for quick access
### Editing and Deleting Views
To modify or remove views, open the view dropdown menu and hover over the view you want to change. Click the three dots that appear to access edit and delete options.
### Favorites and Organization
Views saved as favorites appear just under Settings in your navigation, giving you instant access to your most important views. Use the view dropdown menu to organize your views by dragging them into the order that works best for your workflow.
For more advanced data organization, see our [Data Model section](/user-guide/section/data-model) to learn about customizing fields and objects.
<ArticleEditContent></ArticleEditContent>
@@ -1,7 +1,7 @@
---
title: Data Model
info: Discover how to customize and get the most of your data model.
info: Customize your data model to fit your unique business processes.
icon: IconChecklist
image: /images/user-guide/objects/objects.png
sectionInfo: A brief guide to grasp the basics of Twenty
image: /images/user-guide/fields/data_model.png
sectionInfo: Flexible data model designed to support your unique business processes
---
@@ -2,12 +2,12 @@
title: Customize your data model
info: "Learn how to design and create a data model that reflects how you operate."
icon: IconNote
image: /images/user-guide/import-export-data/cloud.png
sectionInfo: Discover how to use standard and custom objects in your workspace.
image: /images/user-guide/fields/custom_data_model.png
sectionInfo: Flexible data model designed to support your unique business processes
---
## What is a data model?
A data model is the structure that defines how information is organized in your CRM. It determines what objects exist (like companies, people, or deals), what properties they have (those are the fields), and how they relate to each other. You can think of it as the map of your customer data.
A data model is the structure that defines how information is organized in your CRM. It determines what objects exist (like companies, people, or opportunities), what properties they have (those are the fields), and how they relate to each other. You can think of it as the map of your customer data.
## Why should you customize your data model?
Every business works differently. Being able to fully customize your data model means you can shape Twenty around your processes instead of forcing yours into a rigid system.
@@ -17,7 +17,8 @@ Twenty offers the flexibility you need to shape the data model that will best su
There is rarely only one way to build a data model. Below are a few tips to help you build yours.
**1. Start with your core objects.**
Identify the main things you work with (e.g. Companies, People, Opportunities). Those are already available as they are used very often. But think of any other you might need.
Identify the main concepts you work with (e.g. Companies, People, Opportunities). Those three objects are already available as they are used very often. But think of any other you might need.
Example: Stripe would need an object ```Subscriptions```, Airbnb would need an object ```Trips```, a start-up accelerator an object ```Batches```.
**2. Use fields for variations, not new objects.**
If something is just a characteristic of an existing object (e.g. “Industry” for a Company, or “Status” for an Opportunity), make it a field. Fields are best for categories, labels, and attributes.
@@ -37,10 +38,11 @@ If something can be linked multiple times and you dont know how many, its
Start with fields. Move to new objects only when you feel the limits — too many fields, repeated records, or relationships that dont fit neatly.
### Special note on People and Companies
### Special note on People, Companies and Opportunities
- **People and Companies are the only two objects from where you can access emails and meetings.** We recommend using these as much as possible. If you need to create categories of People or Companies, use fields rather than new objects.
- Example: it is best to use the **People object** for both prospects and partners, adding a field called `Person Type`. Avoid creating a Partner object, since you wouldnt be able to access email threads from it. Instead, create different views under People — one showing Partners, another showing Prospects.
- **People, Companies and Opportunities are the only objects from where you can access the emails and meetings synchronized from your mailbox / calendar.** We recommend using those as much as possible. If you need to create categories of People or Companies, use fields rather than new objects.
Example: it is best to use the **People object** for both prospects and partners, adding a field called `Person Type`. Avoid creating a Partner object, since you wouldnt be able to access email threads from it. Instead, create different views under People — one showing Partners, another showing Prospects.
- Given the point above, its fine to have fields that dont apply to every record. For example, under People you might add a **Referral Link** field that is only relevant when `Person Type = Partner`. Thats okay — you can hide this field from views where it doesnt matter.
@@ -59,28 +61,4 @@ If the answer is “yes” to one or more of these, its probably time for a n
Our team can assist you designing and creating the data model you need. Discover our Onboarding Pack [here](https://twenty.com/onboarding-packages).
## FAQ
<details>
<summary>Where can I see and edit my data model?</summary>
You can access your Data Model under the `Settings`.
</details>
<details>
<summary>Why can't I see the Data Model under the Settings?</summary>
Reach out to your workspace administrator, data model is usually only accessible by administrators.
</details>
<details>
<summary>How many custom objects or fields can I create?</summary>
You can create as many custom objects and fields as you need - the price won't change.
</details>
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,123 @@
---
title: Data Model FAQ
icon: IconQuestionMark
info: Frequently asked questions about data model configuration, limitations, and upcoming features.
image: /images/user-guide/what-is-twenty/faq.png
sectionInfo: Flexible data model designed to support your unique business processes
---
## Object Management
<details>
<summary>Can I reorder objects in the left navigation bar?</summary>
Not yet. Object ordering in the navigation is currently fixed, but this feature is planned for a future release.
</details>
<details>
<summary>Can I hide objects from the left navigation bar?</summary>
All active objects appear in the navigation. You can deactivate objects you don't need under **Settings → Data Model**.
</details>
<details>
<summary>Can I delete standard objects (People, Companies, etc.)?</summary>
You can deactivate any standard objects but you cannot hard delete them.
</details>
## Field Capabilities
<details>
<summary>Can I create formula fields?</summary>
Formula fields are coming in **Q1 2026**. In the meantime, you can use workflows to calculate and update field values automatically.
</details>
<details>
<summary>Can I have nested fields in my objects?</summary>
Nested fields are coming in **Q1 2026**. Currently, you can use workflows to bring field values from related objects. For example, to display a Company's industry on a Person record, create a custom field on People and use a workflow to sync the value.
</details>
<details>
<summary>Why can't I update relation field names?</summary>
Relation field names impact the API structure and cannot be changed after creation. If you need to rename a relation field, you'll need to create a new one and delete the old one.
</details>
<details>
<summary>Why do I need different singular and plural names?</summary>
Our GraphQL API uses both forms for different operations:
- ```createPerson``` (singular) for single record actions
- ```createPeople``` (plural) for bulk operations
This creates limitations when singular and plural forms are the same, but it improves the developer experience.
</details>
<details>
<summary>Why are some field names protected?</summary>
Certain field names like "Type" are reserved for system use. Choose alternative names like "Category" or "Classification" instead.
</details>
## Advanced Features
<details>
<summary>Can I create many-to-many relationships?</summary>
Many-to-many relationships are coming in **Q1 2026**. Currently, create an intermediate object with two 1-to-many relationships as a workaround.
</details>
<details>
<summary>What are Morph Many relationships?</summary>
Morph Many relationships (coming **Q4 2025**) allow one object to relate to multiple different object types. For example, an Opportunity could relate to either a Person or a Company.
</details>
<details>
<summary>Can I reorder fields in objects?</summary>
Field reordering will be available with custom layouts in **Q4 2025**. Currently, fields appear in the alphabetical order.
</details>
## Access and Permissions
<details>
<summary>Where can I see and edit my data model?</summary>
You can access your Data Model under **Settings → Data Model**.
</details>
<details>
<summary>Why can't I see the Data Model under Settings?</summary>
Reach out to your workspace administrator. Data model access is usually restricted to administrators only.
</details>
<details>
<summary>How many custom objects or fields can I create?</summary>
You can create as many custom objects and fields as you need - the price won't change.
</details>
## Need More Help?
Check our [implementation services](/user-guide/section/getting-started/implementation-services) to get help with complex data model design.
<ArticleEditContent></ArticleEditContent>
@@ -1,29 +1,31 @@
---
title: Fields
title: Fields
info: "Understand the role of fields and how to handle them."
icon: IconChecklist
image: /images/user-guide/fields/field.png
sectionInfo: Discover how to use standard and custom objects in your workspace.
sectionInfo: Flexible data model designed to support your unique business processes
---
## About Fields
Fields in an object are akin to the column names in an Excel spreadsheet, indicating the type of data stored — such as text, numbers, or dates — under specific names. These fields can be standard (created by default) or custom (user-created).
Fields are like columns in a spreadsheet. They store different types of data like text, numbers, or dates. Fields can be standard (built-in) or custom (the ones you create).
### Standard Fields
The platform includes Standard Fields by default as predefined fields designed to meet common, universal requirements in business modeling.
Standard fields come built-in with Twenty to handle common business needs.
As an example, "First Name" and "Last Name" are standard fields within the `People` object. They're text fields, meant to capture and store the respective names of individuals.
For example, "First Name" and "Last Name" are standard fields in the `People` object. They store text data for individual names.
As essential parts of the data model, you can't delete them, but only deactivate them.
You cannot delete standard fields, but you can deactivate them if you don't need them.
You can also customize the options of the standard ```SELECT``` type fields, for example the options for the ```Stage``` on Opportunities.
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}}/>
### Custom Fields
A `Custom Field` is a user-defined attribute you can add to a standard or custom object to store specific information that's not captured by the default fields. These fields can carry different types of data such as text, number, date, Select values, etc. Custom fields allow you to tailor your database to the unique needs of your business.
Custom fields let you add your own data fields to any object. You can store text, numbers, dates, dropdown selections, and more. Use custom fields to track information that's specific to your business.
For instance, a custom field for SpaceX could be "Rocket Active Status", indicating if a rocket is operational.
@@ -40,17 +42,17 @@ To add a custom field to any object, follow these steps:
Your newly created field is now available within the application's fields. To display it on a specific view, click on the options menu, then select "Fields".
<div style={{padding:'71.15% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927628219?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
<iframe
src="https://player.vimeo.com/video/927628219?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
@@ -58,36 +60,58 @@ Your newly created field is now available within the application's fields. To di
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
For creating `Custom Fields` in a more expeditious manner, make use of the **+** button located in the top right of the chosen object table, and then select the Customize fields option. This pathway affords you rapid access to the Data Model Settings page.
**Quick way:** Click the **+** button at the top right of any object table, then select "Customize fields". This takes you directly to the Data Model settings.
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}}/>
## Deactivate a field
You can deactivate a field in the app to stop it from functioning without disrupting your data model. Deactivation is like a soft deletion, making the field unavailable for use in the app.
You can deactivate a field to hide it from the app without losing your data. Think of it as hiding the field rather than deleting it.
Here's how you can do it:
1. Locate the field you wish to deactivate. You'll find these under various object sections.
1. Find the field you want to deactivate in your object settings.
2. To the right of the line, three vertically aligned dots symbolize a menu button. Click on this to unveil a dropdown list of options.
2. Click the three dots (⋮) next to the field to open the menu.
3. In the dropdown menu, find and click on the "Deactivate" option.
3. Select "Deactivate" from the dropdown.
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}}/>
And, voilà! You've deactivated a field. But what does this imply for your CRM operations?
What happens when you deactivate a field?
1. **In-App Functionality:** A deactivated field will no longer be functional within the app. You won't be able to assign values to these fields anymore.
1. **In the app:** The field disappears and you can't add new values to it.
2. **Relation Fields:** If the deactivated field happens to be a relation field, the system doesn't delete the existing relation. It does prevent you from assigning or linking records to each other via this field in the app, moving forward.
2. **Existing relationships:** If it's a relation field, existing connections stay but you can't create new ones.
3. **API:** You can still use deactivated Fields and their data through the API.
3. **API access:** You can still access the field and its data through the API.
You can reactivate Standard and Custom Fields or have the option to permanently delete them.
## Other field options
## Make Fields Unique
You can set a field as unique to prevent assigning the same value to different records, which helps maintain data integrity and simplifies relations import. In case of error at uniqueness creation, check all duplicates in your data (even soft deleted records).
Make a field unique to ensure no two records can have the same value. For example, email addresses should be unique for each person.
<ArticleEditContent></ArticleEditContent>
If you get an error when setting uniqueness, check for duplicate values in your data (including deleted records).
## Field Configuration Best Practices
### Naming Conventions and Limitations
- **Relation field names cannot be updated** after creation (impacts API structure)
- **Singular and plural named must be distinct** - Our GraphQL API needs distinct names for mutations
- **Protected field names** - some names are reserved for system usage (e.g., ```Type```)
### Currency and Phone Fields
- **Default currency** - can be configured
- **Default country codes** - can be configured for phone fields
### Select Fields
- **A default option can be selected** for each Select field
### Record Text Fields
- **Each object has one main display field** - This field appears in the leftmost column and represents the record when linked to other objects. It must be a text field. For example, People uses "Name" as the main field, so when you link a person to a company, you'll see their name in the company's view.
### Relation Fields
- **Connect objects together** - Relation fields link records from different objects. For detailed information on creating and managing relationships, see our [Relation Fields](/user-guide/section/data-model/object-relations) article.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,52 @@
---
title: Relation Fields
icon: IconLink
info: Learn how to create relationships between objects using relation fields and configure 1-to-many relationships.
image: /images/user-guide/fields/relations_field.png
sectionInfo: Flexible data model designed to support your unique business processes
---
## What are Relation Fields?
Relation fields link records from one object to records in another object. For example:
- **People** → **Companies** (each person works for a company)
- **Opportunities** → **People** (each deal has a contact person)
- **Tasks** → **Opportunities** (each task relates to a specific deal)
## Creating Relation Fields
### 1. Add the Field
Go to **Settings → Data Model → [Your Object]** and click **Add Field**.
### 2. Choose Relation Type
- **Field Type**: Select "Relation"
- **Target Object**: Choose which object to connect to
- **Relationship**: Currently supports **1-to-many** relationships only. Make sure to create the relationship in the right direction.
### 3. Configure Field Names
You'll need to set names for both sides of the relationship:
- **Source field name**: How the field appears on your current object
- **Target field name**: How the reverse field appears on the target object
**Note:** Field names cannot be edited once the relation is saved as it impacts the API structure. Choose carefully!
## Relating to Team Members
You can create relations to any object, including **Workspace Members** (your Twenty team users). This is useful for creating ownership fields:
- **Account Owner** - Link a Company to a team member who manages it
- **Deal Owner** - Assign an Opportunity to a specific salesperson
When you create a relation to Workspace Members, you'll see your team members' names in dropdown selections, making it easy to assign ownership and responsibilities.
## Best Practices
- **Plan your relationships** before creating them
- **Use clear, descriptive names** for both field names
- **Test relationships** with sample data before full implementation
## Upcoming Features
- **Many-to-many relationships** (Coming Q1 2026)
- **Morph Many relationships** (Coming Q4 2025)
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,89 @@
---
title: Objects
info: "Learn about standard objects and how to create custom ones for your business needs."
icon: IconChecklist
image: /images/user-guide/objects/objects_orange.png
sectionInfo: Flexible data model designed to support your unique business processes
---
## Standard Objects
Standard objects are predefined entities in your workspace that offer integrated, standardized intelligence requiring no extra configuration. They're part of a shared data model accessible to all users of Twenty.
<img src="/images/user-guide/objects/standard-objects.png"style={{width:'100%'}}/>
### People
The `People` object stores your contacts. It includes contact details and interaction history, so you can see all your customer interactions in one place.
### Company
The `Companies` object stores your business accounts. It includes details like industry, size and location. You can add a field to detail your relationship with this account: prospect, customer, other. Companies connect to both People and Opportunities objects.
### Opportunities
The `Opportunities` object stores deal-related data. It tracks the progression of potential sales, from prospecting to closure, recording stages, deal sizes, associated account, and expected close date. You can view your sales pipeline in a kanban layout.
## Custom objects
Custom objects let you store information that's unique to your organization and that standard objects can't handle. For example, if you're SpaceX, you may want to create a custom object for Rockets and Launches.
<img src="/images/user-guide/objects/custom-objects.png"style={{width:'100%'}}/>
### Creating a new custom object
To create a new custom object:
1. Go to Settings in the sidebar on the left.
2. Under Workspace, go to Data model. Here you'll be able to see an overview of all your existing Standard and Custom objects (both active and disabled).
<div style={{padding:'71.24% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/926288174?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
3. Click on `+ New object` at the top. Enter the name (both singular and plural), choose an icon, and add a description for your custom object and hit Save (at the top right). Using Listing as an example of custom object, the singular would be "listing" and the plural would be "listings" along with a description like "Listings that hosts created to showcase their property."
**Note:** The singular and plural names must be different. This is required for our GraphQL API to work properly.
<div style={{padding:'71.24% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/926293493?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
4. Once you create your custom object, you'll be able to manage it. You can edit the name, icon and description, view the different fields, and add more fields.
<img src="/images/user-guide/objects/customize-fields.png"style={{width:'100%'}}/>
**Note:** If you're not sure whether a new object or field is needed, check [this article](/user-guide/section/data-model/customize-your-data-model) for guidance on designing your data model.
<ArticleEditContent></ArticleEditContent>
@@ -1,85 +0,0 @@
---
title: Standard and Custom Objects
info: "Discover how to use standard and custom objects in your workspace."
icon: IconChecklist
image: /images/user-guide/objects/objects.png
sectionInfo: Discover how to use standard and custom objects in your workspace.
---
## Standard Objects
Standard objects are predefined entities in your workspace that offer integrated, standardized intelligence requiring no extra configuration. They're part of a shared data model accessible to all users of Twenty.
<img src="/images/user-guide/objects/standard-objects.png"style={{width:'100%'}}/>
### People
The `People` object aggregates customer relations data. It includes contact details and interaction history, providing a comprehensive view of your business's customer interactions.
### Company
The `Companies` object consolidates business account information. It encompasses all pertinent data such as industry, size, location, and contact personnel, thereby offering an integrated perspective of your business's organizational connections. It is both link to the People and Opportunities objects.
### Opportunities
The `Opportunities` object encapsulates deal-related data. It tracks the progression of potential sales, from prospecting to closure, recording stages, deal sizes, associated accounts, and expected closure dates. This provides a well-rounded view of your business's sales pipeline.
## Custom objects
Custom objects are objects that you can create to store information that's unique to your organization. They're not built-in; members of your workspace can create and customize custom objects to hold information that standard objects aren't suitable for. For example, if you're SpaceX, you may want to create a custom object for Rockets and Launches.
<img src="/images/user-guide/objects/custom-objects.png"style={{width:'100%'}}/>
### Creating a new custom object
To create a new custom object:
1. Go to Settings in the sidebar on the left.
2. Under Workspace, go to Data model. Here you'll be able to see an overview of all your existing Standard and Custom objects (both active and disabled).
<div style={{padding:'71.24% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/926288174?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
3. Click on `+ New object` at the top, then choose Custom as the object type. Enter the name (both singular and plural), choose an icon, and add a description for your custom object and hit Save (at the top right). Using Listing as an example of custom object, the singular would be "listing" and the plural would be "listings" along with a description like "Listings that hosts created to showcase their property."
<div style={{padding:'71.24% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/926293493?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
4. Once you create your custom object, you'll be able to manage it. You can edit the name, icon and description, view the different fields, and add more fields.
<img src="/images/user-guide/objects/customize-fields.png"style={{width:'100%'}}/>
<ArticleEditContent></ArticleEditContent>
@@ -1,7 +1,7 @@
---
title: Getting Started
icon: IconUsers
info: Discover Twenty, an open-source CRM, its features, benefits, system requirements, and how to get involved.
info: Start your Twenty journey with these essential guides.
image: /images/user-guide/what-is-twenty/20.png
sectionInfo: A brief guide to grasp the basics of Twenty
---
@@ -1,95 +0,0 @@
---
title: Configure your Workspace
info: "Start configuring your workspace with these three steps."
icon: IconNote
image: /images/user-guide/table-views/table.png
sectionInfo: Discover Twenty, an open-source CRM.
---
Every business works differently. Thats why Twenty lets you shape the CRM around your needs—not force your processes into ours.
**Start with these three steps to set it up your way.**
# 1. Bring your data in
Bringing your existing data into Twenty gives your team context from the start.
We're here to help you make this transition as smooth as possible. Do not hesitate to reach out.
## Connect your mailbox
If you have not done so when creating your workspace, connect you **Google or Microsoft account**. This allows Twenty to:
- Import your messages and meetings
- Auto-create contacts based on interactions (optional)
- Keep communication history visible for your team
You can do so under Settings > Accounts.
You control which contacts are imported in Twenty and what gets shared with the rest of your team: full message content, subject and the metadata (sender, date, subject), or just the metadata. This is the same for your meetings.
You can configure the visibility and the contact creation preferences under Settings > Email / Calendar.
#### Using another provider?
This is currently under beta: you can activate this feature under Settings > Releases > Lab tab.
You can add email accounts from any provider that supports IMAP and send emails with SMTP. Synchronizing calendars with CalDAV is coming soon!
## Import data via csv
Use the csv import to add contacts who are not in your mailbox, product data or existing enrichment you might have, as well as your previous deals, notes, tasks.
Import via csv is available for any custom object.
To import the csv file, make sure to open the Command menu (`Cmd + K` or `Ctrl + K`) from a view listing the object you're about to upload.
Then, click on `Import records`.
Below are a few guidelines:
- Download the sample file to understand the expected format.
- Limit each file to 10k records.
- Remove duplicate emails for People or duplicate domains for Companies. These fields are used as unique identifiers, alongside the id fields.
- Create relations between objects using the Twenty id, the person's email or the company domain.
Creating relations via csv based on fields other than the Twenty id for the other objects will be supported during the Fall 2025.
- Review errors before starting the import: Potential errors are detected once the field mapping is completed. You can edit the wrong values - highlighted in yellow - directly in the UI.
Read [this article](https://twenty.com/user-guide/section/integrations/import-export-data) to learn more about Data import / export via csv.
**Please reach out to get any help importing your data.**
# 2. Customize your data model
Twenty offers the flexibility you need to shape the data model that will best support your day-to-day.
Create objects and fields of any type, including relations between your different objects. You can do so under Settings > Data Model.
Here are a few tips:
- **You are not limited in the number of custom fields nor custom objects**. Adding custom objects and fields will not lead to upgrading your plan.
- **People and Companies are the two objects from where you will be able to access the emails and meetings**. We recommend using those as much as possible, adding fields to categorize your records if need be. Here is an example:
- It is best to use the People object for your prospects and partners, creating a field on the People object named `Person Type`, instead of creating a Partner custom object (from where you will not be able to access the emails exchanged with this person).
- Create different views under People, one to display partners and one to display prospects.
- Two People cannot have the same email address. Two Companies cannot have the same domain.
- You can deactivate fields and objects you do not want to use.
- You can hide fields from views: don't be afraid of creating fields, you won't have to display all of them.
Read [this article](https://twenty.com/user-guide/section/data-model/customize-your-data-model) to learn how to design your data model.
# 3. Create your first Favourite view
Creating different views is key to make the data actionable for your team.
Here is how to proceed:
- **Add or hide columns**
- Manage the fields visible in a given view clicking on Options > Fields (from the top right). You can show/hide fields from there.
- If the need is punctual, hide a column clicking on its name and then `Hide`. Add a column clicking on the `+` at the very right of the table and select the one you need.
- **Reorder fields**
- Reorder the fields from a given view clicking on Options > Fields (from the top right). Drag and drop the fields to reorder them.
- If the need is punctual, you can `Move Left/Right` a column by clicking on its name.
- **Filter records**
- This is done from the top right.
- Advanced filters are also available.
- **Sort records**
- This is done from the top right, or by clicking on a column name.
- **Save** your view and rename it
- **Choose the layout**
- You can switch to a **Kanban layout** or a **Group By** layout - as long as the object has a “Stage” or similar select-type field.
- **Add it to your Favorites**
- This can be done using the dropdown menu showing the different views.
## What's next?
Start creating automations using <ArticleLink href="https://twenty.com/user-guide/section/integrations/getting-started-workflows">workflows</ArticleLink>.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,75 @@
---
title: Configure your Workspace
info: "Start configuring your workspace with these three steps."
icon: IconNote
image: /images/user-guide/what-is-twenty/getting_started.png
sectionInfo: Discover Twenty, an open-source CRM.
---
Every business works differently. That's why Twenty lets you shape the CRM around your needs—not force your processes into ours.
**Start with these three steps to set it up your way.**
💡 **Quick Win**: Start with connecting your mailbox and customizing your data model with a few key fields. This gives you immediate value and helps your team see Twenty in action with real data. You can do so under Settings → Accounts.
# 1. Customize your data model
Twenty offers the flexibility you need to shape the data model that will best support your day-to-day.
Create objects and fields of any type, including relations between your different objects. You can do so under Settings → Data Model.
Here are a few tips:
- **You are not limited in the number of custom fields nor custom objects**. Adding custom objects and fields will not lead to upgrading your plan.
- **People, Companies and Opportunities are the three objects from where you can access the emails and meetings synchronized from your mailbox/calendar**. We recommend using those as much as possible, adding fields to categorize your records if need be. Here is an example:
- It is best to use the People object for your prospects and partners, creating a field on the People object named ```Person Type```, instead of creating a Partner custom object. Because you would not be able to access the emails exchanged with this person from the Partner records.
- Create different views under People, one to display partners and one to display prospects.
- Two People cannot have the same email address. Two Companies cannot have the same domain.
- You can deactivate standard fields and objects you do not want to use.
- You can hide fields from views: don't be afraid of creating fields, you won't have to display all of them.
Read [this article](https://twenty.com/user-guide/section/data-model/customize-your-data-model) to learn how to design your data model.
# 2. Bring your data in
Bringing your existing data into Twenty gives your team context from the start.
## Connect your mailbox
If you have not done so when creating your workspace, connect your **Google or Microsoft account** under Settings → Accounts. This allows Twenty to:
- Import your messages and meetings
- Auto-create contacts based on interactions (optional)
- Keep communication history visible for your team
#### Using another provider?
You can add another mailbox via SMPT or another calendar via CalDAV. You will need to activate the feature under Settings → Releases → Lab, and then go back to the Settings → Accounts tab.
## Import data via csv
Use the Command menu (```Cmd + K``` or ```Ctrl + K```) to import People, Companies, Opportunities, or any custom objects via CSV.
Key guidelines:
- Download the sample file to understand the expected format
- Limit each file to 10k records
- Remove duplicate emails for People or duplicate domains for Companies
- Review and fix errors (highlighted in yellow) before importing
Read [this article](/user-guide/section/getting-started/import-export-data) to learn more about data import.
# 3. Create your first view
Creating different views is key to make the data actionable for your team.
Here is how to proceed:
- **Add or hide columns**
Manage the fields visible in a given view clicking on Options → Fields (from the top right). You can show/hide fields from there.
- **Reorder fields**
Reorder the fields from a given view clicking on Options → Fields (from the top right). Drag and drop the fields to reorder them.
- **Filter your view**
Narrow down the records displayed using the Filters from the top right.
- **Sort records**
Reorder records displayed using the Sort function from the top right, or by clicking directly on the column name.
- **Choose the layout**
You can switch to a **Kanban layout** or a list **Group By** layout -- as long as the object has a “Stage” or similar select-type field.
- **Save your view as Favorites**
This can be done using the dropdown menu showing the different views.
## What's next?
Start creating automations using <ArticleLink href="https://twenty.com/user-guide/section/workflows/getting-started-workflows">workflows</ArticleLink>.
<ArticleEditContent></ArticleEditContent>
@@ -2,7 +2,7 @@
title: Create a Workspace
info: "Follow a step-by-step guide on how to register on Twenty, choose a subscription plan, confirm your payment and set up your account, with additional advice on seeking assistance if needed."
icon: IconNote
image: /images/user-guide/glossary/glossary.png
image: /images/user-guide/create-workspace/workspace-cover.png
sectionInfo: Discover Twenty, an open-source CRM.
---
@@ -2,7 +2,7 @@
title: Getting around Twenty
info: "Get a quick overview of how to navigate through the platform and where to take different types of actions."
icon: IconNote
image: /images/user-guide/create-workspace/workspace-cover.png
image: /images/user-guide/what-is-twenty/getting_around.png
sectionInfo: Discover Twenty, an open-source CRM.
---
@@ -10,23 +10,27 @@ When you log into Twenty for the first time, the layout should feel intuitive. I
## The Main Layout
The center of the screen is **where your records live** — people, companies, opportunities, tasks, notes, workflows and any other object you created. This is where the day-to-day work happens.
You can **view, edit, delete records** from there as well as **creating new views**.
You can **view, edit, delete records** from there as well as **creating new views**.
## The Navigation Bar
On the left side, from the top to the bottom, youll be able to:
- Switch between your **several workspaces** using the dropdown menu or create a new workspace
- Choose between the light and dark modes
- Use the **search bar** (press ```/``` to open it instantly)
- Open the **Settings** section
- Use the **search bar** (press `/` to focus on it instantly)
- Open the **Settings** section
**Please note that our API documentation is accessible under the Settings section and not the User Guide.**
- Have direct access to your **Favourites views**. Favourites are unique for each user.
- Switch between different objects
- **Create automations** using workflows
- Reach out to Support and open our User Guide.
## The Command Menu
The command menu gives you **quick access to actions** in Twenty.
Open it via the three dots in the top right, or press ```Cmd + K``` on Mac / ```Ctrl + K``` on Windows.
## Command Menu & Quick Search
The command menu gives you **quick access to actions and search** in Twenty. You can access it in two ways:
- **Keyboard shortcut**: Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
- **Mouse**: Click the three dots in the top right corner
You'll also see a search bar at the top of your sidebar for quick record searches, or press `/` to focus on it instantly.
From there, you can:
- Create new records
@@ -45,18 +49,19 @@ Use the dropdown menu at the top left of the main layout to switch between the d
- Save filtered views to reuse them later
- Favourite views for fast access
If you're new to Views, read <ArticleLink href="https://twenty.com/user-guide/section/views/views-sort-filter">this article</ArticleLink> to learn how to create and customize them.
If you're new to Views, read our [View Management](/user-guide/section/crm-essentials/view-management) article to learn how to create and customize them.
## Settings
Open your Settings from the top left to
- **Connect your mailbox and calendar** accounts
- Customize your **data model**
Open your Settings from the top left to:
- **Connect your mailbox and calendar** accounts for seamless email and calendar sync
- Customize your **data model** - create custom objects, fields, and relationships
- **Access the API playground and configure webhooks**
- Invite members
- Edit your profile
- Customize your workspace: billing, user permissions
- Discover the latest releases and the upcoming features (under Releases > Lab tab)
- **Manage user permissions** and workspace access controls
- Invite team members and manage user roles
- Edit your profile and workspace preferences
- Configure billing and monitor workflow credits usage
- Discover the latest releases and upcoming features (under Releases → Lab tab)
If you do not see all those sections under Settings, reach out to your workspace administrator - some of them have a restricted access.
If you do not see all those sections under Settings, reach out to your workspace administrator - some of them have a restricted access.
<ArticleEditContent></ArticleEditContent>
@@ -2,12 +2,22 @@
title: Implementation Services
info: "From quick start to full migration, we've got you covered."
icon: IconNote
image: /images/user-guide/import-export-data/cloud.png
image: /images/user-guide/what-is-twenty/implementation_services.png
sectionInfo: Discover Twenty, an open-source CRM.
---
## Implementation Services
Whether you need help getting started or creating advanced customizations, we have a solution.
Discover our [Implementation Services](https://twenty.com/implementation-services) and our [Onboarding Packs](https://twenty.com/onboarding-packages).
Whether you need help getting started or creating advanced customizations, we have a solution.
### Onboarding Packs
Get help from our core team to set up your Twenty workspace with our 4-hour [Onboarding packs](https://twenty.com/onboarding-packages):
- **Data Model Design** - Design and create your custom data model with objects, fields, and relationships
- **Data Migration** - Migrate your existing data from your current CRM to Twenty
- **Workflow Creation** - Create custom workflows to support your business processes
### Implementation Partners
Work with certified Twenty partners for more advanced customizations and integrations. Reach out to our team via contact@twenty.com to be matched with our [partners](https://twenty.com/implementation-services).
<ArticleEditContent></ArticleEditContent>
@@ -3,10 +3,10 @@ title: Import/Export Data
info: "Learn how to import and export data."
icon: IconNote
image: /images/user-guide/import-export-data/cloud.png
sectionInfo: "Discover how to use standard and custom objects in your workspace."
sectionInfo: Discover Twenty, an open-source CRM.
---
# Import data
## Import Data
- You can import data for any object using a .csv, .xlsx, or .xls file.
- Each of the files you upload needs to contain **only one type of object** (for example, only People records).
- You can use the Import to **create or update records**.
@@ -78,7 +78,7 @@ If you want to create relations between objects using this field, refer to the s
</details>
# Export data
## Export Data
You can download data from most of your objects and up to 20,000 records per export.
To export data from an object:
@@ -0,0 +1,82 @@
---
title: Migrating from Other CRMs
icon: IconArrowsExchange
info: Step-by-step guide for migrating data and processes from other CRM systems to Twenty.
image: /images/user-guide/what-is-twenty/migrating_crm.png
sectionInfo: A brief guide to grasp the basics of Twenty
---
# Migrating from Other CRMs
Successfully migrate your data and processes from other CRMs to Twenty with minimal disruption to your business.
## Before You Start
### 1. Audit Your Current Data
- **Select the few objects and fields to migrate**: this migration is the opportunity for a fresh start!
- **Export this data** from your current CRM
- **Remove duplicates** and outdated records
- **List active workflows** and automations
### 2. Create Your New Data Model
Follow our [data model guide](/user-guide/section/data-model/customize-your-data-model) to:
- **Design the data model** you need
- **Map existing fields** to Twenty's standard objects / fields
- **Identify the custom objects / fields** that you will need
- **Create it** under Settings → Data model
## Migration Process
### 1. Import Your Data
**Recommended order:**
1. **Companies** first (as base records)
2. **People** second (linked to companies)
3. **Opportunities** third (linked to people/companies)
Use CSV import via Command Menu (Cmd+K). See our [data import guide](/user-guide/section/getting-started/import-export-data) for detailed instructions.
### 2. Recreate Workflows
- **Start simple** - recreate your most critical automations first
- **Use Twenty's workflow builder** to replace existing automations
## Common Challenges
### Data Formatting Issues
- **Email addresses** - remove duplicates (People object requirement)
- **Domain** - remove duplicates (Companies object requirement)
Please note that domain URLs created by the synchronization with your mailbox and calendar have the following format ```https://domain.com```
- **Date formats** - ensure consistent formatting (YYYY-MM-DD)
- **Phone numbers** - use international format (+1234567890)
### Relationship Mapping
To import relations between records using the csv import function, you can use the following fields
- **Use Twenty IDs** for complex relationships
- **Use email addresses** to link People records
- **Use domain names** to link Company records
- **Use any other field you set as unique**, which can be done in the Data Model section
Read our [import-export data guide](/user-guide/section/getting-started/import-export-data) for detailed instructions on creating relationships during CSV import.
## Professional Help
### Our Services
- **4-hour onboarding packs** for guided migration
- **Implementation partners** for more advanced projects
Discover our [implementation services](/user-guide/section/getting-started/implementation-services).
## Migrating from Self-Hosted to Cloud
If you're moving from Twenty self-hosted to Twenty Cloud:
1. **Export your data** from your self-hosted instance
2. **Follow the standard migration process** above
3. **We can provide migration assistance** - reach out to our team
## Post-Migration Checklist
[ ] All data imported successfully
[ ] Custom fields working correctly
[ ] User permissions configured
[ ] Email/calendar sync connected
[ ] Critical workflows recreated and tested
[ ] Team trained on new system
<ArticleEditContent></ArticleEditContent>
@@ -12,23 +12,27 @@ Twenty is the leading open-source CRM, crafted by hundreds of contributors to su
### Main Features
**Contact Management:** Efficiently store and manage customer data. [Learn more](/user-guide/section/data-model/standard-objects).
**Contact Management:** Efficiently store and manage customer data. [Learn more](/user-guide/section/crm-essentials/contact-and-account-management).
**Custom Objects:** Create and customize objects to fit your business needs. [Details](/user-guide/section/data-model/standard-objects).
**Custom Objects:** Create and customize objects to fit your business needs. [Details](/user-guide/section/data-model/objects).
**Custom Fields:** Tailor data fields to capture and organize information specific to your operations. [Understand more](/user-guide/section/data-model/fields).
**Kanban & Table Views:** Optimize your workflow with flexible [Table Views](/user-guide/section/views/table-views) and [Kanban Views](/user-guide/section/views/kanban-views).
**Kanban & Table Views:** Optimize your workflow with flexible table views and [Pipeline Management](/user-guide/section/crm-essentials/pipeline).
**Pipeline Visualization:** Get a clear view of your processes with customizable views. [Explore views](/user-guide/section/views/views-sort-filter).
**Pipeline Visualization:** Get a clear view of your processes with customizable views. [Explore views](/user-guide/section/crm-essentials/view-management).
**Email Integration:** View the emails of a specific customer or company within your workspace. [Integrate now](/user-guide/section/functions/emails).
**Workflows:** Automate your business processes and integrate with external tools using powerful workflow automation. [Get started](/user-guide/section/workflows/getting-started-workflows).
**Notes:** Create detailed notes for each record to share knowledge more effectively. [Add notes](/user-guide/section/functions/notes).
**Email Integration:** View the emails of a specific customer or company within your workspace. [Integrate now](/user-guide/section/collaboration/emails-and-calendars).
**Tasks:** Schedule tasks to track customer interactions. [See how](/user-guide/section/functions/tasks).
**Notes:** Create detailed notes for each record to share knowledge more effectively. [Add notes](/user-guide/section/collaboration/notes).
**API & Webhooks:** Connect to other apps and automate workflows with API and Webhooks. [Start integrating](/user-guide/section/functions/integrations).
**Tasks:** Schedule tasks to track customer interactions. [See how](/user-guide/section/collaboration/tasks).
**Permissions:** Control access and manage user roles with flexible workspace and object-level permissions. [Configure permissions](/user-guide/section/settings/permissions).
**API & Webhooks:** Connect to other apps and automate workflows with API and Webhooks. [Start integrating](/user-guide/section/integrations-api/api-webhooks).
### Benefits
@@ -1,7 +1,7 @@
---
title: Integrations
title: Integrations API
info: Learn how to connect Twenty to your other tools.
icon: IconBrandZapier
image: /images/user-guide/integrations/plug.png
sectionInfo: A brief guide to grasp the basics of Twenty
sectionInfo: Connect Twenty to your existing tools and workflows
---
@@ -0,0 +1,112 @@
---
title: API Keys & Webhooks
info: "Create and manage API keys for authentication and set up webhooks for real-time notifications."
icon: IconApi
image: /images/user-guide/api/api.png
sectionInfo: Learn how to connect Twenty to your other tools.
---
## API Keys
API keys allow automated access to your CRM data, synchronize data with other systems, and create custom integrations or solutions.
For example, you can use them to retrieve details of a specific `Person` or `Company` record, such as their name or address.
### Create an API Key
1. Go to **Settings → APIs & Webhooks**
2. Click **+ Create key** at the top right
3. Configure your API key:
- **Name**: Give your API key a descriptive name
- **Expiration Date**: Set when the key should expire
4. Click **Save** to generate your API key
5. **Important**: Copy and store your API key immediately - it's only shown once
Once created, your API key provides access to your custom API documentation and playground where you can test endpoints with your actual data model.
<ArticleWarning>
Since your API key gives access to sensitive information, you shouldn't share it with services you don't fully trust. If leaked, someone can use it maliciously. If your API key's security is compromised, immediately disable it and generate a new one.
</ArticleWarning>
<div style={{padding:'70.59% 0 0 0', position:'relative', margin: '32px 0px 0px' }}>
<iframe
src="https://player.vimeo.com/video/928786722?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
### Manage API Keys
**Regenerate an API Key:**
1. Go to **Settings → APIs & Webhooks**
2. Click on the API key you want to regenerate
3. Click the **Regenerate** button
4. Copy and store the new API key immediately
**Delete an API Key:**
1. Find the API key in your list
2. Click on the key to open its details
3. Click **Delete** to remove it permanently
## Webhooks
Webhooks allow for immediate updates to your specified URL about changes or events related to your customer data.
For example, when an Opportunity moves to "Closed Won", a webhook can automatically trigger invoice creation in your accounting system. Note that this type of automation can also be achieved using Twenty's in-app [Workflows feature](/user-guide/section/workflows/getting-started-workflows), which offers triggers based on field updates for internal automation.
Webhooks are ideal for integrating with external systems, while Workflows support both internal automation and external tool connections via webhook triggers, code nodes, and HTTP nodes.
### Create a Webhook
1. Go to **Settings → APIs & Webhooks → Webhooks**
2. Click **+ Create webhook**
3. Enter your webhook URL (where you want to receive notifications)
4. Click **Save**
Your webhook will immediately start receiving real-time notifications about changes to your CRM data.
<div style={{padding:'70.59% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/928786708?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
### Manage Webhooks
**Delete a Webhook:**
1. Go to **Settings → APIs & Webhooks → Webhooks**
2. Find the webhook you want to remove
3. Click on the webhook
4. Click **Delete** and confirm in the popup
**Edit a Webhook:**
1. Click on the webhook you want to modify
2. Update the URL or other settings
3. Click **Save** to apply changes
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,116 @@
---
title: APIs Overview
icon: IconCode
info: Understand the four different APIs and when to use each one.
image: /images/user-guide/api/api-overview.png
sectionInfo: Learn how to connect Twenty to your other tools.
---
Twenty was built to be developer-friendly, offering powerful APIs that adapt to your custom data model. We provide four distinct API types to meet different integration needs.
## Developer-First Approach
Twenty generates APIs specifically for your data model, meaning:
- **No long IDs required**: Use your object and field names directly in endpoints
- **Standard and custom objects treated equally**: Your custom objects get the same API treatment as built-in ones
- **Dedicated endpoints**: Each object and field gets its own API endpoint
- **Custom documentation**: Generated specifically for your workspace's data model
<ArticleWarning>
Your custom API generates personalized documentation accessible via Settings → API & Webhooks after creating an API key. This documentation reflects your exact data model and field configurations.
</ArticleWarning>
## The Four API Types
Twenty offers APIs in both **REST** and **GraphQL** formats:
### REST APIs
#### 1. REST Metadata API
- **Purpose**: Manage your workspace and data model structure
- **Use cases**:
- Create, modify, or delete objects and fields
- Configure workspace settings
- Manage data model relationships
- **Access**: Available through REST endpoints
#### 2. REST Core API
- **Purpose**: Manage your actual data records
- **Use cases**:
- Create, read, update, delete records
- Query specific data
- Manage record relationships
- **Access**: Available through REST endpoints
### GraphQL APIs
#### 3. GraphQL Metadata API
- **Purpose**: Same as REST Metadata API but with GraphQL benefits
- **Use cases**: Same workspace and data model management
- **Additional benefits**:
- Query multiple metadata types in one request
- Precise field selection
- Better performance for complex queries
#### 4. GraphQL Core API
- **Purpose**: Same as REST Core API but with GraphQL advantages
- **Use cases**: Same data record management
- **Additional benefits**:
- **Batch operations**: Available for all operations
- **Upsert operations**: Create or update records in one call
- Query relationships in single requests
- Precise data fetching
## Batch Operations
### REST and GraphQL Batch Support
Both REST and GraphQL APIs support batch operations for most actions:
- **Batch size**: Up to 60 records per request
- **Available operations**: Create, update, delete multiple records
- **Performance**: Significantly faster than individual API calls
### GraphQL-Only Features
- **Batch Upsert**: Only available in GraphQL APIs
- **Usage**: Use plural object names (e.g., `CreateCompanies` instead of `CreateCompany`)
- **Requirement**: This is why singular and plural object names must be distinct
## API Documentation Access
1. Go to **Settings → API & Webhooks**
2. Create an API key (required for documentation access)
3. Access your custom documentation and playground
4. Test APIs with your actual data model
Your documentation is unique to your workspace because it reflects your custom objects, fields, and relationships.
## When to Use Each API
### Use Metadata APIs when:
- Setting up your data model
- Creating custom objects or fields
- Configuring workspace settings
### Use Core APIs when:
- Managing day-to-day data (People, Companies, Opportunities)
- Integrating with external systems
- Building custom applications
- Automating data workflows
### Choose GraphQL when:
- You need batch operations
- You want to minimize API calls
- You need upsert functionality
- You're building complex integrations
### Choose REST when:
- You prefer simpler API structure
- You're building basic integrations
- Your team is more familiar with REST
- You need straightforward CRUD operations
## Next Steps
- **[API & Webhooks Setup](/user-guide/section/integrations-api/api-webhooks)**: Learn how to create API keys and webhooks
- **Custom Documentation**: Access your personalized API docs via Settings → API & Webhooks
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,53 @@
---
title: Integrations
info: "Connect Twenty to your existing tools and build custom automations."
icon: IconBrandZapier
image: /images/user-guide/integrations/plug.png
sectionInfo: Connect Twenty to your existing tools and workflows
---
## Current Integration Options
### Native Integrations
Twenty currently offers native integration with:
- **Email & Calendar**: Connect Gmail, Outlook, or SMTP/CalDAV providers
- **API Access**: Use our REST and GraphQL APIs to build custom integrations
For email and calendar setup, visit [Email & Calendar Setup](/user-guide/section/settings/email-calendar-setup).
### Workflows (Recommended)
The primary way to connect Twenty to other tools is through our in-app **Workflows** feature:
- **HTTP Nodes**: Make API calls to external services
- **Code Nodes**: Write custom logic for complex integrations
- **Webhook Triggers**: Receive data from external systems
- **Field Update Triggers**: Automate actions based on CRM changes
Learn more in our [Workflows section](/user-guide/section/workflows/getting-started-workflows).
### Zapier Integration (Legacy)
We maintain a Zapier integration for users who prefer no-code automation:
1. Visit <ArticleLink href="https://zapier.com/apps/twenty/integrations">Twenty on Zapier</ArticleLink>
2. Create a new Zap with Twenty as trigger or action
3. Generate an API key in [Settings → API & Webhooks](/user-guide/section/integrations-api/api-webhooks)
4. Connect your Twenty workspace to Zapier
**Note**: We recommend using Workflows for new integrations as they offer more flexibility and control.
## Future Vision: Community-Built Connectors (2026)
### Extensibility Platform
We're building an extensibility platform that will allow developers to create apps as code. This will enable:
- **Custom Connectors**: Build integrations with your favorite software
- **Community Contributions**: Share and discover connectors built by others
- **Flexible Architecture**: Extend Twenty's capabilities beyond core features
### AI-Assisted Workflow Building
Coming in 2026, AI assistance will help users:
- **Auto-Generate Workflows**: Describe your integration needs in plain language
- **Smart Suggestions**: Get recommendations for connecting your specific tools
- **Template Library**: Access pre-built workflows for common use cases
The future of Twenty integrations is community-driven, AI-assisted, and infinitely extensible.
<ArticleEditContent></ArticleEditContent>
@@ -6,33 +6,33 @@ image: /images/user-guide/api/api.png
sectionInfo: Learn how to connect Twenty to your other tools.
---
## Twenty API
Twenty offers APIs in **REST and GraphQL**.
Twenty offers APIs in **REST and GraphQL**.
- Use the **Metadata API** for anything related to your workspace and its data model.
- Use the **Core API** for anything related to your records.
### Your unique APIs
Unique APIs are generated for your workspace, to perfectly reflect your custom data model.
Unique APIs are generated for your workspace, to perfectly reflect your custom data model.
This means you will have a dedicated endpoint for each of your custom objects and custom fields - which will make the dev experience much nicer!
### Benefits of the GraphQL APIs
- **Batch operations** are available with the GraphQL APIs. You just need to use the plural name of your object.
- **Batch operations** are available with the GraphQL APIs. You just need to use the plural name of your object.
*Example*: use the mutation `CreateCompanies` instead of `CreateCompany` for your batch creation.
*(This is the reason why the singular and plural names of your object needs to be distinct.)*
- **Upsert** option is available with the GraphQL APIs.
## API Documentation
## API Documentation
**Twenty API documentation is accessible under your workspace Settings → APIs & Webhooks.**
As unique APIs are generated to perfectly reflect your data model, Twenty creates customized API documentation.
This is why you need to input an API key to access it.
This is why you need to input an API key to access it.
You will also find a playground where you can test the APIs and the data returned.
## API Keys
API keys allow automated access to your CRM data, synchronize data with other systems, and create custom integrations or solutions.
API keys allow automated access to your CRM data, synchronize data with other systems, and create custom integrations or solutions.
For example, you can use them to retrieve details of a specific `Person` or `Company` record, such as their name or address.
@@ -40,26 +40,26 @@ For example, you can use them to retrieve details of a specific `Person` or `Com
1. Go to Settings in the sidebar on the left.
2. Open **APIs & Webhooks**.
3. To generate a new key, click on `+ Create key` at the top right.
3. To generate a new key, click on `+ Create key` at the top right.
4. Give your API key a name, an expiration date, and a logo.
5. Hit save to see your API key.
6. Since the key is only visible once, make sure you store it somewhere safe.
5. Hit save to see your API key.
6. Since the key is only visible once, make sure you store it somewhere safe.
<ArticleWarning>
Since your API key gives access to sensitive information, you shouldn't share it with services you don't fully trust. If leaked, someone can use it maliciously. If your API key's security is compromised, immediately disable it and generate a new one.
Since your API key gives access to sensitive information, you shouldn't share it with services you don't fully trust. If leaked, someone can use it maliciously. If your API key's security is compromised, immediately delete it and generate a new one.
</ArticleWarning>
<div style={{padding:'70.59% 0 0 0', position:'relative', margin: '32px 0px 0px' }}>
<iframe
src="https://player.vimeo.com/video/928786722?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
<iframe
src="https://player.vimeo.com/video/928786722?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
@@ -85,17 +85,17 @@ For instance, a webhook can alert your system in real-time when someone creates
3. Click Save.
<div style={{padding:'70.59% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/928786708?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
<iframe
src="https://player.vimeo.com/video/928786708?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
@@ -15,7 +15,7 @@ The system links emails from known contacts directly to their CRM records, keepi
Internal emails are emails between two people in the same organization. We consider an email to be internal when every participant shares the same domain: *from*, *to*, *cc* and *bcc*. **Internal emails are not synced to the CRM.**
If you use a personal email provider like `@gmail.com`, all your emails will be synced to the CRM.
If you use a personal email provider like `@gmail.com`, all your emails will be synced to the CRM.
### Reading an Email
@@ -24,7 +24,7 @@ Go to a specific `Person` or `Company` record page, then select the `Emails` tab
<img src="/images/user-guide/emails/show-inbox.png" style={{width:'100%'}}/>
You can customize how you share and manage your emails through the settings.
You can customize how you share and manage your emails through the settings.
## Mailbox Settings
@@ -50,9 +50,9 @@ From here, you can choose different levels of sharing for outbound and inbound e
### Contacts Auto-Creation
Contact auto-creation is a handy built-in feature. This default feature automatically adds email contacts not already in your CRM, boosting your contact list without any extra effort on your part. To manage this feature, go to `Settings` > `Email`. You can toggle it on or off. Remember, turning it off means that all new email contacts must be manually entered into the CRM.
Contact auto-creation is a handy built-in feature. This default feature automatically adds email contacts not already in your CRM, boosting your contact list without any extra effort on your part. To manage this feature, go to `Settings` > `Email`. You can toggle it on or off. Remember, turning it off means that all new email contacts must be manually entered into the CRM.
So if you delete a contact from Twenty, it will not be re-imported when receiving a new email from that contact.
So if you delete a contact from Twenty, it will not be re-imported when receiving a new email from that contact.
Note that internal emails are not synced to the CRM, so your colleagues won't be automatically created.
@@ -1,156 +0,0 @@
---
title: Workflows
info: "Understand the workflow feature in Twenty including how to create and delete workflows, configure triggers, add actions, run workflows, and manage workflow history."
image: /images/user-guide/workflows/workflow.png
sectionInfo: Learn how to connect Twenty to your other tools.
---
## Create a Workflow
To create a workflow:
1. Click “+ Add a Workflow” to begin
2. Click “Untitled” and enter your workflow name on the upper left
3. Once you have created one workflow, you can click “+ New record” to create additional workflows
## Delete a Workflow
To delete a workflow, click **Delete** in the top right corner of the workflow record. Confirm the deletion in the pop-up modal.
To view deleted workflows:
- Use the **Filter** option, or
- Open quick action side panel using `⌘K` and select **See deleted workflows**.
You can also save this view by clicking **Save as new view** for quick access later.
## Configure a Trigger
Workflows always start with a single trigger. It is the condition that activates your workflow. In this step, you decide when and how the automation should start. There are several types of triggers available. In this section, youll learn about each trigger type and how to configure one.
### Record is Created
This trigger starts the workflow when a record is created in a selected object (e.g. People, Companies, or any custom object). To configure this trigger select the record type where the workflow should listen for a new entry.
### Record is Updated
This trigger starts the workflow when changes are made to an existing record. To configure this trigger, select the record type and optionally select the field(s) you want to listen for changes.
### Record is Deleted
This trigger starts the workflow when a record is removed. To configure this trigger, select the record type you want to listen for deletions.
### Launch Manually
This trigger starts the workflow only when you manually launch it. There are two ways to do this, depending on whether you want the workflow to run with or without a record context:
- **When record is selected**: select a record in the table, then open the side panel with `⌘K` and choose the workflow. The workflow will run using data from the selected record, which you can reference in later steps.
- **When no record is selected**: open the side panel with `⌘K` from anywhere in the app (no record selection needed) and choose the workflow. The workflow will run without any record context.
Once the workflow finishes running, reload the page to see the changes.
### On a Schedule
This trigger starts the workflow on a recurring basis you define (e.g. hourly, daily, weekly). To configure this trigger, select a time unit (minutes, hours, days) and enter a value or use a custom cron expression for more advanced scheduling.
### Webhook
This trigger starts the workflow when a `GET` or `POST` request is received from an external service. You'll receive a unique webhook URL to use as a listener.
For `POST` requests, you can define an expected body to structure incoming data and use its values in later workflow steps.
## Add an action
Once a trigger is set, you can add action steps to define what happens next. Actions use data from the trigger and previous actions to carry out tasks in your workflow. In this section, youll explore the different action types and how to add them.
### Create a Record
This action adds a new record to a selected object. To use this action, select the object and fill out the fields. Data from the newly created record can be used in later steps of the workflow.
### Updated Record
This action makes changes to an existing record of a selected object. To use this action, select the object and select the specific record you want to update. Then, pick the field(s) to modify and enter the new values. Updated field data can be used in later steps of the workflow.
### Delete Record
This action removes a record from a selected object. To use this action, select the object and record you want to delete.
Note: Data from the deleted record remains available for use in later workflow steps.
### Search records
This action finds records within a selected object using filter conditions. To use this action, select the object you wish to search through and set the criteria to narrow down the search results.
### Send Emails
This action allows you to send an email from your workflow. To use this action:
1. Add an email account in **Settings > Accounts**
2. Enter the recipients address, subject, and message body to compose your email
You can also reference variables from outputs of previous steps to further customize an action. Soon, you will have the capability to view attachments and format email content.
### Code
This action runs custom JavaScript within your workflow. You can use this action to handle logic that goes beyond built-in actions such as transforming data, performing calculations, or integrating with external APIs.
Any variables you create and return here can be reused in later steps of the workflow. You can also test your code directly in this step and view the output to confirm it works as expected.
Note: You can manage keys and access your API Playground [here](https://app.twenty.com/settings) or navigate to Settings → APIs & Webhooks.
### Form
This action allows you to prompt a form during the workflow to collect input from the user. The data collected can be used in later steps. To add this action, configure the input fields by selecting the type, label, and placeholder for each.
### HTTP Request
This action allows you to send a request to an external API as part of your workflow; it can be used to integrate with external services, send or receive data, or trigger third-party actions. To use this action:
1. Paste the endpoint you want to call
2. Select an HTTP method from `GET`, `POST`, `PUT`, `PATCH`, or `DELETE`
3. Enter any required header inputs and their values
4. For `POST`, `PUT`, or `PATCH` include the body input to send with the request
5. Paste a sample response body to preview its structure and reference keys in later steps
## Activate Workflows
When you click **Activate**, your draft is published as a new version, and the workflow becomes **Active**. This means its triggers (such as schedule, record events, or manual launch) will now listen for events and start the workflow when conditions are met.
Activating a workflow does not immediately execute it, instead it simply makes it eligible to run when triggered. Each activation creates a new version and moves the workflow out of **Draft** mode.
### Workflow Runs
A **Run** is a record of a workflow execution. It happens when a workflow is triggered while active or when you manually launch it for testing. Each run contains details like status, output, author, and timestamps. You can view individual runs in the **Runs** panel or open the **Workflow Runs** view for monitoring and troubleshooting.
## Testing Workflows
You can test workflows before activating them. This is useful for trigger types like **Launch Manually (when no record selected)** or when testing specific action nodes (e.g., **Code**).
Testing a workflow or an individual node does not activate the workflow, instead it stays in **Draft** mode and wont respond to triggers until you activate it.
## Workflows Statuses
Workflows can have one of four statuses: **Draft**, **Active**, **Deactivated**, or **Archived**.
- **Draft**: The workflow is being edited and has not been published yet. Only one draft version can exist at a time.
- **Active**: The live version currently running in your app. A workflow becomes active when a draft or deactivated version is activated.
- **Deactivated**: A workflow that was previously active but has been manually deactivated.
- **Archived**: All past versions except the most recent draft, active, or deactivated version. You cannot directly activate an archived version; to reuse it, you must restore it as a draft first.
For example, if you have versions v1, v2 (**Active**), and v3 (**Draft**), then v1 is archived. Once v3 is activated, then v2 is archived, and v3 becomes **Active**.
This status system lets you safely edit workflows in draft, publish changes when ready, and automatically keep a history of previous versions.
## Workflow Version History
View all previous versions of a workflow under the **Versions** field in the workflow record.
Click on any version (e.g. v1, v2, v3) to view its details. To restore it, click on **Use as draft** on the top right.
If a draft already exists, youll be prompted to confirm:
- **Override Draft** to replace the current draft with the selected version or,
- **Go to Draft** to return to the version you're currently editing.
<ArticleEditContent></ArticleEditContent>
@@ -1,7 +0,0 @@
---
title: Other
info: Discover tips and tricks for optimizing your experience, including user and workspace management, personalization settings, and navigation enhancements.
icon: IconTargetArrow
image: /images/user-guide/api/api.png
sectionInfo: A brief guide to grasp the basics of Twenty
---
@@ -1,44 +0,0 @@
---
title: Glossary
info: "Get familiar with essential terminology used in Twenty."
icon: IconVocabulary
image: /images/user-guide/glossary/glossary.png
sectionInfo: Discover tips and tricks to optimize your experience.
---
## Company & People
The CRM has two fundamental types of records:
- A `Company` represents a business or organization.
- `People` represent your company's current and prospective customers or clients.
## Kanban
A `Kanban` is a way to track a business process. Pipelines are present within a *module* and have *stages*:
- A **module** has the logic for a certain business process (for example: sales, recruiting).
- **Stages** map the steps in your process (for example: new, ongoing, won, lost).
## Views
You can customize the display of your records using views, setting different filters and sorting options for each view.
## Workspace
A `Workspace` typically represents a company using Twenty. It holds all the records and data that you and your team members add to Twenty.
It has a single domain name, which is typically the domain name your company uses for employee email addresses.
## Field
A field refers to a specific area where particular data is stored for an entity.
## Record
A Record indicates an instance of an object, like a specific account or contact.
## Tasks
Tasks in Twenty CRM are assigned activities relating to contacts, accounts, or opportunities.
## Opportunities
Opportunities in Twenty CRM are potential deals or sales with accounts or contacts.
## Integration
Integration are built-in tools that allow to link Twenty with other software or systems.
## User Profile
A User Profile is the information and settings specific to a workspace member in Twenty.
<ArticleEditContent></ArticleEditContent>
@@ -1,102 +0,0 @@
---
title: Tips
info: "Discover tips and tricks for optimizing your experience, including user and workspace management, personalization settings, and navigation enhancements."
icon: IconInfoCircle
image: /images/user-guide/tips/light-bulb.png
sectionInfo: Discover tips and tricks to optimize your experience.
---
## Update workspace name & logo
Workspace admins can edit its name and logo in settings.
- From the sidebar, go to <b>Settings</b>.
- Under <b>Workspace</b>, go to <b>General</b>.
- Edit the name and logo. The system will automatically save your changes.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927915481?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
## Enable dark mode
Not a fan of light mode? Switch to dark mode with these steps:
- From the sidebar, go to <b>Settings</b>.
- Under <b>User</b>, go to <b>Appearance</b>.
Select **Dark**. The system will automatically save your changes.
<div style={{padding:'69.01% 0 0 0', position:'relative', margin: '32px 0px 0px'}}>
<iframe
src="https://player.vimeo.com/video/927916570?autoplay=1&loop=1&autopause=0&background=1&amp;app_id=58479"
frameBorder="0"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write"
style={{
position:'absolute',
top:0,
left:0,
width:'100%',
height:'100%',
borderRadius: '16px',
border:'2px solid black'
}}
title="Export data"
></iframe>
</div>
<script src="https://player.vimeo.com/api/player.js"></script>
## Account settings
Configure your user account and set your preferences.
- From the sidebar, go to <b>Settings</b>.
- Under <b>User</b>, go to <b>Profile</b> to edit your name and profile picture. You can upload PNGs, GIFs, and JPEGs.
- Manage your accounts and configure your email and calendar settings in <b>Accounts</b>.
- The system will automatically save your changes.
## Invite & manage members
Admins can invite new members any time.
- From the sidebar, go to <b>Settings</b>.
- Under <b>Workspace</b>, go to <b>Members</b>.
- Use the invite link to add more members to your workspace or delete existing ones.
## Authentication Providers
Enable or disable authentication providers as needed.
- From the sidebar, go to <b>Settings</b>.
- Enable advanced settings
- Under <b>Workspace</b>, go to <b>Security</b>.
- Enable the authentication providers you want to use.
## Quick Search
You'll see a search bar at the top of your sidebar. You can also bring up the command bar with the `cmd/ctrl + k` shortcut to navigate through your workspace, and find people, companies, notes, and more.
The command bar also supports shortcuts for navigation.
## Add Records To Favorites
You can add records to your favorites for quick access. To do so, expand the record you want to add, and click on the heart icon on the top right. You'll now be able to see your favorite records in your sidebar right above your workspace.
<img src="/images/user-guide/tips/favorites.png" style={{width:'100%', maxWidth:'800px'}}/>
<ArticleEditContent></ArticleEditContent>
@@ -2,6 +2,6 @@
title: Pricing
icon: IconChecklist
info: Understand how Twenty pricing works.
image: /images/user-guide/kanban-views/kanban.png
image: /images/user-guide/setup/pricing.png
sectionInfo: A brief guide to grasp the basics of Twenty
---
@@ -1,7 +1,7 @@
---
title: Billing and Pricing FAQ
info: "Everything you need to know about the pricing and billing."
image: /images/user-guide/permissions/permissions.png
image: /images/user-guide/setup/pricing.png
sectionInfo: Understand how Twenty pricing works.
---
## Pricing
@@ -49,11 +49,23 @@ The number of credits varies based on the plan. A workspace under **trial gets 5
</details>
<details>
<summary><strong>How does workflow credit consumption work?</strong></summary>
Each workflow action consumes credits based on its complexity:
- **Basic internal operations** (such as search, update, create records) consume very few credits
- **More complex operations** like code nodes and requests to external services consume more credits
- **AI prompts** (coming soon!) will also consume more credits based on usage
Credits are deducted in real-time when workflows execute. You can monitor your usage in **Settings → Billing** to track consumption and remaining credits.
</details>
<details>
<summary><strong>Can I buy more workflow credits?</strong></summary>
This is coming soon! Reach out to us directly in the meantime.
You can buy additional credits under `Settings / Billing`.
</details>
@@ -0,0 +1,7 @@
---
title: Reporting
icon: IconChart
info: Track performance with custom reports and dashboards. Coming Q4 2025
image: /images/user-guide/reporting/reporting.png
sectionInfo: Track performance with custom reports and dashboards
---
@@ -0,0 +1,25 @@
---
title: Reporting Overview
icon: IconChart
info: Learn about Twenty's upcoming reporting and analytics capabilities coming Q4 2025.
image: /images/user-guide/reporting/reporting.png
sectionInfo: Track performance with custom reports and dashboards
---
## What's Coming
### Custom Reports
Create tailored reports to track the metrics that matter most to your business.
### Sales Dashboards
Visualize your sales pipeline performance with interactive dashboards.
### Performance Analytics
Monitor team performance and identify trends in your customer data.
## Stay Updated
Follow our [GitHub repository](https://github.com/twentyhq/twenty) or check the **Settings → Releases** section in your workspace to get notified when reporting features become available.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,7 @@
---
title: Resources
icon: IconHelp
info: Terminology definitions and community links.
image: /images/user-guide/glossary/glossary.png
sectionInfo: Terminology resources and community information
---
@@ -3,7 +3,7 @@ title: GitHub
info: "Learn about the Twenty GitHub repository and the variety of resources it hosts including source code, documentation, and discussions."
icon: IconGitHub
image: /images/user-guide/github/github-header.png
sectionInfo: Discover tips and tricks to optimize your experience.
sectionInfo: Terminology resources and community information
---
## About
@@ -0,0 +1,72 @@
---
title: Glossary
info: "Get familiar with essential terminology used in Twenty."
icon: IconVocabulary
image: /images/user-guide/glossary/glossary.png
sectionInfo: Terminology resources and community information
---
## API
API (Application Programming Interface) allows you to connect Twenty with other software systems and build custom integrations.
## Command Menu
The Command Menu is a quick-access interface (opened with Cmd/Ctrl + K) that lets you perform actions, create records, and navigate your workspace efficiently.
## Company & People
The CRM has two fundamental types of records:
- A `Company` represents a business or organization.
- `People` represent your company's current and prospective customers or clients.
## Custom Fields
Custom Fields are data fields you create to capture information specific to your business needs and processes.
## Data Model
A Data Model is the structure that defines how information is organized in your CRM, including what objects exist, their properties (fields), and how they relate to each other.
## Favorites
Favorites are records you've marked for quick access, appearing in your sidebar for instant navigation to important data.
## Field
A field refers to a specific area where particular data is stored for an entity.
## Integration
Integration are built-in tools that allow to link Twenty with other software or systems.
## Kanban
A `Kanban` is a visual way to track your business processes using cards and columns. Each column represents a stage in your process (for example: new, ongoing, won, lost), and you move records through these stages as they progress.
## Object
An Object is a data structure that represents a specific type of entity in your CRM (like People, Companies, or Opportunities). Objects can be standard (built-in) or custom (created by you).
## Opportunities
Opportunities in Twenty CRM are potential deals or sales with accounts or contacts.
## Record
A Record indicates an instance of an object, like a specific account or contact.
## Relation Fields
Relation Fields create connections between different objects, allowing you to link records together (like connecting a Person to a Company).
## Standard Fields
Standard Fields are pre-built data fields that come with objects by default and provide common functionality across all workspaces.
## Tasks
Tasks in Twenty CRM are assigned activities relating to contacts, accounts, or opportunities.
## Views
You can customize the display of your records using views, setting different filters, layouts and sorting options for each view.
## Webhooks
Webhooks are automated messages sent from Twenty to other applications when specific events occur, enabling real-time data synchronization.
## Workflows
Workflows are automated processes that trigger actions based on specific conditions, helping you automate repetitive tasks and business processes.
## Workspace
A `Workspace` typically represents a company using Twenty. It holds all the records and data that you and your team members add to Twenty.
It has a single domain name, which is typically the domain name your company uses for employee email addresses.
## Workspace Members
Workspace Members are the Twenty users from your team who have access to your workspace. They can be assigned as owners or assignees for records.
<ArticleEditContent></ArticleEditContent>
@@ -1,7 +1,7 @@
---
title: Settings
info: "Learn how to manage your workspace: permissions, billing, data model and much more."
icon: IconGitHub
image: /images/user-guide/workflows/workflow.png
sectionInfo: Learn how to manage your workspace.
icon: IconSettings2
info: Configure your Twenty workspace settings and preferences.
image: /images/user-guide/setup/settings.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
@@ -0,0 +1,37 @@
---
title: Domains Settings
icon: IconWorld
info: "Configure workspace domains and approved access settings for automatic user sign up."
image: /images/user-guide/setup/domains-settings.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Custom Workspace Domain
Set a personalized web address for your workspace:
- Choose your preferred subdomain (e.g., yourcompany.twenty.com)
- Configure custom domains for professional branding
## Approved Access Domains
Allow automatic workspace access for specific email domains.
### How It Works
- Add your company's email domains (e.g., @yourcompany.com)
- Anyone with an email from these domains can automatically join your workspace
- No manual invites needed for team members
### Benefits
- **Faster Onboarding**: New team members join automatically
- **Better Security**: Only verified company emails can access
- **Less Admin Work**: No need to manually invite each team member
## Setup Instructions
1. Go to **Settings → Domains**
2. Add your custom domain or approved email domains
3. Verify domain ownership if required
**Note**: Domain changes may take time to take effect and might require verification.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,108 @@
---
title: Email & Calendar Setup
info: "Connect your email and calendar accounts."
icon: IconAt
image: /images/user-guide/emails/emails_header.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Connection Options
### Google Account (Gmail & Google Calendar)
1. Go to **Settings → Accounts**
2. Click **Add account**
3. Select **Continue with Google**
4. Authorize Twenty to access your Gmail and Google Calendar
5. Your emails and calendar events will start syncing automatically
### Microsoft Account (Outlook & Microsoft Calendar)
1. Go to **Settings → Accounts**
2. Click **Add account**
3. Select **Continue with Microsoft**
4. Authorize Twenty to access your Outlook and Microsoft Calendar
5. Your emails and calendar events will start syncing automatically
### SMTP/CalDAV Setup (Other Providers)
For other email and calendar providers:
1. Go to **Settings → Releases → Lab** to enable the feature
2. Return to **Settings → Accounts**
3. Configure SMTP settings for email
4. Configure CalDAV settings for calendar
5. Test the connection
### Multiple Mailboxes
- **Unlimited Accounts**: Connect multiple email accounts per user
- **Account Management**: Switch between different mailboxes
- **Sync Settings**: Configure different settings per mailbox
<ArticleWarning>
Only true mailboxes can be connected (e.g., support@domain.com with its own inbox). Email aliases that forward to another mailbox cannot be connected to Twenty.
</ArticleWarning>
## Email Configuration
### Message Visibility
Choose different levels of visibility for your emails:
- **Metadata Only**: Share only basic information (sender, recipient, date, time)
- **Subject and Metadata**: Share subject line along with metadata
- **All Email Content**: Share entire email content including attachments
### Contact Auto-Creation
- **Deactivated**: No automatic contact creation
- **For messages sent & received**: Create contacts for all external email interactions
- **For messages sent only**: Create contacts only for emails you send
- **Note**: Internal emails (same domain) are never synced to maintain privacy
### Control which emails get sync with Message Folder Selection (Lab Feature)
Control which email folders sync with Twenty:
1. Go to **Settings → Releases → Lab** and enable **Message Folder**
2. Return to **Settings → Accounts** and select your connected email account
3. Choose which folders to sync:
- **Inbox**: Primary incoming emails
- **Sent**: Outgoing emails you've sent
- **Custom Folders**: Any specific folders you want to include
- **Exclude Folders**: Skip folders like Spam, Trash, or personal folders
This gives you precise control over which emails appear in your CRM without syncing everything.
**What Gets Synced:**
- **External Emails**: All emails with external contacts from selected folders
- **Internal Emails**: Not synced (same domain emails remain private)
- **Attachments**: Coming in H1 2026
**Note**: We don't provide a CC email address for selective syncing. Instead, use the Message Folder feature above to achieve the same level of control over which emails sync with Twenty.
## Calendar Configuration
### Event Visibility
Choose what will be visible to other users in your workspace:
- **Everything**: The whole event details will be shared with your team
- **Metadata**: Only date & participants will be shared with your team
### Contact Auto-Creation for Meetings
- **Yes**: Automatically create contacts for meeting participants not in your CRM
- **No**: Only link meetings to existing contacts
### Control which events get sync
- **Meeting Import**: Automatically import calendar events
- **Contact Linking**: Link meetings to People and Company records
**What Gets Synced:**
- **Meetings**: Calendar events with external participants
- **Contact Linking**: Events automatically linked to CRM records
- **Team Events**: Shared calendar visibility
## Sync Frequency
**Updates every 5 minutes**: Both email and calendar data sync automatically every 5 minutes after the initial import.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,54 @@
---
title: Experience Settings
info: "Customize your interface theme and regional preferences."
icon: IconPalette
image: /images/user-guide/setup/experience.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Appearance
### Theme Selection
Choose between light and dark modes:
- **Light Mode**: Clean, bright interface ideal for well-lit environments
- **Dark Mode**: Easier on the eyes in low-light conditions
- **System**: Automatically matches your device's theme setting
## Regional Settings
### Language
Select your preferred language for the Twenty interface:
- English (default)
- Additional languages available based on community translations
### Time Zone
Set your local time zone for accurate scheduling and timestamps:
- Affects meeting times, task deadlines, and activity logs
- Automatically adjusts for daylight saving time
### Date Format
Choose how dates appear throughout Twenty:
- **MM/DD/YYYY** (US format)
- **DD/MM/YYYY** (European format)
- **YYYY-MM-DD** (ISO format)
### Number Format
Configure how numbers and currencies display:
- **Decimal Separator**: Comma (,) or period (.)
- **Thousands Separator**: Space, comma, or period
- **Currency Symbol**: Based on your region or custom
### Calendar Format
Set your preferred calendar layout:
- **First Day of Week**: Sunday or Monday
- **Week Numbers**: Show or hide ISO week numbers
- **Time Format**: 12-hour (AM/PM) or 24-hour format
## How to Update Settings
1. Go to **Settings → Experience** from the sidebar
2. Adjust your preferences in each section
3. Changes are saved automatically
4. Refresh your browser to see all changes take effect
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,37 @@
---
title: Member Management
icon: IconUsers
info: "Invite team members and control workspace access for your Twenty workspace."
image: /images/user-guide/setup/members.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Invite New Members
### Using the Invite Link
1. Go to **Settings → Members**
2. Copy the workspace invite link
3. Share the link with new team members
4. They'll receive access once they sign up
### Direct Email Invitation
1. Go to **Settings → Members**
2. Enter the person's email address
3. Click **Invite**
4. They'll receive an email invitation
## Remove Members
### Delete a Member
1. Go to **Settings → Members**
2. Find the member you want to remove
3. Click the delete/remove button next to their name
4. Confirm the removal
**Note**: Removed members lose access immediately but can be re-invited later.
## Need Help?
For role and permission management, check the [Permissions article](/user-guide/section/settings/permissions).
<ArticleEditContent></ArticleEditContent>
@@ -1,26 +1,20 @@
---
title: Permissions
info: "Learn how to control access: share workspaces, assign roles, and set permissions for data, settings, and actions."
info: "Learn how to control access: assign roles and set permissions."
image: /images/user-guide/permissions/permissions.png
sectionInfo: Learn how to manage your workspace.
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Share a Workspace
To invite workspace members:
1. Go to **Settings > Members**
2. Either:
- Copy and share the workspace invite link, or
- Enter the member's email, then click **Invite**.
Invited members will appear on the workspace members list. Use the search bar to locate members.
Twenty's permission system allows you to control access to three main areas:
- **Objects and Fields**: Control who can view, edit, or delete records and individual fields
- **Settings**: Manage access to workspace configuration and administrative functions
- **Actions**: Control general workspace actions like importing data or sending emails
## Create a Role
To create a new role:
1. Go to **Settings > Roles**
1. Go to **Settings Roles**
2. Under **All Roles**, click on **+ Create Role**
3. Enter a role name
4. In the default **Permissions** tab, configure permissions
@@ -30,50 +24,58 @@ To create a new role:
To delete a role:
1. Go to **Settings > Roles**
1. Go to **Settings Roles**
2. Click on the role you want to remove
3. Open the **Settings** tab, then click **Delete Role**
4. Click **Confirm** in the modal
Note: If a role is deleted, any workspace member assigned to it will be automatically reassigned to the default role. All except the **Admin** role can be deleted. There must always be at least one member assigned to the **Admin** role.
## Manage Member Roles
## Assign Roles to Members
### View Roles and Assignments
### View Current Assignments
- Go to **Settings → Roles**
- See all roles and how many members are assigned to each
- View which members have which roles
To view roles and their assigned workspace members:
1. Go to **Settings > Roles**
2. Click any role to view its details and assignments
### Reassign a Role
To reassign a role:
1. Go to **Settings > Roles**
### Assign a Role to a Member
1. Go to **Settings → Roles**
2. Click on the role you want to assign
3. Open the **Assignment** tab
4. Click **+ Assign to member**
5. Select the workspace member
6. Click **Confirm** in the modal to remove the previously assigned role
4. Click **+ Assign to member**
5. Select the workspace member from the list
6. Confirm the assignment
Note: New members are assigned to the default role when they join. You can customize the default role and its permissions on the **Roles** page.
### Set Default Role
1. Go to **Settings → Roles**
2. In the **Options** section, find **Default Role**
3. Select which role new members should automatically receive
4. New workspace members will be assigned this role when they join
**Note**: You can only assign roles to existing workspace members. To invite new members, use [Member Management](/user-guide/section/settings/member-management).
## Customize Permissions
Permissions determine what each role can access or modify within your workspace, including workspace objects records, settings, and actions.
### Object Permissions
### Object and Field Permissions
Control access to records and fields:
Control access to records and individual fields:
#### Object-Level Permissions
- Under **All Objects**, apply permissions like **See Record**, **Edit Records**, **Delete Records**, or **Destroy Records** to all objects
- Under **Object-Level Permissions**, configure exceptions for individual objects. These override the settings from **All Objects**
#### Field-Level Permissions
- Configure permissions for individual fields within each object
- Control who can **See Field**, **Edit Field**, or have **No Access** to specific fields
- Field permissions work the same way as object permissions with inheritance and overrides
#### Managing Permission Overrides
To override parent permissions and apply stricter rules:
- Click **X** to remove the inherited rule
- Select the specific permissions for the selected object
- Select the specific permissions for the selected object or field
- Click the orange **Undo** icon (circular arrow) to revert changes
When done, click **Finish**, then **Save** once redirected to the role page.
@@ -0,0 +1,43 @@
---
title: Profile Settings
icon: IconUser
info: "Manage your personal profile and security settings."
image: /images/user-guide/setup/profile.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Personal Information
### Name and Email
- **Display Name**: Update how your name appears to other workspace members
- **Email Address**: Change your login email (requires verification)
- **Profile Picture**: Upload a custom avatar or use your initials
## Security Settings
### Two-Factor Authentication (2FA)
Enable 2FA to add an extra layer of security to your account:
1. Go to **Settings → Profile Settings**
2. Click **Enable 2FA**
3. Scan the QR code with your authenticator app
4. Enter the verification code to confirm
### Password Management
- **Change Password**: Update your current password
- **Password Requirements**: Must be at least 8 characters long
## Profile Management
### Delete Account
<ArticleWarning>
Deleting your account will permanently remove your access to all workspaces. This action cannot be undone, you'll lose access to all workspaces where you're a member, and you should consider leaving individual workspaces instead if you only want to exit specific teams.
</ArticleWarning>
To delete your account:
1. Go to **Settings → Profile Settings**
2. Scroll to **Danger Zone**
3. Click **Delete Account**
4. Confirm by typing your email address
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,30 @@
---
title: Releases Settings
icon: IconRocket
info: "Learn about the latest releases and enable beta features in the Lab."
image: /images/user-guide/setup/releases.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Latest Releases
Track Twenty's development progress:
- **Release Notes**: See what's new in each version
- **Feature Updates**: Discover new capabilities and improvements
## Lab Features
Access experimental features before they're officially released:
- **Beta Testing**: Try new features while they're in development
- **Feature Flags**: Enable or disable specific experimental functionality
## How to Access
1. Go to **Settings → Releases**
2. View release notes and access the **Lab** tab for beta features
For more community resources, check our [Resources section](/user-guide/section/resources).
<ArticleEditContent></ArticleEditContent>
@@ -1,8 +1,8 @@
---
title: Settings FAQ
info: "Understand how to best manage your workspace."
image: /images/user-guide/workflows/workflow.png
sectionInfo: Learn how to manage your workspace.
image: /images/user-guide/what-is-twenty/faq.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Settings FAQ
@@ -16,23 +16,83 @@ sectionInfo: Learn how to manage your workspace.
<details>
<summary><strong>I accidentally created multiple workspaces but only need one. What should I do?</strong></summary>
Just delete the workspaces you no longer need, you can do so under `Settings > General`.
**Careful: do not delete your account** (accessible under the Profile section) — your account is shared among the different workspaces.
Just delete the workspaces you no longer need, you can do so under `Settings → Workspace Settings`.
<ArticleWarning>
Do not delete your account (accessible under Settings → Profile Settings) — your account is shared among the different workspaces.
</ArticleWarning>
</details>
<details>
<summary><strong>How can I disable my workspace?</strong></summary>
If you just want to disable your workspace (not delete it), go to `Billings` and click on `Cancel Plan`.
If you just want to disable your workspace (not delete it), go to `Settings → Billing` and click on `Cancel Plan`.
</details>
<details>
<summary><strong>How can I delete my workspace?</strong></summary>
You can do so under `Settings > General`. We hope we'll see you around soon, thank you for giving Twenty a try!
You can do so under `Settings → Workspace Settings`. We hope we'll see you around soon, thank you for giving Twenty a try!
</details>
<details>
<summary><strong>Can I limit which emails get synced to Twenty?</strong></summary>
Yes! You can control email syncing in several ways:
- **Message Folders**: Enable this lab feature under `Settings → Releases → Lab`, then configure which folders to sync under `Settings → Accounts`
- **Contact Auto-Creation**: Choose whether to create contacts for all emails or only specific types
- **Sharing Levels**: Control how much email content is visible to your team (metadata only, subject + metadata, or full content)
</details>
<details>
<summary><strong>How do I decide which emails to import into Twenty?</strong></summary>
<ArticleEditContent></ArticleEditContent>
Twenty offers flexible options to control email imports:
- **Folder Selection**: Use the Message Folder lab feature to sync only specific folders (Inbox, Sent, custom folders)
- **External Only**: Only emails with external contacts are synced (internal company emails remain private)
- **Retroactive Control**: You can enable/disable folder syncing at any time to control future imports
</details>
<details>
<summary><strong>Do you provide an email address to CC for selective email syncing?</strong></summary>
No, we don't provide a CC email address for selective syncing. Instead, we offer the Message Folder feature which gives you the same level of control. You can choose exactly which folders sync with Twenty, giving you precise control over which emails appear in your CRM without needing to remember to CC a special address.
</details>
<details>
<summary><strong>Can I connect multiple email accounts to Twenty?</strong></summary>
Yes! You can connect unlimited email accounts per user. Go to `Settings → Accounts` to add Google, Microsoft, or SMTP/CalDAV accounts. Each account can have different sync settings and folder configurations.
</details>
<details>
<summary><strong>How do I control who can see what in my workspace?</strong></summary>
Use the permissions system under `Settings → Roles`. You can create custom roles and control access to:
- **Objects and Fields**: Who can view, edit, or delete specific records and fields
- **Settings**: Access to workspace configuration and admin functions
- **Actions**: General workspace actions like importing data or sending emails
</details>
<details>
<summary><strong>Can I customize my workspace domain?</strong></summary>
Yes! Go to `Settings → Domains` to set up a custom workspace domain (e.g., yourcompany.twenty.com) and configure approved access domains so team members with company email addresses can automatically join your workspace.
</details>
<details>
<summary><strong>What are Lab features and should I enable them?</strong></summary>
Lab features are experimental capabilities you can test before they're officially released. Access them under `Settings → Releases → Lab`. Features like Message Folder selection are stable and useful, but remember that lab features may change or be removed in future releases.
</details>
<details>
<summary><strong>How do I change my workspace appearance and regional settings?</strong></summary>
Go to `Settings → Experience` to customize:
- **Theme**: Light, dark, or system-based
- **Regional Settings**: Language, timezone, date/number formats
- **Calendar Format**: First day of week, time format (12/24 hour)
</details>
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,28 @@
---
title: Workspace Settings
info: "Customize your workspace name and branding."
icon: IconSettings
image: /images/user-guide/setup/settings.png
sectionInfo: Configure your Twenty workspace settings and preferences
---
## Workspace Picture
- **Upload Logo**: Add a custom workspace logo
- **Supported formats**: PNG, JPEG, and GIF files under 10MB
- **Remove**: Delete the current workspace logo
## Workspace Name
- **Name**: Change your workspace display name
- This name appears to all workspace members
## Danger Zone
<ArticleWarning>
Deleting your workspace permanently removes all data and cannot be undone. All workspace data will be lost forever, all members will lose access immediately, and this action cannot be reversed.
</ArticleWarning>
To delete your workspace:
1. Click **Delete workspace** button
2. Confirm the deletion when prompted
**Note**: Only workspace administrators can delete workspaces.
<ArticleEditContent></ArticleEditContent>
@@ -1,7 +0,0 @@
---
title: Views
info: Learn how to create and navigate table and kanban views
icon: IconGitHub
image: /images/user-guide/tips/light-bulb.png
sectionInfo: A brief guide to grasp the basics of Twenty
---
@@ -0,0 +1,7 @@
---
title: Workflows
icon: IconSettings
info: Automate processes and integrate with external tools.
image: /images/user-guide/workflows/workflow.png
sectionInfo: Automate processes and integrate with external tools
---
@@ -0,0 +1,195 @@
---
title: External Tool Integration
icon: IconPlug
info: These workflows focus on bringing data in and out of Twenty through API calls and webhooks.
image: /images/user-guide/integrations/plug.png
sectionInfo: Automate processes and integrate with external tools
---
Below are workflow examples you could roll out to connect Twenty with the rest of your stack.
## Data Ingestion Use Cases
### Webform Submissions
**Problem**: You need to capture leads from website forms, landing pages, or contact forms directly into Twenty.
**Solution**: Use webhook triggers to automatically create records from form submissions.
**Setup**:
- Create a workflow with a Webhook trigger
- Configure the webhook to expect form data (name, email, company, etc.)
- Set the webhook method to POST
- Define the expected body structure in the trigger
**Trigger**: Webhook (POST request from your form)
**Actions**:
- Search Records to check if person/company already exists
- Branch: If exists → Update Record, If not → Create Record
- Create Record for follow-up task assigned to sales rep
- Send Email notification to sales team
### Product Data Synchronization
**Problem**: Your sales team needs visibility into product usage, billing, or feature adoption data stored in your data warehouse.
**Solution**: Regularly sync product data into Twenty to give sellers context about their accounts.
**Trigger**: On a Schedule (daily or weekly)
**Actions**:
- HTTP Request to your data warehouse API
- Code action to process and format the data
- Use the Iterator function for the following steps
- Search Records to find matching company records
- Update Record to add product usage metrics
- Create Record for tasks when usage drops below threshold
### Meeting Notes from Call Recorders
**Problem**: Important insights from sales calls get lost or aren't properly documented in the CRM.
**Solution**: Automatically create notes and action items from call recording systems.
**Trigger**: Webhook (from call recording platform)
**Actions**:
- Code action to extract meeting summary and action items
- Search Records to find the related opportunity or contact
- Create Record for a note with meeting summary
- Create Record for follow-up tasks based on action items
- Send Email to attendees with summary and next steps
### Data Enrichment
**Problem**: Your contact and company records lack important demographic and firmographic information.
**Solution**: Automatically enrich records using external data providers.
**Trigger**: Record is Created (People or Companies object)
**Actions**:
- HTTP Request to enrichment API
- Code action to process enrichment response
- Use the Iterator function for the following steps
- Update Record with additional company/contact information
- Create Record for sales task if high-value prospect identified
- Send Email alert if enrichment reveals key buying signals
## Data Distribution Use Cases
### Newsletter Subscriber Management
**Problem**: You want to send marketing emails to specific segments of your CRM data using specialized email tools.
**Solution**: Export subscriber lists to your email marketing platform when needed.
**Setup**: Create a view in Twenty with all newsletter recipients
**Trigger**: Launch Manually (when no record is selected)
**Actions**:
- Search Records using the newsletter view criteria
- Code action to format email addresses for your email platform
- HTTP Request to add subscribers to your email marketing tool
- Create Record for campaign tracking
- Send Email confirmation to marketing team
### Email Sequence Triggers
**Problem**: You want to trigger sophisticated email sequences based on CRM events using dedicated email automation tools.
**Solution**: Send new leads or customers to your email automation platform when specific events occur.
**Trigger**: Record is Created (People object with specific criteria)
**Actions**:
- Code action to determine appropriate email sequence
- HTTP Request to add contact to email automation platform
- Update Record to track sequence enrollment
- Create Record for follow-up task to monitor engagement
### Lead Scoring Integration
**Problem**: You need sophisticated lead scoring that combines CRM data with external signals.
**Solution**: Send lead data to external scoring tools or implement scoring logic within workflows.
**Option 1 - External Tool**:
**Trigger**: Record is Updated (People object)
**Actions**:
- HTTP Request to send lead data to scoring platform
- Code action to process score response
- Update Record with lead score
- Create Record for sales task if score exceeds threshold
**Option 2 - Internal Logic**:
**Trigger**: Record is Updated (People object)
**Actions**:
- Code action with scoring algorithm (company size, industry, behavior)
- Update Record with calculated score
- Send Email alert to sales rep for high-scoring leads
### Invoice Generation
**Problem**: When deals close, your billing system needs to be updated with customer and deal information.
**Solution**: Automatically send deal data to your invoicing system when opportunities are won.
**Trigger**: Record is Updated (Opportunities object, Stage = "Closed Won")
**Actions**:
- Search Records to get complete customer information
- Code action to format data for billing system
- HTTP Request to create customer in billing platform
- HTTP Request to generate invoice
- Update Record to store invoice reference
- Send Email to finance team with invoice details
## Advanced Integration Patterns
### Bi-directional Sync
**Problem**: You need to keep data synchronized between Twenty and another system in both directions.
**Solution**: Combine scheduled workflows with webhook triggers for real-time sync.
**From Twenty to External System**:
**Trigger**: Record is Updated (any relevant object)
**Actions**:
- HTTP Request to update external system
- Update Record to track sync status and timestamp
**From External System to Twenty**:
**Trigger**: Webhook (from external system)
**Actions**:
- Search Records to find matching record
- Update Record with new data from external system
- Create Record for conflict resolution task if needed
### Multi-step Data Processing
**Problem**: Data from external sources needs complex processing before it can be used in Twenty.
**Solution**: Use Code actions for data transformation and validation.
**Trigger**: Webhook or On a Schedule
**Actions**:
- Code action to validate incoming data format
- Code action to transform data structure
- Code action to apply business rules and calculations
- Search Records to check for duplicates
- Create or Update Record with processed data
- Send Email alert if data quality issues detected
## Implementation Tips
- Store API keys securely in Settings → API & Webhooks
- Use HTTPS for all external API calls
- Be mindful of API rate limits - use scheduled workflows when possible
- Consider batch updates "On a Schedule" when real-time processing isn't required
- Remember the 100 concurrent workflow limit per workspace - use "Bulk" availability for manual triggers when processing multiple records (see [Workflow Features](/user-guide/section/workflows/workflow-features) for details)
- Test with sample data before activating workflows
For troubleshooting integration issues, see our [Workflow Troubleshooting](/user-guide/section/workflows/workflow-troubleshooting) guide. For help implementing complex integrations, consider our [Professional Services](/user-guide/section/workflows/professional-services).
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,71 @@
---
title: Getting Started With Workflows
info: "Learn how to add automations and ideas to get started."
icon: IconNote
image: /images/user-guide/workflows/workflow.png
sectionInfo: Automate processes and integrate with external tools
---
## Why Workflows Matter
Twenty was built to bring maximum flexibility to its users. Rather than forcing you to adapt your business processes to rigid, pre-built features, workflows enable you to build automations that create the CRM that best supports your unique business use cases.
Workflows are Twenty's in-app feature for building these automations. They give you the building blocks to create exactly what your business needs, when it needs it.
## What can I do with workflows?
We recommend building automations for two main purposes:
1. **Internal automations to facilitate your team's day-to-day**: Reduce the amount of manual entries and repetitive tasks that slow down your team.
2. **Bring data in and out of Twenty**: Connect Twenty via API calls and webhooks to your database and other tools.
Let's explore examples of what's possible before diving into the how.
## 1. Internal Automations
Your CRM is only helpful if the data is up to date — but no one likes updating it. Use workflows to automate low-value, repeatable tasks and keep your team focused on what matters.
Examples of what you can automate internally:
- **Data management**: Auto-flag personal emails, lead assignment, data validation
- **Sales processes**: Stage-based updates, churn management, stale opportunity alerts
- **Productivity**: Weekly task reminders, meeting follow-ups, cross-object field synchronization
For detailed examples and step-by-step guidance, see our [Internal Automations](/user-guide/section/workflows/internal-automations) guide.
## 2. External Integrations
Connect Twenty with your other tools and data sources to create a unified business system. You can bring data into Twenty from webforms, product databases, call recorders, and enrichment services. You can also send data out to email marketing tools, billing systems, and other business applications.
Examples of what you can integrate:
- **Data ingestion**: Webform submissions, product data sync, meeting notes, data enrichment
- **Data distribution**: Newsletter management, email sequences, lead scoring, invoice generation
For detailed integration patterns and implementation guidance, see our [External Tool Integration](/user-guide/section/workflows/external-tool-integration) guide.
### What if I don't want to build those connections?
We offer [Professional Services](/user-guide/section/workflows/professional-services) to help you create the automations you need.
Depending on the scope of your project, we will suggest an [Onboarding pack](https://twenty.com/onboarding-packages) or we will put you in contact with our certified implementation partners. They can create your data model, migrate your data, build your workflows.
### I'm not sure the connection I need is feasible
Send us a message and we will help you assess the feasibility.
## Workflow Best Practices
As you start building workflows, keep these tips in mind:
- **Edit step names**: Rename your workflow steps to clearly describe what each one does. This helps with maintenance and makes it easier to hand off to coworkers
- **Leverage previous step data**: You can use fields from records returned by any previous step in your workflow
- **Start simple**: Begin with basic workflows and add complexity over time as you become more comfortable with the system
- **Plan before building**: Map out your workflow logic before you start building to avoid getting stuck halfway through
- **Use branches wisely**: After a "Search Records" step, create branches to handle both "update existing record" and "create new record" scenarios, then merge the paths back together
## What we're working on
Here are the main items we're working on to improve workflows:
- Loops (Iterator is currently in beta, activate it under Settings → Releases → Lab)
- If / Else step
- AI agent to build workflows on your behalf
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,150 @@
---
title: Internal Automations
icon: IconBulb
info: "Automate repetitive tasks to reduce manual work and keep your data accurate."
image: /images/user-guide/workflows/internal-automations.png
sectionInfo: Automate processes and integrate with external tools
---
Below are workflow examples you could roll out to automate repetitive tasks to reduce manual work and keep your data up-to-date.
## Data Management Automations
### Auto-Flag Personal Emails
**Problem**: Your team needs to identify personal vs. business email addresses for better targeting and compliance.
**Solution**: Create a workflow that automatically updates an "is personal email" field whenever an email address is added or updated.
**Trigger**: Record is Updated (People object, Email field)
**Actions**:
- Code action to check if email domain matches common personal providers (gmail.com, yahoo.com, etc.)
- Update Record to set the "is personal email" flag
### Lead Assignment - Round Robin
**Problem**: New leads need to be distributed fairly across your sales team to ensure balanced workloads.
**Solution**: Automatically assign new leads to sales reps using a round-robin system.
**Trigger**: Record is Created (People object)
**Actions**:
- Search Records to find the last assigned rep
- Code action to determine next rep in rotation
- Update Record to assign the lead to the selected rep
- Send Email to notify the assigned rep
### Lead Assignment - Territory Based
**Problem**: Leads should be assigned based on geographic territories or company characteristics.
**Solution**: Route leads to the appropriate sales rep based on location, company size, or industry.
**Trigger**: Record is Created (People or Companies object)
**Actions**:
- Code action to determine territory based on location/industry rules
- Search Records to find the territory owner
- Update Record to assign the lead
- Create Record for a follow-up task
## Sales Process Automations
### Opportunity Stage Management - Closed Won
**Problem**: When deals close, multiple manual updates are needed across different records and team members.
**Solution**: Automatically handle all post-win activities when an opportunity moves to "Closed Won".
**Trigger**: Record is Updated (Opportunities object, Stage field = "Closed Won")
**Actions**:
- Update Record to change Company type from "Prospect" to "Customer"
- Create Record for onboarding tasks assigned to account manager
- Send Email notification to customer success team
- HTTP Request to update external billing system
### Opportunity Stage Management - Closed Lost Renewal
**Problem**: When renewal opportunities are lost, the customer status needs to be updated for proper account management.
**Solution**: Automatically update customer status when renewal deals are lost.
**Trigger**: Record is Updated (Opportunities object, Stage = "Closed Lost" AND Type = "Renewal")
**Actions**:
- Update Record to change Company type from "Customer" to "Churn Customer"
- Create Record for churn analysis task
- Send Email alert to customer success manager
- Update Record to add churn date and reason
### Stale Opportunity Alerts
**Problem**: Opportunities sit without updates, causing deals to go cold and forecasts to become unreliable.
**Solution**: Send automatic alerts when opportunities haven't been updated recently.
**Trigger**: On a Schedule (daily)
**Actions**:
- Search Records for opportunities not updated in X days
- Code action to format alert message with opportunity details
- Send Email to opportunity owner and manager
- Create Record for follow-up task if no response
## Productivity Automations
### Weekly Task Recap
**Problem**: Team members lose track of their upcoming tasks and deadlines.
**Solution**: Send automated weekly email reminders with task summaries.
**Trigger**: On a Schedule (every Monday at 8 AM)
**Actions**:
- Search Records for tasks due this week by assignee
- Code action to format task list by person
- Send Email to each team member with their task recap
- Send Email to managers with team overview
### Meeting Follow-up Automation
**Problem**: Important action items from meetings get forgotten or delayed.
**Solution**: Automatically create follow-up tasks when meetings are scheduled or completed.
**Trigger**: Record is Created (Activities object, Type = "Meeting")
**Actions**:
- Create Record for pre-meeting preparation task
- Create Record for post-meeting follow-up task
- Send Email reminder to attendees
- Update Record to link tasks to the meeting
### Cross-Object Field Synchronization
**Problem**: You need information from related records easily accessible (e.g., main contact's email on opportunity record).
**Solution**: Automatically sync fields between related objects until nested fields are available.
**Trigger**: Record is Updated (Opportunities object, Point of Contact field)
**Actions**:
- Search Records to find the linked person's details
- Update Record to copy email address to opportunity
- Update Record to copy phone number to opportunity
- Update Record to copy company information
## Data Validation and Cleanup
### Phone Number Standardization
**Problem**: Phone numbers are entered in different formats, making them hard to use for calling or messaging.
**Solution**: Automatically format phone numbers to a standard format when they're entered.
**Trigger**: Record is Updated (People object, Phone field)
**Actions**:
- Code action to parse and format phone number
- Update Record with standardized phone format
- Update Record to add country code if missing
For more complex automation needs, consider our [Professional Services](/user-guide/section/workflows/professional-services) or explore [External Tool Integration](/user-guide/section/workflows/external-tool-integration).
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,31 @@
---
title: Professional Services
icon: IconUsers
info: Get professional help building complex workflows and automations from Twenty's team and certified partners.
image: /images/user-guide/what-is-twenty/implementation_services.png
sectionInfo: Automate processes and integrate with external tools
---
## When Do You Need Professional Help?
Consider professional services for:
- Complex multi-system integrations
- Advanced business logic and automation rules
- Large-scale data processing workflows
- Custom API development
- Team training and workflow optimization
- When you don't have internal resources
## Service Options
### Onboarding Packs
Get help from our core team with our 4-hour [Onboarding packs](https://twenty.com/onboarding-packages):
- **Workflow Creation** - Build custom workflows for your business processes
- **Data Model Design** - Optimize your data structure for workflow automation
- **Data Migration** - Import existing data with proper workflow integration
### Implementation Partners
Work with certified partners for advanced customizations. Contact us at contact@twenty.com to connect with our [implementation partners](https://twenty.com/implementation-services).
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,85 @@
---
title: Workflow Credits
icon: IconCoins
info: Understand workflow credit consumption, monitoring, and cost management for your automations.
image: /images/user-guide/workflows/workflow-credits.png
sectionInfo: Automate processes and integrate with external tools
---
Workflow credits power your automations in Twenty. Understanding how they work helps you optimize costs and manage your automation budget effectively.
## Credit Allocation by Plan
Workflow credits are allocated per workspace based on your subscription plan:
- **Trial**: 5 million credits
- **Pro Plan**: 10 million credits per month
- **Organization Plan**: 20 million credits per month
## How Credit Consumption Works
Credits are consumed when workflows execute, not when you create them. Each workflow action consumes credits based on its complexity:
### Credit Consumption by Action Type
- **Basic internal operations**: Very low credit consumption
- Search Records
- Create Record
- Update Record
- Delete Record
- Form actions
- **Complex operations**: Higher credit consumption
- Code actions (JavaScript execution)
- HTTP Requests to external services
- **AI features**: Significant credit consumption (coming soon)
- AI prompts and processing will consume credits based on usage
### Real-Time Deduction
Credits are deducted in real-time as workflows execute. This means:
- Draft workflows don't consume credits
- Only active, running workflows use your credit allocation
- Failed workflows still consume credits for completed steps
## Managing Credits
### Check Credit Usage
1. Go to **Settings → Billing**
2. View your current credit consumption and remaining balance
3. Monitor usage patterns to optimize your workflows
### Purchasing Additional Credits
If you need more credits beyond your plan allocation:
1. Go to **Settings → Billing**
2. Click on the option to purchase additional credits. Packages of different sizes are available.
3. Credits are added to your current balance
## Best Practices
### Efficient Workflow Design
- **Start Simple**: Begin with basic actions and add complexity gradually
- **Test in Draft**: Thoroughly test workflows before activation to avoid wasting credits on errors
- **Minimize HTTP Requests**: Use efficient search criteria and combine operations where possible
- **Batch Processing**: Use bulk operations and Iterator actions efficiently
- **Error Handling**: Implement proper error handling to prevent unnecessary retries
- **Manual Trigger Optimization**: For manual triggers, choose "Bulk" availability to process multiple records in a single workflow run (see [Workflow Features](/user-guide/section/workflows/workflow-features) for details)
### Action Optimization
- Use basic internal operations when possible (lower credit consumption)
- Optimize Code actions for efficiency
- Consider manual triggers for non-urgent processes
- Batch operations to reduce individual action calls
### Credit Management
- **Regular Monitoring**: Check your credit usage weekly in Settings → Billing
- **Usage Tracking**: Keep track of consumption patterns to avoid unexpected overages
- **Plan Accordingly**: Consider upgrading your plan if you consistently need more credits
- **Workflow Review**: Regularly review high-consumption workflows and deactivate unused ones
- **Strategic Planning**: Plan workflow deployment based on credit availability
For detailed billing information and credit management, visit **Settings → Billing** in your Twenty workspace.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,272 @@
---
title: Workflow Features
icon: IconSettings
info: Complete reference for all available workflow triggers, actions, and management features.
image: /images/user-guide/workflows/robot.png
sectionInfo: Automate processes and integrate with external tools
---
## Workflow Triggers
Workflows always start with a single trigger that defines when the automation should run.
### Record is Created
Starts the workflow when a new record is created in a selected object (People, Companies, Opportunities, or any custom object).
**Configuration**: Select the object type to monitor for new records.
### Record is Updated
Starts the workflow when changes are made to an existing record.
**Configuration**:
- Select the object type
- Optionally specify which fields to monitor for changes
### Record is Updated or Created
Starts the workflow when a record is either created or updated in a selected object.
**Why This Matters**: This trigger is particularly helpful because records created via different methods behave differently:
- **API/CSV imports**: Records are created with all fields populated immediately
- **Manual creation**: Records are created first, then fields are added in subsequent updates
**Configuration**:
- Select the object type to monitor
- Optionally specify which fields to monitor for changes
- The workflow will trigger both on initial creation and any subsequent updates
### Record is Deleted
Starts the workflow when a record is removed from an object.
**Configuration**: Select the object type to monitor for deletions.
### Launch Manually
Starts the workflow when triggered by a user action. This trigger can be accessed through the Cmd+K menu or via a custom button in the top navbar.
**Availability Configuration**:
Choose how the workflow should handle record selection:
- **Global**: No record is required to trigger this workflow. The workflow is triggered from anywhere (from any object) and does not use record(s) as input.
- **Single**: The selected record(s) will be passed to your workflow. This is configured for a given object. Several records can be selected before triggering the workflow. The workflow will run as many times as there are records selected.
<ArticleWarning>
You cannot run more than 100 workflows in parallel at any given time.
</ArticleWarning>
- **Bulk**: The selected record(s) will be passed to your workflow. This is configured for a given object. Several records can be selected before triggering the workflow. The workflow will run once, providing the entire list of records as input. This means the workflow needs to contain an Iterator action. This is best for people who want to optimize/limit the number of workflow runs.
**Additional Configuration**:
- Select the target object (for Single and Bulk availability)
- Choose a command icon for the workflow trigger
- Configure navbar placement (Pinned or Not Pinned)
**Access Methods**:
- Cmd+K menu to find and launch manual workflows
- Custom button in the top navbar (if configured)
### On a Schedule
Starts the workflow on a recurring basis you define.
**Configuration**:
- Select time unit (minutes, hours, days)
- Enter a value or use custom cron expressions for advanced scheduling
### Webhook
Starts the workflow when a GET or POST request is received from an external service.
**Configuration**:
- Receive a unique webhook URL
- For POST requests, define the expected body structure
- Configure authentication if needed
## Workflow Actions
Actions define what happens after a trigger fires. You can chain multiple actions together.
### Create a Record
Adds a new record to a selected object.
**Configuration**:
- Select the target object
- Fill out the required and optional fields
- Use data from previous steps to populate fields
**Output**: The newly created record data is available for use in subsequent steps.
### Update Record
Modifies an existing record in a selected object.
**Configuration**:
- Select the target object
- Choose the specific record to update
- Select fields to modify and enter new values
**Output**: The updated record data is available for use in subsequent steps.
### Delete Record
Removes a record from a selected object.
**Configuration**:
- Select the target object
- Choose the specific record to delete
**Output**: The deleted record data remains available for use in subsequent steps.
### Search Records
Finds records within a selected object using filter conditions.
**Configuration**:
- Select the object to search
- Set filter criteria to narrow results
- Configure sorting and limits
**Output**: Returns matching records that can be used in subsequent steps.
**Best Practice**: Use branches after Search Records to handle "found" vs "not found" scenarios.
### Iterator
Loops through an array of records returned from a previous step, allowing you to perform actions on each record individually.
**Configuration**:
- Select the array of records from a previous step (e.g., results from Search Records)
- Define the actions to perform on each record in the loop
- Configure the variable name to reference each record in the iteration
**Example**: Search Records returns 5 people, then use Iterator to send an email to each person or update each record individually.
**Note**: Iterator is currently in beta. Activate it under Settings > Releases > Lab.
### Filter
Filters an array of records based on specified conditions, allowing only records that meet the criteria to pass through.
**Configuration**:
- Select the array of records to filter
- Define filter conditions and criteria
- Configure which records should pass through to subsequent steps
**Output**: Returns only the records that match the specified filter conditions.
### Send Email
Sends an email from your workflow.
**Prerequisites**: Add an email account in Settings > Accounts
**Configuration**:
- Enter recipient email address
- Set subject line
- Compose message body
- Reference variables from previous steps for personalization
**Note**: Email attachments will be available in Q1 2026.
### Code
Runs custom JavaScript within your workflow.
**Configuration**:
- Write JavaScript code in the editor
- Access variables from previous steps
- Return variables for use in subsequent steps
- Test code directly in the step
**Access**: Manage API keys in Settings → API & Webhooks
### Form
Prompts a form during workflow execution to collect user input.
**Configuration**:
- Define input fields with types, labels, and placeholders
- Configure validation rules
- Set form title and description
**Output**: Form responses are available for use in subsequent steps.
<ArticleWarning>
Forms are currently designed for manual triggers only. For workflows with other triggers (Record Created, Updated, etc.), forms are only accessible via the workflow run interface, which is not the expected user experience. A notifications center will be released in 2026 to properly support forms in automated workflows.
</ArticleWarning>
### HTTP Request
Sends a request to an external API as part of your workflow.
**Configuration**:
- Enter the API endpoint URL
- Select HTTP method (GET, POST, PUT, PATCH, DELETE)
- Add required headers and values
- Include request body for POST/PUT/PATCH requests
- Provide sample response for structure preview
## Workflow Management
### Creating Workflows
1. Click "+ Add a Workflow" to begin
2. Click "Untitled" to name your workflow
3. Choose and configure your workflow trigger
4. Add actions to your workflow
5. Test and iterate
6. Activate your workflow (currently in draft mode) once you're done editing it
**Note**: If you don't see the Workflows section, this is due to a permissions issue. Contact your workspace administrator to grant you access to workflows.
### Workflow Statuses
- **Draft**: Being edited, not yet published
- **Active**: Live version responding to triggers
- **Deactivated**: Previously active but manually stopped
- **Archived**: Past versions kept for history
### Activating Workflows
Click **Activate** to publish your draft as a new version. This makes the workflow eligible to run when triggered but doesn't immediately execute it.
### Testing Workflows
Test workflows before activation using:
- Manual triggers (when no record selected)
- Individual action testing (especially Code actions)
- Draft mode testing that doesn't activate the workflow
### Workflow Runs
A **Run** is a record of workflow execution containing:
- Status (success, failed, running)
- Output data from each step
- Author and timestamps
- Error messages if applicable
**Viewing Runs**:
- Check the **Runs** panel in the workflow editor
- Open **Workflow Runs** view for monitoring across all workflows
**Performance Tip**: Hide workflow runs from the "All workflows" page and other workflow pages to improve loading performance, as large numbers of runs can slow down page loading.
### Version History
- View all versions under the **Versions** field
- Click any version to view details
- Use **Use as draft** to restore previous versions
- Handle draft conflicts with override or return options
## Best Practices
### Workflow Organization
- **Descriptive Names**: Use clear, specific workflow names
- **Step Naming**: Rename steps to describe their function
- **Documentation**: Add comments in Code actions
- **Categorization**: Group related workflows logically
- **Custom Fields**: Add fields to the Workflow object in your data model (similar to other objects) to organize and categorize workflows with custom properties
### Performance Optimization
- **Minimize API Calls**: Batch operations when possible
- **Efficient Searches**: Use specific filter criteria
- **Error Handling**: Plan for failure scenarios
- **Rate Limiting**: Respect external API limits
### Data Flow Management
- **Branch Logic**: Use branches after Search Records
- **Variable Usage**: Leverage data from previous steps
- **Data Validation**: Validate inputs in Code actions
- **Field Mapping**: Plan data transformations carefully
### Monitoring and Maintenance
- **Regular Monitoring**: Check workflow runs for errors
- **Performance Review**: Analyze execution times and success rates
- **Update Management**: Test changes in draft before activation
- **Team Coordination**: Document workflows for team members
For practical examples of these features in action, see our [Internal Automations](/user-guide/section/workflows/internal-automations) and [External Tool Integration](/user-guide/section/workflows/external-tool-integration) guides.
<ArticleEditContent></ArticleEditContent>
@@ -0,0 +1,110 @@
---
title: Workflow Troubleshooting
icon: IconBug
info: Debug and optimize your workflows with troubleshooting techniques and performance optimization tips.
image: /images/user-guide/what-is-twenty/20.png
sectionInfo: Automate processes and integrate with external tools
---
## Debugging with Workflow Runs
Use the **Workflow Runs** interface to debug issues:
- Access via the **Runs** panel in the workflow editor
- Click on individual runs to see input/output data for each step
- Check execution status, error messages, and data flow between steps
## Common Issues and Solutions
### Workflow Not Triggering
**Problem**: Workflow doesn't execute when expected.
**Solutions**:
- Verify the workflow is **Active** (not in Draft mode)
- Check trigger configuration matches your data structure
- For Record triggers, ensure the correct object and fields are selected
- For Webhook triggers, verify the URL and expected data format
- For Scheduled triggers, check the timing configuration
### Forms Not Accessible
**Problem**: Form actions are hard to find or access in automated workflows.
<ArticleWarning>
Forms are currently designed for manual triggers only. For workflows with other triggers (Record Created, Updated, etc.), forms are only accessible via the workflow run interface, which is not the expected user experience. A notifications center will be released in 2026 to properly support forms in automated workflows.
</ArticleWarning>
**Workaround**: Use manual triggers when forms are required, or restructure workflows to avoid forms in automated flows.
### High Credit Consumption
**Problem**: Workflows consuming more credits than expected.
**Common Causes & Solutions**:
- **Inefficient API Calls**: Batch API calls when possible instead of individual requests
- **Wrong Manual Trigger Configuration**: Use "Bulk" availability instead of "Single" to process multiple records in one workflow run
- **Missing Filters**: Add conditional logic to stop workflows when criteria aren't met
- **Unnecessary Steps**: Remove redundant actions and optimize workflow logic
- **Real-time vs. Scheduled**: Use scheduled workflows for non-urgent processes
### Concurrent Workflow Limits
**Problem**: Hitting the 100 concurrent workflow limit per workspace.
<ArticleWarning>
You cannot run more than 100 workflows in parallel at any given time per workspace.
</ArticleWarning>
**Solutions**:
- Use "Bulk" availability for manual triggers to process multiple records in one run
- Implement delays between workflow executions using scheduled triggers
- Optimize workflows to run faster and reduce concurrent execution time
- Consider batch processing during off-peak hours
### API Rate Limiting
**Problem**: External API calls failing due to rate limits.
**Solutions**:
- Use scheduled workflows instead of real-time triggers when possible
- Implement delays between API calls in Code actions
- Batch API requests when the external service supports it
- Monitor workflow runs for rate limit errors and adjust timing
### Iterator Issues
**Problem**: Iterator actions not working as expected.
**Solutions**:
- **Note**: Iterator is currently in beta. Activate it under Settings > Releases > Lab
- Verify the input is an array of records from a previous step
- Check that actions within the Iterator are properly configured
- Use Iterator with "Bulk" manual triggers for optimal performance
### Missing Permissions
**Problem**: Cannot access workflows section.
**Note**: If you don't see the Workflows section, this is due to a permissions issue. Contact your workspace administrator to grant you access to workflows.
## Optimization Tips
### Performance Best Practices
- **Start simple** and add complexity gradually
- **Use "Bulk" availability** for manual triggers to process multiple records efficiently
- **Add filters early** to stop workflows when criteria aren't met
- **Batch API calls** and use scheduled workflows for non-urgent processes
- **Hide workflow runs** from pages showing all workflows to improve loading performance
- **Monitor credit usage** regularly in Settings → Billing
### Error Prevention
- **Test in draft mode** before activating workflows
- **Validate API responses** and implement fallback actions
- **Use descriptive step names** for easier maintenance
- **Document complex logic** for team members
## Getting Help
### Self-Service Resources
- Review [Workflow Features](/user-guide/section/workflows/workflow-features) for technical details
- Check [Workflow Credits](/user-guide/section/workflows/workflow-credits) for optimization tips
- Explore [Internal Automations](/user-guide/section/workflows/internal-automations) and [External Tool Integration](/user-guide/section/workflows/external-tool-integration) for examples
### Professional Support
- Contact our [Professional Services](/user-guide/section/workflows/professional-services) for complex troubleshooting
- Reach out to support via contact@twenty.com for technical assistance
<ArticleEditContent></ArticleEditContent>