Email Forwarder¶
Overview¶
The Email Forwarder task takes an incoming email from your workflow and forwards it to one or more recipients, preserving all original content and attachments. This task is essential for routing inbound emails to the right people or teams based on workflow logic.
Unlike the standard Email task which creates new messages, Email Forwarder specifically handles existing emails captured by trigger tasks.
Type Number: 5
Category: Communication
Difficulty: Intermediate
How It Works¶
Email Forwarder operates on emails already received by your system:
- Email Captured: Trigger task captures inbound email (provides
email_id) - Workflow Logic: Tasks determine recipients based on content/sender/rules
- Email Forwarder: Retrieves original email from database
- Attachment Transfer: All attachments copied to new outgoing email
- Recipient Processing: Parses To/Cc/Bcc lists
- Queue Creation: Creates outgoing email in queue
- Send: Email service processes queue and sends
graph LR
A[Inbound Email Trigger] --> B[Provides email_id]
B --> C[Workflow Logic]
C --> D[Email Forwarder Task]
D --> E[Retrieve Original Email]
E --> F[Copy All Attachments]
F --> G[Parse Recipients]
G --> H[Create Outgoing Email]
H --> I[Queue for Sending] Configuration¶
Required Fields¶
| Field | Description | Example |
|---|---|---|
| To | Comma or semicolon-separated recipient emails | john@company.com, jane@company.com |
Optional Fields¶
| Field | Description | Example |
|---|---|---|
| Cc | Carbon copy recipients (visible to all) | manager@company.com |
| Bcc | Blind carbon copy (hidden from other recipients) | archive@company.com |
Important Notes¶
- email_id Required: Must have
email_idin channelData (from trigger) - Multiple Delimiters: Accepts commas or semicolons
- Variable Support: Use workflow variables like
{{task_15001_email}} - Attachment Handling: All attachments automatically included
- Subject Preserved: Original subject line unchanged
- Body Preserved: Original HTML and text body unchanged
- Sender Override: Sends from
info@basecloudglobal.comwith original sender as display name - Reply-To: Reply goes to original sender
Prerequisites¶
Required: email_id in channelData¶
Email Forwarder only works after a trigger task that provides email_id:
Compatible Triggers: - Type 52 - Leads Mail Trigger: Gmail/Outlook OAuth emails - Type 54 - Inbound Email Trigger: Emails to @bcglobalmailer.com addresses
Example channelData:
{
"email_id": 12345,
"trigger_from": "customer@example.com",
"trigger_subject": "Product Inquiry",
"trigger_body": "Email content..."
}
Without email_id, task fails with: "No email ID found."
Output Fields¶
The task generates these workflow variables:
| Variable | Type | Description |
|---|---|---|
task_5001_run | Boolean | Whether task executed successfully (true/false) |
task_5001_run_text | String | Status message: "Email forwarder sent." or error message |
task_5001_emailId | Integer | ID of the original email that was forwarded |
Success Response¶
{
"task_5001_run": true,
"task_5001_run_text": "Email forwarder sent.",
"task_5001_emailId": 12345
}
Error Response¶
Real-World Examples¶
Example 1: Support Ticket Distribution¶
Scenario: Route incoming support emails to appropriate team members based on email content.
Workflow:
Inbound Email Trigger (support@company.com)
↓
Key Match (Classify email by keywords)
- Match: {{trigger_subject}}
- "billing": billing-team@company.com
- "technical": tech-support@company.com
- "sales": sales@company.com
- Fallback: general@company.com
↓
Email Forwarder
- To: {{task_17001_value}}
- Cc: manager@company.com
↓
New Client (Create support ticket)
Benefits: - Automatic routing by subject/content - Manager visibility via CC - All attachments preserved - Original sender can reply directly
Example 2: Lead Notification System¶
Scenario: Notify assigned account manager immediately when lead emails are received.
Workflow:
Leads Mail Trigger (leads@company.com)
↓
Match Client (Find or create client from sender)
↓
Edit Client (Update last contact date)
↓
MySQL Query (SELECT account_manager_email WHERE client_id = ...)
↓
Email Forwarder
- To: {{task_7001_account_manager_email}}
- Cc: sales-director@company.com
↓
Workflow Note (Log forwarding action)
Benefits: - Account manager gets immediate notification - Director has visibility - Original email thread preserved - Any attachments (proposals, contracts) included
Example 3: Document Workflow Automation¶
Scenario: Route invoices, contracts, and documents to accounting department automatically.
Workflow:
Inbound Email Trigger (documents@company.com)
↓
If Condition (Check for PDF attachment)
- Condition: {{trigger_has_attachment}} = true
↓
Regex (Extract document type from subject)
- Pattern: (invoice|contract|quote)
- Extract: {{regex_match_1}}
↓
Key Match (Route to department)
- "invoice": accounting@company.com
- "contract": legal@company.com
- "quote": sales@company.com
↓
Email Forwarder
- To: {{task_17001_value}}
- Bcc: archive@company.com
↓
Files Task (Save attachments to client folder)
Benefits: - Automatic document routing - Archive copy for compliance - Attachments saved to correct client - No manual sorting required
Example 4: Multi-Department Communication¶
Scenario: Ensure all relevant departments see important customer communications.
Workflow:
Leads Mail Trigger (info@company.com)
↓
If Condition (Check if high-value client)
- Condition: {{trigger_client_lifetime_value}} > 10000
↓
Email Forwarder
- To: sales@company.com, support@company.com
- Cc: account-manager@company.com
- Bcc: executive-team@company.com
↓
Edit Client (Flag as high-value interaction)
Benefits: - Cross-department awareness - Executive visibility without revealing - Quick response from multiple teams - Original context preserved
Example 5: Escalation Chain with Visibility¶
Scenario: Forward urgent emails to support team with management oversight.
Workflow:
Inbound Email Trigger (urgent@company.com)
↓
AI Prompt (Analyze urgency level)
- Prompt: "Rate urgency 1-10: {{trigger_body}}"
↓
If Condition ({{task_38001_response}} > 7)
YES → Email Forwarder
- To: priority-support@company.com
- Cc: support-manager@company.com
- Bcc: director@company.com
↓
SMS (Alert support manager)
NO → Email Forwarder
- To: regular-support@company.com
Benefits: - AI-powered triage - Appropriate escalation levels - Management visibility on critical issues - SMS backup for urgent items
Common Use Cases¶
- Support Routing: Direct emails to correct support team
- Lead Distribution: Forward leads to sales reps
- Document Processing: Route invoices/contracts to departments
- Escalation Workflows: Forward urgent emails to management
- Multi-Team Collaboration: Share emails across departments
- Archive & Compliance: BCC all emails to archive mailbox
- Client Communication: Forward client emails to account managers
- Vendor Management: Route supplier emails to procurement
- HR Processing: Forward applications to hiring managers
- Executive Briefing: BCC leadership on important communications
Configuration Tips¶
Recipient List Formatting¶
✅ Supported Formats:
john@company.com, jane@company.com
john@company.com; jane@company.com
{{task_15001_email}}, admin@company.com
sales@company.com,support@company.com,billing@company.com
✅ With Variables:
To: {{task_17001_value}}
Cc: {{loop_item_manager_email}}, director@company.com
Bcc: archive@company.com
Best Practices¶
- Use Variables: Dynamic routing based on workflow logic
- BCC for Archives: Keep copies without revealing recipients
- Validate Recipients: Ensure email addresses exist before forwarding
- Limit CC Overuse: Only include those who need visibility
- Document Routing Logic: Add Workflow Note after forwarding
Common Patterns¶
Round Robin Distribution:
Round Robin (Select available support agent)
↓
Email Forwarder
- To: {{task_30001_run}}
- Cc: support-queue@company.com
Conditional Routing:
If Condition (Business hours check)
YES → Email Forwarder (To: on-duty-team@company.com)
NO → Email Forwarder (To: after-hours@company.com)
Multi-Level Escalation:
Key Match (Priority level)
- "low": support@company.com
- "medium": priority-support@company.com, manager@company.com
- "high": escalation@company.com, director@company.com
Troubleshooting¶
"No email ID found" error¶
Cause: No email_id in channelData (missing trigger)
Solution: - Ensure workflow starts with Type 52 or Type 54 trigger - Verify trigger is capturing emails correctly - Check trigger configuration - Test trigger independently first
Email forwards but attachments missing¶
Possible Causes: 1. Attachment Transfer Failed: Database error during copy 2. File Size Limits: Attachments exceed email provider limits 3. Storage Issues: Azure Blob Storage quota exceeded
Solutions: - Check email service logs for errors - Verify Azure storage availability - Test with smaller attachments - Review database for attachment records
Recipients not receiving forwarded emails¶
Possible Causes: 1. Invalid Email Addresses: Typos or non-existent addresses 2. Spam Filters: Forwarded emails flagged as spam 3. Queue Processing Delay: Email still in outgoing queue 4. Domain Blacklist: Sender domain blocked by recipient
Solutions: - Validate email addresses before forwarding - Check spam folders - Review outgoing email queue status - Verify sender domain reputation - Test with known working addresses
Emails forwarding to wrong recipients¶
Possible Causes: 1. Variable Errors: Wrong variable name or empty value 2. Logic Errors: If Condition or Key Match misconfigured 3. Delimiter Issues: Mixing commas/semicolons incorrectly
Solutions: - Add Workflow Note to log recipient variables - Test with static email first - Verify variable names exactly match output fields - Check for trailing spaces in configuration
Original sender information lost¶
Expected Behavior: Email Forwarder automatically: - Sets From: info@basecloudglobal.com - Sets From Name: to original sender's email - Sets Reply-To: to original sender
If reply goes to wrong address: - Check email client reply-to handling - Verify original email had valid sender - Consider adding note in email body with original sender
Duplicate emails sent¶
Possible Causes: 1. Workflow Looping: Email forwarding triggers another workflow 2. Multiple Triggers: Same email captured by multiple triggers 3. Retry Logic: Failed forwards being retried
Solutions: - Add conditions to prevent loops - Use unique trigger email addresses - Implement idempotency checks - Add delays between retries
Limitations & Considerations¶
Technical Limitations¶
- No Email Editing: Cannot modify subject or body content
- No Prefix: Cannot add "FWD:" or other prefixes to subject
- Fixed Sender: Always sends from
info@basecloudglobal.com - No Inline Images: May not preserve embedded images
- No Custom Headers: Cannot add custom email headers
- No Scheduling: Forwards immediately (no delay option)
Data Requirements¶
- Requires email_id: Will not work without trigger providing email ID
- Database Dependency: Email must exist in
inbound_emailtable - Attachment Storage: Requires Azure Blob Storage access
- Client Association: Uses system owner (owner_id: 1, user_id: 1)
Best Practices¶
- Validate Triggers: Ensure email triggers working before workflows
- Error Handling: Add If Condition to check
task_5001_runstatus - Logging: Use Workflow Note to document forwarding actions
- Testing: Test with known email addresses first
- Monitoring: Track forwarding success rates
Email Provider Considerations¶
- Size Limits: Email providers limit attachment sizes (typically 25MB)
- Rate Limits: May have hourly/daily sending limits
- Spam Scores: Excessive forwarding may trigger spam filters
- Authentication: SPF/DKIM configured for
basecloudglobal.com
Related Tasks¶
- Type 52 - Leads Mail Trigger: Provides email_id from Gmail/Outlook
- Type 54 - Inbound Email Trigger: Provides email_id from bcglobalmailer.com
- Type 2 - Email Task: Create new emails instead of forwarding
- Type 15 - Match Client: Find client from email sender
- Type 17 - Key Match: Route emails based on criteria
- Type 30 - Round Robin: Distribute emails evenly
- Type 39 - Files Task: Save email attachments to client folders
Advanced Patterns¶
Intelligent Routing with AI¶
Inbound Email Trigger
↓
AI Prompt
- Prompt: "Categorize this email: {{trigger_subject}}. Return: sales, support, or billing"
↓
Key Match (Route by AI category)
- "sales": sales@company.com
- "support": support@company.com
- "billing": billing@company.com
↓
Email Forwarder
- To: {{task_17001_value}}
- Cc: admin@company.com
Multi-Stage Escalation¶
Inbound Email Trigger
↓
Email Forwarder (First level)
- To: support@company.com
↓
Delay (2 hours)
↓
MySQL Query (Check if ticket still open)
↓
If Condition (Ticket unresolved)
YES → Email Forwarder (Second level)
- To: manager@company.com
- Cc: director@company.com
Archive Everything Pattern¶
Inbound Email Trigger
↓
[Workflow logic tasks...]
↓
Email Forwarder (Primary routing)
- To: {{determined_recipient}}
- Bcc: archive@company.com, compliance@company.com
↓
Files Task (Save attachments)
- Action: save_to_directory
- Directory: /Emails/{{year}}/{{month}}
Client-Specific Routing¶
Leads Mail Trigger
↓
Match Client (Find client by email)
↓
MySQL Query (SELECT * FROM clients WHERE id = {{client_id}})
↓
Email Forwarder
- To: {{query_account_manager_email}}
- Cc: {{query_account_director_email}}
↓
Workflow Note (Log: "Email forwarded to {{query_account_manager_name}}")
Failed Forward Notification¶
Email Forwarder
↓
If Condition ({{task_5001_run}} = false)
YES → Email (New notification)
- To: admin@company.com
- Subject: "Email Forward Failed"
- Body: "Error: {{task_5001_run_text}}"
↓
Workflow Note (Log failure)
FAQ¶
Can I forward emails that weren't captured by triggers?¶
No, Email Forwarder requires email_id which only comes from email trigger tasks (Type 52 or 54). For other emails, use Type 2 (Email) task instead.
Can I modify the subject line when forwarding?¶
No, the subject is preserved exactly as received. If you need to modify content, use Type 2 (Email) task and manually include original content.
Are attachments counted against storage limits?¶
Yes, attachments are stored in Azure Blob Storage. Large volumes of attachments will consume storage quota.
Can I forward the same email multiple times?¶
Yes, you can have multiple Email Forwarder tasks in one workflow to forward to different recipients or at different stages.
What happens if a recipient email is invalid?¶
The task completes successfully but the email may bounce. The bounce will be handled by your email service (not visible in workflow).
Can I forward only specific attachments?¶
No, all attachments are automatically included. You cannot selectively include/exclude attachments.
How do I know if forwarding succeeded?¶
Check task_5001_run (boolean) and task_5001_run_text (status message). Use If Condition to handle failures.
Can I delay forwarding?¶
Yes, add a Delay task before Email Forwarder. This is useful for multi-stage workflows or business hours routing.
Does forwarding preserve email threading?¶
Yes, the original email structure is preserved including message IDs and thread references.
Can I forward to external email addresses?¶
Yes, you can forward to any valid email address, not just internal company addresses.
Security & Compliance¶
Data Privacy¶
- Sensitive Data: Be cautious forwarding emails with personal/financial data
- GDPR Compliance: Ensure forwarding complies with data protection regulations
- Access Control: Limit forwarding to authorized recipients only
- Audit Trail: Use Workflow Notes to log all forwarding actions
Email Retention¶
- Archiving: Consider BCC to archive mailbox for compliance
- Storage Duration: Original emails stored indefinitely in database
- Attachment Retention: Attachments stored in Azure Blob Storage
- Deletion: Manual deletion required if needed
Best Practices¶
- Minimize Recipients: Only forward to those who need access
- Use BCC Wisely: For monitoring without revealing watchers
- Document Routing: Maintain clear documentation of forwarding rules
- Regular Audits: Review forwarding patterns periodically
- Access Logs: Monitor who receives forwarded emails
Summary¶
Email Forwarder is an essential communication task for routing inbound emails through workflow logic. Key features:
- ✅ Preserves original email content and attachments
- ✅ Supports multiple recipients (To/Cc/Bcc)
- ✅ Works with workflow variables for dynamic routing
- ✅ Automatic attachment transfer
- ✅ Maintains email threading and reply-to
- ⚠️ Requires email_id from trigger tasks (Type 52/54)
- ⚠️ Cannot modify subject or body
- ⚠️ Sends from fixed address (info@basecloudglobal.com)
Perfect for support routing, lead distribution, document workflows, escalation chains, and multi-department communication. Combine with Key Match, Round Robin, and AI Prompt tasks for intelligent email routing automation.