As your team works or will work on a Sidecar Email module I have some suggestions for improvement to Email processing:
- Allow admins to prioritize Email boxes for processing. We have some emails that are simply used internally for archiving communications and others that are used for direct communication with our customers (Cases). Currently email boxes are read in the order of their ID and some of the larger archiving mailboxes are preventing the timely processing of Case queues.
- Allow admins to set times during which mailboxes are read. Again this is trying to address the slow processing of emails and large archival-type mailboxes holding up time-sensitive emails. If I could, say, only process certain mailboxes at night, I might be able to better control the flow of emails. Mailboxes with upward of 40 emails cause real problems, potentially because of all the logic hooks I need to have to set some simple defaults (see next item).
- Allow developers to inject custom logic in the handleCreateCase. We have the need to set a number of custom fields based on information from the original email and the email queue. Doing so by logic hook is very slow and clunky and causes the logic hook to run, even if it ends up doing nothing, every time an email is saved or linked to a module (Case or not) rather than just on Case creation. In essence we need to be able to customize the function handleCreateCase in InboundEmails.php. Possibly also allow an injection point for emails coming in on an existing case though that is more easily handled in a relate logic hook on Cases.
- Allow an option of NOT assigning a Case. Our cases are very particular and certain individuals specialize on responding to inquiries about specific aspects of our software so we want cases to remain unassigned until a human assigns it. Creating an empty team to keep the case unassigned is not an option because then the Case will not be visible to anyone other than admin (no one is in the team and team security will prevent people from seeing it). Resetting to unassigned after creation causes problems with users being notified of bogus assignments. And having a restricted group of people who are assigned cases for reassignment is just not practical as people tend to 'take' unassigned cases.