Email Automation - Complete Summary¶
Three Separate Email Processors¶
1. Sales Order Processor¶
File: sales/services/salesorder_email_processor.py
Email: sales@company.com
Module: SALES
Creates: Draft Sales Orders
Task: sales.tasks.process_incoming_emails
Schedule: Every 5 minutes
2. Vendor Bill Processor¶
File: purchases/services/vendor_bill_processor.py
Email: billentry@company.com
Module: PURCHASE
Creates: Draft Vendor Bills (Invoice type='BILL')
Task: sales.tasks_email_extended.process_vendor_bill_emails
Schedule: Every 5 minutes
3. Expense Processor¶
File: accounts/services/expense_processor.py
Email: expclaim@company.com
Module: ACCOUNTS
Creates: Draft Expense Claims
Task: sales.tasks_email_extended.process_expense_emails
Schedule: Every 5 minutes
File Structure¶
backend/
├── sales/
│ ├── services/
│ │ └── salesorder_email_processor.py ← Renamed for consistency
│ ├── tasks.py ← Updated import
│ └── tasks_email_extended.py ← New tasks for bills/expenses
├── purchases/
│ └── services/
│ └── vendor_bill_processor.py ← New
└── accounts/
└── services/
└── expense_processor.py ← New
Celery Beat Schedule¶
CELERY_BEAT_SCHEDULE = {
# Sales Orders
'process-incoming-emails': {
'task': 'sales.tasks.process_incoming_emails',
'schedule': crontab(minute='*/5'),
},
# Vendor Bills
'process-vendor-bill-emails': {
'task': 'sales.tasks_email_extended.process_vendor_bill_emails',
'schedule': crontab(minute='*/5'),
},
# Expenses
'process-expense-emails': {
'task': 'sales.tasks_email_extended.process_expense_emails',
'schedule': crontab(minute='*/5'),
},
}
Configuration¶
All three email addresses are configured via: Admin → Company Profile → Email Configurations
- Sales Order Processing →
sales@company.com - Purchase Order Processing →
billentry@company.com - Accounts →
expclaim@company.com
Validation & Error Handling¶
All three processors: - ✅ Validate data completeness - ✅ Skip incomplete data with detailed error message - ✅ Log all attempts in EmailLog - ✅ Send notifications to managers - ✅ Move processed emails to "Processed" folder - ✅ Create drafts (require review/approval)
Total Email Automation Features¶
Inbound (3 features):¶
- Sales Orders from email attachments
- Vendor Bills from email attachments
- Expense Claims from email attachments
Outbound (5 features):¶
- Commission notes to salesmen
- Purchase orders to suppliers
- Stock alerts to managers
- Invoice due reminders
- Bill due reminders
Total: 8 automated email features