Configuring Integrations
Connect Doone Flow to external services like Twilio for SMS, webhooks, and team member management.
Table of Contents
Overview
DooneFlow supports several types of integrations:
- SMS (Twilio) — Send text messages to contacts and team members
- Salesforce — Connect to Salesforce and update records via OAuth
- Email — Monitor email inboxes and trigger workflows when emails arrive
- Webhooks — Receive and send HTTP requests
- Team Members — Manage your team for round-robin assignment
All integrations are configured at the organization level, meaning all workflows in your organization can use them.
SMS Integration (Twilio)
Twilio integration enables SMS functionality in your workflows. You can send messages to contacts or notify team members.
Prerequisites
- A Twilio account (sign up at twilio.com)
- A Twilio phone number
- Account SID and Auth Token from your Twilio dashboard
Getting Your Twilio Credentials
- Log in to Twilio Console
Go to console.twilio.com and sign in or create an account - Find Your Account SID and Auth Token
Navigate to the dashboard. Your Account SID is displayed on the dashboard. Your Auth Token is also on the dashboard (click to reveal). - Get Your Phone Number
Go to "Phone Numbers" → "Manage" → "Active numbers" and copy your Twilio phone number (format: +1234567890)
Configuring Twilio in DooneFlow
- Navigate to Settings
Click on your organization name in the top navigation and select "Settings" or "Integrations" - Enter Twilio Credentials
- Account SID: Your Twilio Account SID
- Auth Token: Your Twilio Auth Token
- Phone Number: Your Twilio phone number (include country code, e.g., +1234567890)
- Save Configuration
Click "Save" to store your credentials. Credentials are encrypted and stored securely. - Test the Integration
Create a test workflow with an SMS action, send a test webhook to trigger the workflow, and verify the SMS is received.
Note: SMS messages are limited to 1600 characters (Twilio standard). International messaging rates apply.
Salesforce Integration
Salesforce integration enables workflows to create and update Salesforce records using OAuth 2.0 authentication.
Prerequisites
- A Salesforce account (Production or Sandbox)
- A Salesforce Connected App with OAuth enabled
- Client ID and Client Secret from your Connected App
Creating a Salesforce Connected App
- Log in to Salesforce
Go to Setup → App Manager and click "New Connected App" - Configure OAuth Settings
- Enable OAuth Settings
- Callback URL:
https://your-domain.com/v1/organizations/{org-id}/integrations/salesforce/oauth/callback - Selected OAuth Scopes: Access and manage your data (api), Perform requests on your behalf at any time (refresh_token, offline_access)
- Get Your Credentials
After saving, note your Consumer Key (Client ID) and click "Click to reveal" to get your Consumer Secret (Client Secret)
Configuring Salesforce in DooneFlow
- Navigate to Integrations
Go to Organization Management → Integrations or navigate to/organizations/{organization-id}/integrations - Configure Salesforce
- Enter your Connection Name (e.g., "Production", "Sandbox")
- Select your Environment (production or sandbox)
- Enter your Client ID (Consumer Key)
- Enter your Client Secret (Consumer Secret)
- Optionally specify a Redirect URI (auto-generated if not provided)
- Save and Connect
Click "Save Configuration" - you'll be automatically redirected to Salesforce to authorize the connection. After authorization, you'll be redirected back and the connection will be saved.
Managing Salesforce Connections
You can create multiple Salesforce connections per organization:
- Multiple Connections: Create separate connections for Production and Sandbox environments
- Connection Names: Give each connection a descriptive name for easy identification
- Using in Workflows: When adding a Salesforce action, select which connection to use
Salesforce Action Configuration
When adding a Salesforce action to a workflow:
- Connection: Select which Salesforce connection to use
- Endpoint Type: Standard Object or Custom Endpoint
- Object/Endpoint: The Salesforce object or Apex endpoint name
- Operation: Create or Update
- Payload: JSON with field mappings (supports template variables)
Example Payload:
{
"FirstName": "{contact_name}",
"Phone": "{contact_phone}",
"Email": "{contact_email}",
"LeadSource": "Webhook"
} Salesforce Features
- OAuth 2.0: Secure authentication without storing passwords
- Automatic Token Refresh: Tokens are automatically refreshed when needed
- Multiple Connections: Support for both Production and Sandbox environments
- Template Variables: Use workflow data in Salesforce payloads
- Error Handling: Automatic retry for transient failures
Troubleshooting Salesforce
Connection Failed
- Verify Client ID and Client Secret are correct
- Check that the callback URL matches your Connected App settings
- Ensure OAuth scopes are properly configured
Token Expired
- Tokens are automatically refreshed, but if issues persist, reconnect
- Go to Integrations → Salesforce → Reconnect
Update Failed
- Verify the record ID exists (for Update operations)
- Check that field names match Salesforce field API names
- Ensure the user has permission to update the object
Email Integration
Email integration enables workflows to trigger automatically when emails arrive in monitored inboxes. Perfect for support tickets, lead inquiries, and automated email processing.
Prerequisites
- An email account with IMAP access enabled
- IMAP server address and port (usually 993 for SSL/TLS)
- Email username and password (or app password for Gmail)
Common IMAP Settings
Gmail:
- IMAP Server:
imap.gmail.com - Port:
993 - Username: Your Gmail address
- Password: Use an App Password (not your regular password)
To create an App Password: Google Account → Security → 2-Step Verification → App Passwords
Outlook/Office 365:
- IMAP Server:
outlook.office365.com - Port:
993 - Username: Your email address
- Password: Your email password
Yahoo:
- IMAP Server:
imap.mail.yahoo.com - Port:
993 - Username: Your email address
- Password: Use an App Password
Configuring Email Inboxes
- Navigate to Email Inboxes
Go to Organization Management → Email Inboxes, or navigate to/organizations/{organization-id}/email-inboxes - Add Email Inbox
- Email Address: The email address to monitor
- IMAP Server: Your email provider's IMAP server
- IMAP Port: Usually 993 for SSL/TLS, 143 for STARTTLS
- IMAP Username: Your email address
- IMAP Password: Your email password or app password
- Poll Interval: How often to check for new emails (minimum: 30 seconds, recommended: 60 seconds)
- Save and Activate
Click "Create Inbox" to save. The system will start polling for new emails automatically.
Using Email Triggers in Workflows
Once an email inbox is configured, you can create workflows with email triggers:
- Create a Workflow
Add a new workflow and select "Email" as the trigger type - Configure Email Trigger
- Select the email address to monitor (must match a configured inbox)
- Optionally add subject or from filters to only trigger on specific emails
- Choose whether to mark emails as read after processing
- Add Actions
Use email fields like{email_from},{email_subject},{email_body}in your actions
Email Processing
The system automatically:
- Polls email inboxes at the configured interval
- Parses incoming emails (extracts text and HTML)
- Stores email metadata and content
- Triggers matching workflows based on filters
- Makes email data available as template variables
Available Email Fields
When an email triggers a workflow, these fields are available:
{email_from}- Sender email address{email_to}- Recipient email address{email_subject}- Email subject line{email_body}- Plain text body{email_body_html}- HTML body{contact_email}- Extracted from From field{contact_name}- Extracted from From field (if available)
Troubleshooting Email Integration
Connection Failed
- Verify IMAP server address and port are correct
- Check that IMAP is enabled in your email account settings
- For Gmail, ensure you're using an App Password, not your regular password
- Verify firewall/network allows IMAP connections
Emails Not Triggering
- Check that the inbox is active in Email Inboxes settings
- Verify the email address in the trigger matches the configured inbox
- Check subject/from filters aren't too restrictive
- Review the Events page for any error messages
Polling Not Working
- Ensure the worker process is running (required for email polling)
- Check the poll interval is set appropriately (minimum 30 seconds)
- Verify "Last Polled" timestamp is updating in Email Inboxes
Webhook Integration
Webhooks allow Doone Flow to receive data from external services and send data to external APIs.
Receiving Webhooks
DooneFlow can receive webhooks from any service that supports HTTP POST requests.
Webhook URL Format:
https://api.dooneflow.com/webhook/{webhook_path} Example:
https://api.dooneflow.com/webhook/new-leads Setting Up Webhook Receivers
- Create a Workflow with Webhook Trigger
- Add a webhook trigger to your workflow
- Set a unique webhook path
- (Optional) Generate a security key
- Configure the External Service
In your external service (e.g., contact form, CRM, or other integration), set the webhook URL and include the security key in headers if configured. - Test the Webhook
curl -X POST https://api.dooneflow.com/webhook/new-leads \ -H "Content-Type: application/json" \ -H "X-Webhook-Key: your_security_key" \ -d '{ "name": "John Doe", "phone": "+1234567890", "email": "john@example.com" }'
Webhook Security
Security Keys:
- Generate a unique security key for each webhook trigger
- Include the key in webhook requests as a header:
X-Webhook-Key - Store keys securely and rotate them regularly
Best Practices:
- Always use HTTPS for webhook URLs
- Validate webhook payloads in your workflows
- Monitor webhook executions for suspicious activity
Sending Webhooks (Call Webhook Action)
The "Call Webhook" action allows workflows to send HTTP requests to external services.
Example: Sending to CRM
- URL:
https://api.crm.com/contacts - Method: POST
- Headers: Authorization: Bearer your_api_key, Content-Type: application/json
- Payload: JSON with template variables
Team Member Management
Team members are users in your organization who can receive assignments and notifications.
Adding Team Members
- Navigate to Team Members
Click "Team Members" in the navigation and click "Add Team Member" - Enter Team Member Details
- Name: Full name of the team member
- Phone: Phone number (for SMS notifications)
- Email: Email address (optional)
- Save Team Member
Click "Save" to add the team member. Team members are automatically available for round-robin assignment.
Round-Robin Assignment
When a workflow assigns a contact to a team member:
- Automatic Assignment: Contacts are assigned in round-robin fashion
- Fair Distribution: Each team member receives an equal number of assignments
- Template Variables: Use
{team_member_name},{team_member_phone},{team_member_id}in actions
Using Team Members in Workflows
SMS to Team Member Example:
Select "Team Member" as recipient type in SMS action:
Hi {team_member_name}, new contact assigned: {contact_name} ({contact_phone}). Contact ID: {team_member_id} Security Best Practices
Credential Management
- Encryption: All credentials are encrypted at rest using AES-256-GCM
- Access Control: Only organization owners and admins can manage integrations
- Rotation: Regularly rotate API keys and security tokens
Webhook Security
- Use security keys for webhook triggers
- Always use HTTPS for webhook URLs
- Validate webhook payloads match expected format
- Monitor activity regularly for anomalies
API Key Storage
- Never commit API keys to version control
- Use environment variables for local development
- Rotate keys immediately if compromised
- Use different keys for development and production
Troubleshooting
Integration Not Working
Check Configuration:
- Verify credentials are correct
- Check that the integration is enabled
- Ensure your account has sufficient permissions/balance
Check Logs:
- Navigate to the Events tab
- Look for failed workflow executions
- Check error messages for specific issues
Common Issues
SMS Not Sending
- Verify Twilio account has balance
- Check phone number format (must include country code)
- Ensure Twilio phone number is verified
Webhook Not Receiving
- Verify webhook URL is correct and accessible
- Check security key matches
- Ensure external service can reach your domain
Team Member Not Receiving Assignments
- Verify team member is added and active
- Check workflow is using team member recipient type
- Ensure contact has required information (phone or email)
Next Steps
Now that you've configured your integrations, learn how to create workflows that use them.
Create Your First Workflow →