Not too long ago we have started the discussion for adding new functionality called "Email Event Subcriptions". We have discussed quite a few options there and come up some basic plan which I'd like to finalize in this discussion and finally create a new Feature Request for this.
- We need flexible way of subscribing users (and/or Emails) to different types of actions. For example I wish to subscribe to receive an email when:
- New TOPIC is added to the Forum Category (now TOPIC.ADD event triggered) so it's CATEGORY level subscription.
- New POST is added to the TOPIC (now POST.ADD event triggered) so it's TOPIC level subscription.
- New CATEGORY is added
- Category is modified
- ANY type of resource that we have Event changed
- It can be managed in Admin (grid) or Front (separate forms/events needs to be programmed)
- Emails should be send out to all Users (BCC) once that particular Event / Action is triggered.
NOTE: Recently we have refactored and improved Email Events interfaces and functionality which allows adding CC, BCC of all kinds, BUT it's missing ability to associate the Events with Items. This is something we are looking to have here.
Additionally we can allow subscribe Users which didn't Register, but just entered their email address. On the Front-end there might be additional logic added to verify your subscription so there is NO spamming to 3rd party emails.
Proposed table structure
- SubscriptionId (auto-increment)
- PortalUserId (from PortalUser table, default NULL)
- UserEmail (string default NULL, used in case if user subscribed without Registration - quite useful)
- EventId (from Events table)
- CategoryId (from Categories table, default NULL)
- ItemPrefix (default NULL)
- ItemId (default NULL)
- Status (int - Active, Disabled, Pending)
- ModifiedOn (int with DateTime Formatter)
I think we should have a separate section for this OR since all this is related to current Email Events we can create a new tab called Subscriptions. There we can show the grid of subscribers to that Event + ItemId and Prefix with opens to Add / Remove new ones.
One other thing is that we need to create a new Agent that will Clean things up when Items are removed (deleted) so we don't end up with gazillion unknown records.
Original discussion can be found here: Email Event Subcriptions