We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 9102 ☆ A M B ☆
    • 318 Posts
    I’m just playing with ideas here, I don’t have a particular project going, but this Forrester analysis http://www.forrester.com/rb/Research/wave%26trade%3B_web_content_management_for_online_customer/q/id/58958/t/2 of the CMS market got me thinking...

    Of course, it’s Forrester, so they barely even mention open source and it’s full of corporate jargon and business-speak, but i think they’re actually on to something.

    Basically, they say that the future of CMS is expanding the functionality of "content management" into something they call "experience management." (Sounds a bit Orwellian, I know.) The idea is that CMS vendors are moving to integrate the functions of marketing automation (e.g. Eloqua, Marketo), customer relations management (CRM - Salesforce), analytics (GA, Overture), "rich media" (whatever that means, they mention Flash and AJAX), content customization and other functions, into a single application to manage all forms of interaction between businesses and customers.

    They think Adobe is in the lead on this.

    Anyway, it occurred to me that MODx, with its flexible extendable architecture, is probably much better positioned for this sort of thing than other open source CMS. I administer instances of Salesforce and Eloqua. It would take quite a bit of work to replicate all of the features of Eloqua or Salesforce, but I don’t think we would be too terribly challenged to set up the 20% or so of features that people actually for the most part use. Heck, probably a majority of the advanced features of Salesforce are only there to make up for the fact that it’s not open source -- they enable you to do things like workflow logic and extending the database without actually allowing you to code anything, this is not a problem for MODx.

    However, I’m having trouble wrapping my head around what would probably be the first step, which would be setting MODx up to function as a contact database.

    Would you do it by extending modUser?

    Contacts are a different sort of thing than users, though. They need to be identified, not authenticated. They might not ever even visit your website - you might just interact with them by phone or email. You need to store lots of data about them, though, including a record of every interaction you’ve ever had with them. And you want to be able to convert them into authenticated users if they do create an account on your site without losing their data record.

    I keep thinking there’s probably an easy way to do this but I’m having trouble putting my finger on it. Would you just use the users table as-is, and use attributes to store your extra data as JSON? What do you do about authentication? When I make a new user in MODx, it generates a password -- but you want to be able to log contacts in to the web context without any registration required from them, that is, by identifying them just by a cookie or by email address or even by IP, or by API calls to an external system.

    Any ideas on this? I think it would be an interesting direction to explore and really help to distinguish MODx from other open source CMS from a business perspective (i.e. make it easier to convince your boss to use it).
      • 9207 ☆ A M B ☆
      • 2,475 Posts
      Interesting ideas... I’ve built a couple applications in Revo that had extended User information. The way I did it was to create a completely separate database table that contained a foreign key relationship back to the MODx users table. That way, I was able to customize all the User data the way I wanted to do it and I let MODx do the stuff that it does best (i.e. handling all the bulit-in User management functions like resetting passwords and profiles).
        • 9102 ☆ A M B ☆
        • 318 Posts
        Yeah, Everett, that makes sense as a way to store the extra data. Actually you’d probably want to do it like TVs and have two tables, so you can easily create more custom fields for contacts. And you’d want another table for activities, and another for accounts, and you’d have to figure out how you want them to relate to each other. I would lean toward mimicking the data structure of Salesforce as closely as possible, to make integration and data import easier.

        But what to do about authentication, or rather the lack thereof? You want to deliver customized content to your users if they can be identified (for example with a cookie), so it would seem to make sense to log them in to the web context and put them into groups according to their demographic properties (a group for contacts from each state, for example, for state-specific legal content). Then you could show different content to each group in a fairly straightforward way.

        But how can you authenticate a user without them actually giving a password?
          • 9207 ☆ A M B ☆
          • 2,475 Posts
          You could implement OpenID to authenticate in the web context; but to test your permissions it might be easier to setup a standard username/password just to ensure that your User Groups and Resource Groups are set up correctly.
            • 25663 MODX Staff
            • 12,272 Posts
            The Forrester Wave for CXN is indeed really good, and we’re paying a lot of attention to it at MODX. wink
              Ryan Thrash, MODX Co-Founder
              Follow me on Twitter at @rthrash or catch my occasional unofficial thoughts at thrash.me
              • 9102 ☆ A M B ☆
              • 318 Posts
              we’re paying a lot of attention to it at MODX
              Yeah, I figured that would be on your radar, Ryan. wink

              You could implement OpenID to authenticate in the web context
              No, I’m sorry if I’m not being clear; I don’t want to authenticate them. I want to track them.

              From a marketing perspective, I want to be Big Brother. If you’re on my site, I want to know who you are, where you are, what you’re doing, where you came from, who you work for and in what role, and if at all possible what you’re thinking - and I want to know as much of that as possible whether or not I actually know your name or email, and I want it all recorded in such a way that if I ever find out who you are, I know the entire history of the interaction from the moment you first landed on my site.

              Marketing automation systems like Eloqua accomplish this via a tracking cookie. They put a bit of JS on your site which gives everyone a cookie. That cookie is associated with a database record even for anonymous visitors - the system records their IP and referral string and all the pages they view. If they subsequently fill out a form and leave their name and email, the record associated with their cookie is now associated with their record in the contact database. You can also use JS to do a lookup at any time, by cookie or email or any other unique identifier, to pull whatever data you have on them from the database and use that to customize their content. So for example even if all I know about you is that you’re in California (via geolocation of your IP), I can still use that to show you information specifically about California state laws - and later, when you come back, I can show you new information that I know you haven’t seen before, because I know what you saw last time.

              If you want to integrate marketing automation into MODx (which I’m suggesting is probably a good idea, I’m thinking about doing it myself at some point), you need to have similarly Orwellian tracking capabilities.

              All of this has to be accomplished without the visitor necessarily being aware of it. The best way I can think of to do that in MODx is to log them in to the web context without asking for a password -- just log them in using their cookie. Then you can store whatever info you have on them in your database using custom tables as you said, and you can customize their content as much as you want.

              BTW, if you’re not familiar with marketing automation - yes, I know, it’s really evil. Or at least, potentially evil, it depends on how you use it. But that’s how it’s done, it’s how most major corporate websites are doing it right now. Have a look at your cookies some time.
                • 3749
                • 24,544 Posts
                I can’t help but think Google is hard at work on this right now. If you look at Google Goggles, you can see that it will change the world as we know it. You point your phone at something and Google tells you all about it. I pointed my phone at a box of granola bars and Google offered me the ingredients, RDA info, prices at nearby stores and by mail order, history of the product, and coupons. Mind you, I didn’t point it at the UPC code, which is also an option -- Google recognized the art on the box.

                It’s not very smart yet about recognizing other objects, but that will come. Integrating Goggles with "experience management" won’t be that big a step, since the features are so seductive and Google already knows who I am, where I am, where I’ve been, what I’m interested in, and can easily infer a crapload of other information about me. Tie that to the Amazon suggestions heuristic and you’ve got an app that can rule the world.
                  Did I help you? Buy me a beer
                  Get my Book: MODX:The Official Guide
                  MODX info for everyone: http://bobsguides.com/modx.html
                  My MODX Extras
                  Bob's Guides is now hosted at A2 MODX Hosting
                  • 28042 ☆ A M B ☆
                  • 24,524 Posts
                  This will be an interesting development in the kind of places that will throw you out and have you arrested for trespass if you’re there with flyers from other stores to compare prices and features. Will they begin blocking wireless signals inside their store?
                    Studying MODX in the desert - http://sottwell.com
                    Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
                    Join the Slack Community - http://modx.org
                    • 26931
                    • 2,314 Posts
                    I pointed my phone at a box of granola bars and Google offered me the ingredients, RDA info, prices at nearby stores and by mail order, history of the product, and coupons. Mind you, I didn’t point it at the UPC code, which is also an option -- Google recognized the art on the box.
                    shocked seriously, that works??
                      • 25663 MODX Staff
                      • 12,272 Posts
                      Tracking users in Europe is going to be a lot more sticky in the very near future from a privacy perspective (already is now really). Look into the European Cookie Laws—I’m no expert but it is a big concern. In essence, you have to tell users explicitly what cookies are set and for what purposes, and visitors have to opt-in to allowing you to track them. This also applies to things as straightforward and standard as Google Analytics. For things that are necessary for site functionality, like shopping cart cookies, those are exempted from the cookie disclosure rules.

                      http://www.silktide.com/cookielaw (and I’m sure you can Google for much better overviews)
                        Ryan Thrash, MODX Co-Founder
                        Follow me on Twitter at @rthrash or catch my occasional unofficial thoughts at thrash.me