Subscription History Data



Every time a user's subscription status changes a row is added to core_subscriptionhistory.

The change_id indicates how the user's status changed. User's with a change_id of 3 for their most recent core_subscriptionhistory entry will have a core_user subscription status of "bounced". Users with 4,5 or 6 will have a core_user subscription status of unsubscribed.

There are a lot of reasons a user may become unmailable. For example, users can follow the link in a bulk email to an unsubscribe page and remove themselves from your list. Or their email may bounce in response to a confirmation email. Or maybe they called in and a staff member unsubscribed them manually.

The diagram below shows you how to interpret the information in the core_subscriptionhistory and core_action tables to learn more about how a user became unmailable.

First look for an action_id in the core_subscriptionhistory row. If there is one, join to the core_action table on action_id and look for a mailing_id. Look for the combination of change_id, action_id, and mailing_id in the diagram below.


Nothing is added to the core_subscriptionhistory table if I submit on an unsubscribe page and I'm already unsubscribed. For example, if I was subscribed and I mark an email as SPAM, a row is added but if I later follow the unsubscribe link in that email and submit on the unsubscribe page, no row is added. The action counts for your unsubscribe pages shown on the page dashboard include every action (whether or not the user was already unsubscribed).



change_id 3 and 6 usually have an action_id associated. The user didn't actually submit on an unsubscribe page if they bounced or marked your email as spam (change_ids 3 and 6, respectively), but we record an action in the core_action table so we can capture the id of the mailing that prompted the change. If there is no mailing_id, that means a thank you email (generated after the user took action on the page shown in core_action.page_id) prompted the change.

change_id 4 is used if the user submits on an unsubscribe page (in which case there is an action_id) or if you unsubscribe a user through the API (in which case there is no action recorded in the core_action table).

change_id 5 is used when you unsubscribe a user from the link on their individual user record. No action is recorded in the core_action table.

change_ids 3, 4, and 5 may all have been used in your initial import to unsubscribe users we brought over from your old system. No core_subscriptionhistory entries from the initial import will have an action_id.

Never Subscribed

It is possible to create a new user without adding a row to the core_subscriptionhistory table. If you import a file which includes new email address, but uncheck the box to subscribe users to a list through your import, any new users will have a subscription status of Never Subscribed and no row is added to core_subscriptionhistory.