twenty/packages/twenty-docs/user-guide/workflows/external-tool-integration.mdx
Abdul Rahman 9f97be67b1
Migrate documentation to Mintlify and configure 301 redirects (#15502)
## Summary
Completes the migration of all documentation from twenty-website to a
new Mintlify-powered documentation site at docs.twenty.com.

## Changes Made

### New Package: `twenty-docs`
-  Created new Mintlify documentation package
-  Migrated 95 content pages (user-guide, developers, twenty-ui)
-  Migrated 81 images
-  Converted all custom components to Mintlify native components
-  Configured navigation with 2 tabs and 94 pages
-  Added Helper AI Agent with searchArticles tool for docs search

### Updated: `twenty-website`
-  Added 11 redirect rules (301 permanent) in next.config.js
-  Removed all documentation content (111 files)
-  Removed documentation routes (user-guide, developers, twenty-ui)
-  Removed documentation components (9 files)
-  Updated keystatic.config.ts
-  Preserved all marketing/release pages

### Updated: Core Files
-  Updated README.md - docs links point to docs.twenty.com
-  Updated CONTRIBUTING.md - code quality link updated
-  Updated SupportDropdown.tsx - user guide link updated
-  Updated Footer.tsx - user guide link updated
2025-10-31 17:44:14 +01:00

197 lines
7.4 KiB
Text

---
title: External Tool Integration
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
---
<Frame>
<img src="/images/user-guide/integrations/plug.png" alt="Header" />
</Frame>
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/workflows/workflow-features) for details)
- Test with sample data before activating workflows
For troubleshooting integration issues, see our [Workflow Troubleshooting](/user-guide/workflows/workflow-troubleshooting) guide. For help implementing complex integrations, consider our [Professional Services](/user-guide/workflows/professional-services).