ApexIntermediatebulkificationemailintegration
Bulkify Apex that processes EmailMessage and Attachment imports
Real World Scenario
Email-to-case creates 500 cases per hour. After-insert trigger on EmailMessage queries Case and Contact per message causing SOQL limit failures.
Expected Answer
• Collect CaseIds and ContactIds in Set; single query per object type
• Map results for O(1) lookup inside loop over Trigger.new
• Defer attachment processing to Queueable for ContentVersion creation
• Guard trigger: skip if EmailMessage count exceeds threshold enqueue batch
• Test with 200 EmailMessage inserts in single test method
• Integration bypass for forensic bulk email replay jobs
• Monitor EmailMessage trigger CPU during incident email floods
Follow-Up Questions & Answers
Click to expand — each follow-up includes a direct, interview-ready answer
Main difference: use case and scale. Collect CaseIds and ContactIds in Set; single query per object type. Map results for O(1) lookup inside loop over Trigger.new. Pick based on your integration pattern and team capability. Email floods are bulk events—email triggers need same bulk discipline as data loader paths. Balance speed of delivery with maintainability.
Architect Perspective
Email floods are bulk events—email triggers need same bulk discipline as data loader paths.