-
-
Notifications
You must be signed in to change notification settings - Fork 105
Description
Hello 👋🏻
From my PoV there's a big technical debt in this module, with many features overlapping with the standard. So, perhaps it's a good idea to discuss and come up with a clearer roadmap.
From what I can see, this module contains the following features.
I put my analysis on each, but this is just to open the discussion. I'm biased because I really only care about the event tracking feature -- all the rest is not useful to me.
1. Track email events (⭐ main feature)
Adds the “To:” section to every email in the chatter.
The status icon quickly shows whether the email has been sent, received, opened bounced, or failed.
Clicking on the name/icon, it expands the tracking model to show all tracking events related to this email, for that recipient.
The captured event shows how many times the email was opened, at what time, and from which IPs.
Odoo core alternative
❌ -- Nothing like this
Although events related to sending failure and bounces are also captured by Odoo.
So perhaps this module should only track user events.
Thoughts
- Keep, but focused on user events
2. Add the Failed Messages section in chatter
A new section above the thread messages to quickly spot any failed messages.
From there, users can:
- Set as Reviewed (ignore this alert)
- Retry (re-send)
- Go to the message (to see it)
Odoo core alternative
There’s no section like this, but failed messages have a red envelope.
This red envelope helps identifying messages that haven’t been delivered and can be clicked to show a popup that let users:
- Re-send the email
- Ignore the exception
Thoughts
- ❌ Drop this feature. Overlaps with core.
- Alternatively, move to a separate
mail_chatter_failed_messagesmodule, basing the computation on top of the core features instead ofmail_tracking. ❓
3. Failed messages mail box in Discuss App
Adds a “Failed” mailbox to quickly see all failed outgoing emails send by the current user.
Odoo core alternative
❌ -- Nothing like this
Thoughts
- ❌ Drop feature
- Alternatively, refactor to compute on top of the core
mail.notificationmodel and move to a separate module (e.g:mail_failed_mailbox) ❓
4. Failed messages filter
To every model having a chatter, it adds a “Failed sent messages” filter to easily spot records with unmanaged failed messaged.
Odoo core alternative
Odoo will create a notification for the Email Failure, directly from the discuss app.
The notification can then be handled by the user
Thoughts
- ❌ Drop feature
- Alternatively, refactor to compute on top of the core
mail.notificationmodel and move to a separate module (e.g:mail_failed_filter) ❓
5. Email Score and Email Bounced fields
In the res.partner model, there are two new fields used to analyze a partner’s email deliverability.
The score is computed by aggregating the email tracking events data.
Odoo core alternative
Odoo does things differently, perhaps smarter, and invisibly.
Every partner has a message_bounce (Integer) field, which tracks the number of bounced emails.
This counter is reset when an email is successfully delivered, or when an email is received from this address. Meaning, it actually tracks the number of bounced emails in a row.
When an email is sent from a thread to a partner who’s emails have bounced more than 5 times in a row (BLACKLIST_MAX_BOUNCED_LIMIT), then it automatically blacklists this email to not send any more mails to them.
Blacklisted emails show with a prohibited icon (🚫) in the partner form, with a tooltip: “This email has been automatically added in blocklist because of too much bounced”
Thoughts
- Not clear. From my POV this is not useful.
6. Email bounced contact’s filter
There’s an “Email Bounced” res.partner filter that shows partners whose email address have been used to try to send an email that finally bounced. Meant to help identify mistakes in the partner’s email addresses.
Odoo core alternative
There’s no pre-defined filter, but it’s possible to search on the fields message_bounce (number of bounced emails in a row, 0 if the last email succeeded).
There’s also the is_blacklisted field, which could be used in combination to know if the email has been blacklisted due to bounced emails.
Thoughts
- ❌ Drop feature
- Alternatively, refactor to use the core fields and move to a separate module (e.g:
mail_bounced_filter) ❓