Accounts & Contacts with a Staging + Production server -- should these records sync from staging to

Jason S asked on December 1, 2015 02:16

With 8.2 in an environment with a Staging server and production servers, is it expected behavior that data in the Contact Management (e.g., accounts, contacts, etc.) will not sync from staging to production?

When managing records in this area on the staging server in prep for setting up email marketing campaigns, new/modified/deleted records are not logging any sync tasks. I haven't yet found a definitive answer in the documentation whether this data is supported by the staging module or not.

Thanks!

Jason

Recent Answers


Roman Hutnyk answered on December 1, 2015 04:36 (last edited on December 1, 2015 04:37)

Jason,

I'm not sure whether this is expected behavior or not, but I definitely know, that you can disable staging for any object. This is how you can disable staging for UserInfo:

[LogChangeHandlers]
public partial class CMSModuleLoader
{
    private class LogChangeHandlers : CMSLoaderAttribute
    {
        public override void Init()
        {
            UserInfo.TYPEINFO.Events.LogChange.Before += GenerigCancelChange_Before;
        }
        void GenerigCancelChange_Before(object sender, LogObjectChangeEventArgs e)
        {
            e.Using(new CMSActionContext()
            {
                LogSynchronization = false,
                LogIntegration = false
            }
            );
        }
    }
}
0 votesVote for this answer Mark as a Correct answer

Brenden Kehren answered on December 1, 2015 05:17

The documentation states accounts and contacts are not staged. If you want to move them from production to staging (not a good idea really to have all that sensitive data in 2 places) you'd have to use the import toolkit or run some SQL process.

0 votesVote for this answer Mark as a Correct answer

Jason S answered on December 1, 2015 14:04

Hey, Brenden,

Thanks for weighing in and pointing out what I had missed in that documentation page. I appreciate that.

From a security perspective, staging and production are treated equally, so my concern for the duplicate Account and Contact storage isn't as much about security in this instance as it is about the the principle of not having to maintain the same data in two or more places via a manual process.

I'm curious what Kentico's expected operating model is for Contact Management (Contacts, Contact Groups, Accounts, etc.) and Email Marketing in a staging + production configuration. Kentico's stated preferred container for subscribers for email campaigns seems to be Contacts and Contact Groups, but these do not sync. Email Campaigns and Email Templates do sync from staging to production. If you create an Email Campaign in staging, but do not have the Contacts and Contact Groups in staging, you would not be able to set Contacts or Contact Groups as recipients. This leads me to believe that either (a) Kentico intends for you to manually maintain Contact and Contact Group data in staging and production, or (b) Kentico intends for you to perform all Email Marketing activities on the production server only.

Two other thoughts come to mind:

1) Perhaps they intend you to perform all Email Marketing creation on staging, then sync it to production, and then perform scheduling directly on production.

2) Bi-directional sync'ing might also be a more complex way of handling a option B above where you create the Email Marketing campaigns on production and then sync them back to staging

I'm curious to hear what Kentico's ideal workflow is for email marketing with EMS in a staging + production configuration.

Thanks!

Jason

0 votesVote for this answer Mark as a Correct answer

Brenden Kehren answered on December 1, 2015 15:51

In any case, having 2 sets of any king of personally identifiable data (PID) is a huge security concern. In fact, if you were to have a PCI auditor come in, they'd specifically ask you if you do store any PID info on your non-production environments and if so, why. PCI rules specifically state to not have this info or obscure it in all environments except your live environment.

You might email them directly then to get their perspective. At any rate it isn't supported in v7, v8 or v9, not 100% sure why but it's not. You should still be able to accomplish your tasks in creating new groups and segments in staging and moving them across.

1 votesVote for this answer Mark as a Correct answer

Jason S answered on December 1, 2015 16:11

Brenden,

Thanks again for the input. If you're using your staging environment as a testing environment and do not exercise the same security protocols as your production environment, then I agree with your assertions.

For the sake of clarity, I'm advocating treating your staging environment as a production environment from a security perspective (assuming you're using it as a true staging environment and not a just a testing environment). Your staging server(s) should exist in a production level environment with the same configuration and protection you apply to production. Staging, in this scenario, would be no different than a DR environment in terms of containing a necessary and adequately protected copy of whatever data is necessary to support your operations. It seems like Kentico EMS is not designed to support this type of data in staging though, at least for syncing purposes, so therefore maintaining the data in staging would serve no purpose.

I have emailed Kentico to get their view on how they intended for this to work in EMS and I will post their response when I get it, if they don't weigh in directly here. Based on testing so far, it would seem that if you're using Contacts and Contact groups for email marketing then you should perform all activities directly on the production server.

Brenden (and any others using a EMS + staging + production), is this how you handle email marketing in these scenarios (i.e., performing all campaign creation/managing/scheduling directly on production)?

Thanks for your time and input, Brenden!

Jason

0 votesVote for this answer Mark as a Correct answer

Brian McKeiver answered on December 2, 2015 04:13

Hi Jason,

My team and I have multiple clients who use EMS + staging + production. Your last post plus Brenden's answers pretty much summarize how we handle it. The creation of the email marketing assets (landing pages, email templates, images in the Media Library, etc etc) all happen in a staging environment. That staging environment is treated as if were a production site. When ready, a content admin will perform content staging on those email marketing assets to move them to production. Then in production they will handle which contacts, subscribers, or contact groups the email will be sent to in production. That way the activity tracking, email marketing analytics, and unsubscribes all still stay working.

Also some of the largest clients we have choose to integrate with a third party solution to do the actual sending (when the volume of emails is very high).

Hope that helps,

Brian

1 votesVote for this answer Mark as a Correct answer

Jason S answered on December 2, 2015 17:13

Brian,

Thank you for sharing your experience. I understand what you're saying about using third-party tools. In this particular case I'm doing the opposite and migrating campaigns & lists currently managed through MailChimp & Campaign Monitor into Kentico EMS. The road has been a bit bumpy, but understanding Kentico's design intent in this staging + production scenario helps to explain some of the bumps.

Much obliged to those who have taken time to answer my questions and share insights!

Jason

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.