One 'User' to rule them all #8963
-
Craft is a CMS, not a CRM. Or does that have to be the case? The purpose of many sites/apps is to build an audience, but the way Craft is architected splits that customer data across many channels. For a key client of mine, it's [Craft] Users, [Commerce] Customers, [Campaign] Contacts and [Freeform] submissions. And future plugins may be used which further splits the audience. While we've developed a custom module to TRY to combine these, it would be a huge benefit if there was a model that Craft and plugin developers could use that could somehow integrated all these together. From a client's point of view, they just want to see who how many 'customers' they have, and then perhaps link off to the relevant part of the CMS. And perhaps be indicated if they have an account (the 'real' User). I'm sure I'm not the first to desire this. And I respect the very clever people at Craft, who may already be thinking this (looking at you Craft 4). Just putting it out there. Cheers, Paul |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 4 replies
-
We’ve flirted with this idea a bit, as we’ve thought about how to unify Commerce customers and user accounts. |
Beta Was this translation helpful? Give feedback.
-
The tricky thing is that Commerce customers, Campaign contacts and Freeform submissions need to be able to exist regardless of whether or not they are connected to users. Are you imagining a base element type (person/profile/entity) that all of the above would be able to extend, Paul? Or simply a more native way of connecting them together? |
Beta Was this translation helpful? Give feedback.
-
What we have talked about, specifically, is decoupling users from authentication. So Commerce (or Campaign) could manage people in the centralized user list, regardless of whether they actually have an “account” (a means of authenticating themselves). |
Beta Was this translation helpful? Give feedback.
-
Brandon, that's exactly what I'm thinking... a centralised 'user' list of people, with indication of whether they have an account or not (vs a user being defined as having an account). Then being an account holder, or being a (Campaign) Contact, or a (Commerce) Customer is effectively a filter. I think it would help the Craft ecosystem, and make life much simpler for authors. Sorry for delay replying, didn't get notifications of your comments. |
Beta Was this translation helpful? Give feedback.
-
We’ve continued talking about it internally and this should be making it into Craft 4. It’ll pair nicely with some authentication improvements we want to make. |
Beta Was this translation helpful? Give feedback.
-
Not sure if this is the right place but we were recently looking at how to collect names for a plugin and arrived at giving the user ultimate freedom is probably the best route i.e a single name field. Reading this article among others was what lead to us using a single field https://shinesolutions.com/2018/01/08/falsehoods-programmers-believe-about-names-with-examples/. With Craft 4 introducing the concept of "inactive" users with the idea being that plugins that such as Freeform, Formie, Campaign etc make use of this to consolidate everything to one User I wonder if that Craft stricter way of handling names could become a little more problematic i.e first name and last name? People may have a prefix, suffix, middle name(s), no last name etc. There's then the problem of how this information is collected on the frontend i.e client preference and then how individual plugins choose to handle names, single or multiple field. Would it be beneficial for Craft switch to a single name field and then use a library for splitting names or provide some sort of way to normalise things? Their was a discussion on names here #9398. |
Beta Was this translation helpful? Give feedback.
We’ve continued talking about it internally and this should be making it into Craft 4. It’ll pair nicely with some authentication improvements we want to make.