I am restarting my developer newsletter, blog. What would you like to know how to do? Once, I have some content, I'll post how to subscribe.
I am restarting my developer newsletter, blog. What would you like to know how to do? Once, I have some content, I'll post how to subscribe.
I would like to have a way to prioritize the processing of inbound email.
I have about 20 different inbound-email records, each linked to a separate mailbox.
The scheduler always restarts in the same order, by ID of all things, and some really low-priority high-traffic queues happen to have an ID that puts them at the top of the list.
Sometimes this causes the scheduler to loop through the top 5 out of 20 (especially when bots start spamming us) restarting at the top every time again and again and not getting to the others in a timely fashion, which is not good for urgent cases (SLAs come into play) whose inbound email happened to get an ID that puts them at the bottom of the list.
My only solution right now is to make those low-priority lists inactive for the day, and then active at night... all manual work.
Should we be using email the way we do? Probably not. But even ignoring the poor business-model, it would be nice to be able to set priorities or have the scheduler continue from where it left off and not restart from the top.
Thanks!
FrancescaS
P.S. you asked for it ;)
Can you explain your use case for emails? We use Riva; have you looked into this or Sugar Connect?
Hi Jeff Bickart,
here are some topics that are intersting for me
Many thanks,
Fred
Frédéric Rinaldi great questions. I will do my best to address them. My thoughts
Hi Jeff Bickart,
I hope this help to understand my expectations.
Fred
This is probably an unusual scenario - so just keep it at the end of your list ;) I am sure there are much more useful things to address in your blog that would have a wider audience.
--- but here is the scenario:
We have:
info@ourdomain.com, which create cases assigned to CS USA team,
info-europe@ourdomain.com which get assigned to our CS Europe Team,
tech_support@ourdomain.com, for cases to our TS Team...
but also some internal email addresses that people bcc or forward to in order to log things against Sugar records that do not create cases, like interactions@ourdomain.com
(add a dozen more addresses to these examples and you have my setups).
All these are actual inbound_email records that map to mailboxes on our mail-server that Sugar reads.
When the Check Inbound Email scheduler runs it reads the mailboxes in order of ID:
001 interactions@
002 info-europe@
003 info@
004 tech_support@
interactions@... is the first being read by ID.
The scheduler reads that first and may take more than a minute or two to get through all the emails
(the emails are being processed to make sure that forwards are being logged with the correct to/from so that if I send a forward in interactions@ that is a message that was from you to me, it's logged that way and not as from me to interactions@ and parse for details to classify the messages and more)
So scheduler starts, reads 001 - interactions, does not get through all the emails
Next run starts, reads 001 - interactions again and continues... may no get through all the emails
...emails keep coming in to 001... scheduler starts from 001 every time and never gets to that urgent tech support 004 message that sits there for 20mins waiting to be read.
I have to set 001 to inactive so the scheduler gets to read what's been waiting in 002, 003, 004 and when things calm down (usually at night) I have to put 001 to active again so it can be processed.
But I have to keep an eye on the size of the inboxes in the mail server to know when to pause processing of 001.
In that example I want to prioritize 004-tech_support over 001-interactions without having to manipulate the ID of the inbound_email record to put it first in the list.
Does that example help?
Adding more products is not an option for us at this time.
Are there better ways of doing things, such as using a Case portal instead of email, sure. But that has not been an option on Pro and I have not had the bandwidth to create my own portal - yet.
Thanks,
Francesca
we have customizations which were made by a partner back when we first started Sugar in v6.0 (12 years ago) to allow for the M-M Account-Contact relationships and I've had several headaches related to the issues you mention.
We have had to not use some features like sales funnels and forecasts because of it, not to mention problems dealing with duplicates when people don't realize that person A is both at Account A (B2B) with their business email address and Account B (B2C) with their personal email address but are really the same person.
It also complicates record assignments and teams since SalesPerson1 deals in B2B and Sales Person 2 Deals in B2C and both are talking to the same customer...
I would say be very careful when modifying things like Account, Contacts and Addresses (back in 2010 we also added an Address Module to allow more than 2 addresses on an Account and to relate those addresses to different Contacts @ the account, like departments at a University)....
and that prevented us from using things like out of the box third party extensions for google maps and proximity reporting.
Rather than resorting to modifying the id of the inbox record have you looked at creating a custom version of the "pollMonitoredInboxes" function to use? The query that collects the inbox records to check currently does so without any ORDER BY. I would be investigating adding a new field to the InboundEmail module called Priority which is numeric and setting these to put the inboxes in priority order for reading. Then simply adding the relevant ORDER BY to the query that collects them in my custom function.
This might be overly simplistic for your issue and it is slightly upgrade unsafe in that you need to manually adjust for future "enhancements" to the function but might be worth looking at if you haven't already. It has the benefit that you can easily adjust the priorities of your list of inboxes in the UI as well (good luck in remembering how to adjust the Smarty templates that the bwc modules still use here!!!).
If you have looked at it already and ruled it out then I'd be interested to know as the above is just my ramblings on first thinking about your issue. I have not tried anything to see what would happen :)
Thanks,
JH.
Hi Francesca Shiekh,
we also went through the same issues. This is why I was curious about how other Sugar Users / Partners handle this case.
I also definitely agree that some of the core module (Contacts, Accounts and addresses fields) are really risky to customize...
Great idea!
I'd love a tutorial on making a custom listview dashlet.
I can easily add a listview dashlet for any single module (e.g. Accounts) to the home page, but I'd like to be able to make a custom listview dashlet that lists records from multiple modules in a single list (e.g. Tasks, Meetings, Calls, Emails). The list should look and behave just like the out-of-box listview dashlets do with pagination, filtering, sorting etc.
Is there a simple way of leveraging the existing listview dashlets for something like this? The potential solutions I've seen so far are to create custom module with custom API endpoints that actually return data from multiple modules or to replicate much of the out-of-box listview dashlet functionality in a custom dashlet.
Thanks!
Miska