Google Doc
You might find the Google Doc for this meeting (from which the notes are copied) to be easier to consume and to include additional detail (e.g. comments) not present in this issue. If this meeting hasn't happened yet, find and add to the agenda in that doc anytime before the meeting.
Member Platform Meeting
June 19, 2025 at 10:00am CDT
Meeting Notifications, Agendas, Past Notes, Slack Channel
See [Meta] Member Platform meetings
Who is here?
Include your Drupal.org username in parentheses if you have one.
- JD Leonard (jdleonard)
- Steve (Bluegeek9)
- Paul McKibben (paulmckibben)
- Barbara Errickson (barbaraec)
- Martin Anderson-Clutz (mandclu)
- Bhavin Joshi (beautifulmind)
- Luke McCormick (cellear)
- James Shields (lostcarpark)
- Bob Snodgrass (bsnodgrass)
- Lee Walker (mr_scumbag)
What Topics Should We Discuss? / Limited Human Notes
- Recording
- Quick introductions
- Name field options: Preferred name and Alternative name
- Reaching out to other CRM projects: CRM Core
- Which is more important: membership or bulk mailing/emailing?
- Pros and Cons of locking fields:
- + Not Deleteable
- - Not Editable
- What goes in CRM vs. Member Platform
- (in optional flex time immediately following meeting)
- Functional requirement refinement
- Documentation
Action Items
- Clarify "preferred names" nomenclature
- How are individuals identified by CRM? (tentatively: alias maps to id)
- How does MP extend this?
- What options are available to implementers to further customize it?
- Requirements & Specs in a "shareable" format
- Ensure the back-end implementation of name-related fields in CRM provides enough flexibility for member platform implementers to customize as needed (Luke)
Fathom AI Summary
VIEW RECORDING - 119 mins (No highlights)
Meeting Purpose
Key Takeaways
- The team decided to implement "aliases" as a multi-value field for contacts, applicable to both people and organizations, replacing the concept of "alternative name"
- Email communication capabilities were prioritized over detailed membership tracking for initial development phases
- The group explored the potential for integrating with the Groups module to allow adding contacts to groups
- Significant discussion was held around the concept of tracking multiple locations for contacts and how to associate contact details with specific locations
- The scope and philosophy of the CRM project versus more opinionated implementations built on top of it were debated
Topics
Contact Naming Fields
- The team decided to implement "aliases" as a multi-value field instead of "alternative name"
- This field will apply to both person and organization contact types
- The preferred name field will remain as-is
- There was discussion about potential DEI (Diversity, Equity, and Inclusion) considerations for naming fields, such as using "chosen name" instead of "preferred name"
- Steve mentioned feeling clever about the implementation of the CRM relationship contacts field, which uses a single field for storage but appears as two separate fields in the UI
Communication vs Membership Priority
- The team agreed that communication capabilities, especially email, are more important for the initial release than detailed membership tracking
- Steve mentioned the possibility of future implementations for bulk mailing and email campaign features
- The group discussed the need for a general system for sending communications to contacts that is not specific to just emails and could take into account contacts' preferences for how they are contacted
CRM Core Functionality
- There was significant debate about the scope of the CRM 1.0 release and what should be considered core functionality
- The team discussed the potential for a more opinionated "CRM starter" project built on top of the core CRM module
- Steve suggested implementing a basic CRM dashboard at /crm as part of core functionality, providing a way to manage CRM data without full administrative access
- JD raised concerns about a potential "identity crisis" for the CRM project, questioning whether it should focus solely on data models and building blocks or provide more opinionated functionality
Field Locking and Customization
- The group discussed the pros and cons of locking core fields (e.g., name, address) to prevent deletion
- They considered allowing field editing but preventing deletion as a middle ground
- The team agreed to leave fields locked for now and revisit if use cases arise requiring unlocking
- Steve mentioned that for some fields, like aliases, they plan to configure them so that even if deleted from all bundles, they remain available under "reuse fields"
Groups Integration
- Steve proposed adding integration with the Groups module to allow adding contacts to groups
- This would be implemented as plugins with Groups as a dev dependency
- JD expressed interest but suggested prioritizing documentation work first
Location Tracking
- The team explored the concept of tracking multiple locations for contacts (e.g., an organization with multiple offices)
- They discussed challenges of associating contact details (phone, email) with specific locations
- The group considered whether to implement this as a separate entity type or build on the existing address field
- JD suggested that this concept should be tackled soon, even if the decision is not to implement it, to avoid future complications
Additional Fields
- The team discussed criteria for adding new fields to core CRM (e.g., birthday, custom date fields)
- They considered the balance between providing commonly needed fields and keeping the core module flexible
- Specific fields discussed included birthday fields that allow partial dates (day and month without year) and the challenges with using existing date field types for this purpose
- The group also touched on the potential need for more complex date handling, referencing a Drupal episode about archivists using vague date formats
Next Steps
- JD will work on documentation updates and getting the documentation to build correctly
- The team will review and decide on the implementation of the location tracking concept
- An audit of potential core fields to include in the CRM 1.0 release will be conducted
- Steve will implement the Groups integration, though this is a lower priority than documentation work
- The team will continue discussions on the scope and philosophy of the CRM project versus more opinionated implementations
- JD will ponder the location tracking concept to see if he can come up with any "brilliance" on the subject
- The group will revisit the decision about locking fields when it becomes more relevant or if specific use cases arise
Action Items
- Update controller to reveal notes field, update tab text with counter - WATCH (5 secs)
- Implement group integration for CRM contacts (3 files, add group module as dev dependency) - WATCH (5 secs)
- Attempt to get documentation to build, focusing on 'pages' job naming/inheritance - WATCH (5 secs)
- Update CRM documentation: correct blatant errors, create follow-up issues for further updates - WATCH (5 secs)
- Update relationships for more granular access control on contacts - WATCH (5 secs)
Fathom AI Transcript
VIEW RECORDING - 119 mins (No highlights)
@0:02 - JD Leonard (modernbizconsulting.com)
All right. Good morning, everyone.
@0:05 - Barbara’s iPhone 16 Pro Max
Good morning.
@0:06 - JD Leonard (modernbizconsulting.com)
So let's kick it off.
@0:08 - Luke McCormick
back.
@0:08 - JD Leonard (modernbizconsulting.com)
Thank you. Thank you. Let's kick it off with some quick introductions. I'm going to tag you, and you can say hello, and then tag someone else to carry on.
Why don't we start with Lee?
@0:27 - Lee Walker
What's going on? Oh, there we go. Hi, I'm Lee Walker. I'm a Drupal guy out of Chattanooga, Tennessee. I'm actually interested in the member platform for things for the Boy Scouts.
And let's do Paul, shall we?
@0:46 - Paul McKibben
Sure. I'm Paul McKibben. My interest is using the member platform for the Atlanta Drupal user group. I'm going to be primarily lurking today.
I'm still kind of deep in the weeds on other things and hoping to pull myself out. And get more involved in the near future.
Let me tag Luke.
@1:06 - Luke McCormick
Luke McCormick, Cell Ear, coming to you from Northern California, taking today, Juneteenth, off from paying work and doing things like this and trying to hide in the background because I had promised I would add personas to our user stories, and I didn't.
So I, you know, we'll just kind of shrink back like Homer into the bushes and tag Stephen.
@1:34 - steven.ayers
I'm Steve. I'm the maintainer of the CRM project. I think most of us has met before. I'm going to go ahead and tag Bob.
@1:45 - Bob Snodgrass
Hi, Bob Snodgrass from St. Charles, Illinois, Net2 community. Just walked in the door here, so I'm still standing up and walking around.
But I'm here.
@1:59 - JD Leonard (modernbizconsulting.com)
Bob, will you pass it? All right.
@2:03 - Martin Anderson-Clutz
Hi, everyone. Martin Anderson-Clutz, senior solutions engineer at Acquia, ManClue in the Drupal community, and I'm interested in the member platform for the recently rebooted London, Ontario Drupal users group meetup, as well as potentially for helping to organize the various people working on the event platform.
So with that, I will hand it off to James.
@2:26 - James Shields
James. Hi, I'm James in Ireland. I'm interested in member platform for the mentoring group and various other organizations I'm involved with, including Lego and science fiction.
So I have lots of interest. James. And I'm not entirely sure who's already gone.
@2:56 - JD Leonard (modernbizconsulting.com)
I think Bhavin?
@3:00 - Bhavin Joshi
Hi, everyone. My name is Bhavin Joshi. I'm interested in member platform because I have a few use cases where we have been maintaining and supporting non-profit organization websites for quite some time.
And they can make use of this member platform for their routine tasks and manage members of the organizations. They have subscriptions, and they offer different type of privileges based on the subscriptions.
So I'm very interested in this platform.
@3:34 - JD Leonard (modernbizconsulting.com)
Very good. And I think that leaves me. I'm JD Leonard. I am a freelance Drupal architect and developer, and here to help some membership organizations.
So with that, Steve, can I turn it over to you to walk through some of the items you added to the agenda?
@3:54 - steven.ayers
Oh, I guess. mean, that seems fair.
@3:59 - JD Leonard (modernbizconsulting.com)
Do it again.
@4:00 - steven.ayers
Let me find...there's the tab. I am looking for the agenda. All right. So we've got some questions about how to use the name modules, preferred name, and alternative name.
So some of you may or may not know that JD is just an abbreviation. It's not his actual name.
You may also not know that he was in the Mafia, and when he was in the Mafia, they called him Clamps.
So it seems like preferred name would be like JD, because that's what he prefers to be called. It could possibly be done with a different name formatter, because the name module can just abbreviate all the letters, all the words in your first name or something like that.
But maybe he wants to be called JD. Maybe It has nothing to do with his first name. I don't know.
But, right, like, an alternative name seems more like an alias, like Clamps. So I guess what I'm really asking is, do we want the alternative name to be a single field, or do we want it to be like an alias where you can have multiples?
Like, also known as...
@5:29 - JD Leonard (modernbizconsulting.com)
And maybe, Steve, would it be helpful to just give folks an overview of what the name module actually provides and the context for where we would be adding additional fields?
@5:42 - steven.ayers
I guess that also probably makes sense, right? So we've got the person contact, right? And so we could add a separate single alternative name to just the person contact, though alias seems like that would also work for an organization, right?
The Mormons are... Or an alias, they're the Church of Latter-day Saints or something like that, or maybe it's the other way around.
I don't remember. But it doesn't really seem like households would have an alias, or at least that would seem weird.
So I don't think it would necessarily need to be a base field. But, so there are some options inside the name field to configure defaults and how they would appear that in the format, when the name's formatted.
@6:30 - JD Leonard (modernbizconsulting.com)
And so the name module provides a number of subfields, right? It's got, you know, title and first name and middle name and last name and credentials and suffixes and, you know, things like that, right?
But it doesn't have a field, it doesn't provide a field for a nickname or an alias, but it does provide a concept of a preferred nickname and a concept of an alternative name.
And you can tell the field module for This field instance, I want this field that I have created, right, over here, to represent the preferred name, and this field over here to represent the alternative name.
So that's kind of the context for this dependency, one of the very few dependencies CRM has, right? And what it provides, and then what we're talking about is, hey, should we provide these preferred name, alternative name, or alias fields?
Yeah, so I just wanted to provide that context.
@7:29 - Luke McCormick
It seems like it's important to, I mean, from the perspective of member organization versus CRM, we need a thing to call the person.
We need a primary key. And it seems like the user, you know, would be fine to have them specify what that is.
But, you know, when you're talking aliases, it... I hear multiple, so I'm just worried about having, like, okay, what's the main one?
What's the one that we have to keep track of when we're dealing with in other contexts?
@8:10 - steven.ayers
Well, so the name module does give you the abilities of separators, so like, you know, JD Leonard, a.k.a.
@8:19 - Luke McCormick
Clamps, a.k.a.
@8:20 - steven.ayers
The Clamps, the Clamps of Texas, right? I mean, he's also known as Tater Salad, but that's a different story, right?
@8:32 - Luke McCormick
So, like, you could do that.
@8:34 - steven.ayers
I'm sorry, JD.
@8:36 - JD Leonard (modernbizconsulting.com)
You're good. Steve, I missed it. The separator is for separator between aliases.
@8:41 - steven.ayers
That's like aliases is a concept that the name module has? Well, no, no. So alternative name has the ability to – when you specify the alternative name, if it is a multivalue field, you can then specify a separator to use when it formates.
Got it. So, you can So you could, you, basically it's a question of should the alternative name be a singular field, right, or can it be a list of aliases?
And I suppose you could have all three of them, but it doesn't. And then ask the question, what's the difference between an alternative name and an alias name, or aliases, right?
And so I don't know if anyone had strong opinions on that or not.
@9:34 - Bhavin Joshi
More flexibility we give them to the user, more complex it will become. So whether name models supports these features or not, ultimately we have to manage it somehow at the back end.
@9:49 - steven.ayers
Yeah, I agree. One of the items down the list is the pros and cons of locking fields. And since the name field is locked, that's...
The name field has the settings in it for what the default, alternative, and preferred name is, so I don't know if we really want to skip ahead to pros and cons of locking fields or not, but we don't really want the users to be able to delete the field, and I don't know if we'd really want them to be adding it to another bundle, though I'm less concerned about that.
Right? But in addition to not being able to do that, when you lock it, you can't just programmatically update it.
It looks like you also have to unlock it, too. Maybe I'm wrong on that, but...
@10:38 - Luke McCormick
Could you clarify which is the primary key for identifying an individual?
@10:47 - steven.ayers
Me?
@10:48 - Luke McCormick
Yeah.
@10:49 - steven.ayers
Okay. Well, contacts have an ID field, so, right, that would probably be the primary key we'd be using. Right?
It's not...
@10:59 - JD Leonard (modernbizconsulting.com)
That's your number.
@11:00 - Luke McCormick
So it's in America. In terms of, you know, an individual wanting to, you know, affect their own world, will they need to know their number, or is there, you know, a human-readable name that they can rely on?
@11:15 - steven.ayers
So this leads into another sort of question. There's sort of two separate things going on here. There's a username and a contact name, right?
So in Drupal, there's account get display name. And so if you have a link between your user account and your contact, there's an option in the settings to use the contact's name as the user's name.
Though we have an item out there in the backlog to allow users to customize how that name would be formatted.
@11:50 - Luke McCormick
I mean, the people in our thing won't always, in fact, in some cases, you know, most of them won't have, like, logins to the thing.
They're being tracked by their individuality.
@12:04 - JD Leonard (modernbizconsulting.com)
So a lot of – go ahead, Luke.
@12:08 - Luke McCormick
Oh, well, dude, just, you know, I mean, here we are. We all gave our D.O. names when we signed in.
So that's like a good example of a primary key that, you know, Drupal uses to keep tabs on us.
I'm thinking we need something like that.
@12:25 - steven.ayers
I mean, the username does tie back to a numeric ID, right, to your user ID. They're just, you know, the username is also unique.
I don't know if you can really do necessarily the same thing with contacts just because there could be multiple John Does.
@12:44 - JD Leonard (modernbizconsulting.com)
Or maybe I should have said John Smith, but – Multiple JDs. Okay, so a lot of this ties into an overall theme, which is also a later bullet point.
What goes in CRM versus member platform and just sort of like – How do they fit together and how do the needs of member platform that differ from the needs of CRM kind of all fit together?
And so I thought maybe I would share philosophically, right, and everyone jump in if I say something you kind of don't like or disagree with.
But I think CRM, and Steve especially jumping here, I think CRM is seeking to provide the most flexible, sensible data model to support different opinionated implementations on top of CRM.
And I think member platform, go ahead.
@13:39 - steven.ayers
That's a very polite way of saying I don't want your dependencies.
@13:45 - JD Leonard (modernbizconsulting.com)
It is. And so I think member platform, right, is going to have more specific requirements that are going to include adding some things on top of CRM.
It's going to include hiding some things that are in CRM. You know, et cetera, et cetera. So when we're talking about these different name fields and stuff like that, right, there's sort of two pieces to it.
I think the first one is, in the general case of different opinionated, you know, implementations on top of CRM, what do they need to support their requirements, which, of course, we don't have written out, right?
So how can we do our best to make it sufficiently extensible? And then separate from that, to Bobbin's point, how do we simplify it, right, for member platforms use case, and possibly also for other CRM use cases, right, to hide the complexity and just make it easy to use?
So back to our questions around the preferred name and alternative name. Does anybody want to add something with that context?
@14:53 - Bhavin Joshi
James? go ahead.
@14:57 - James Shields
Just one thing to add. So one of the many things I'm interested in for is science fiction conventions, and people get very, very particular about having the right badge name for their convention membership, so that's one aspect that I would like to be able to support.
But one thing I would like to consider the possibility of is people who want different badge names or aliases, it's quite possible that people will be in, you know, we have a concept of organizations, and that people could be in several organizations on the same site, and they might want different badge names or aliases on different organizations.
So that's something I would like us to have kind of in the, maybe in the nice to have list, but some of these have considered.
@16:05 - Bhavin Joshi
Yeah, would like to add some thoughts about the identification of contact as well as how we display the additional properties of the users of the contact.
Drupal offers the form display options so we can add as many files as we want for the contact and provide an easy to use interface where the user of the CRM or the platform can just drag and drop or disable those additional fields and this way those fields will appear on the contact as well as the organization or all the bundles we are talking about.
As long as the identifying the contact I believe that is bundled other than the users because those contacts won't be Drupal users and that's why there won't be any user ID.
The user, they are only users who are either the administration or the moderators. So this is what I think about how we handle this, how we should handle this.
@17:14 - JD Leonard (modernbizconsulting.com)
I think it is helpful to almost postpone any discussion around an actual user logging in, right, and what they are, an end user who is a contact, right, logging in, and how they manage their name, because that sort of flows, I think, from whatever decisions are made around what fields exist on the contact and what's available to them.
But maybe we'll have to loop that back in. Luke?
@17:39 - Luke McCormick
Yeah, I wanted to acknowledge that, JD, you answered my question there that I brought up, asking about sort of the primary key.
And I think possibly James's and Bobbin's as well. In that CRM, for its purposes, it's fine for it to give us an unfriendly number as the primary key because that carves off into a separate set of distinct requirements that Member Platform has.
You know, we can independently decide, you know, how we're going to handle those names. And it's not really, you know, we don't have to put that on Steve.
We can just take the number to keep track of people, and that falls into our pile to make it work for our application.
@18:43 - JD Leonard (modernbizconsulting.com)
Steve, I've got a question about this as it relates to the different contact types. As you had pointed out in one of the issues, an alias might not make sense for a household, and it's hard for us.
Just to also predict for future contact types that somebody might create, right, does a preferred name make sense? And the field, the full name, name project field, right, configuration, needs to reference a field, right, for it to take advantage of the preferred name or the alternative name field that's configured.
But the full name field is a base field right now, right? And so, oh, it's not? It's a full name field.
@19:34 - steven.ayers
So there's a name field. Every contact type has a name field. Only the person has a full name field.
@19:41 - JD Leonard (modernbizconsulting.com)
Got it.
@19:41 - steven.ayers
And that's locked so that they can't delete it.
@19:46 - JD Leonard (modernbizconsulting.com)
Okay. Never mind. My concern is moot. So then I guess I'll ask a follow-up question to try to get us to a resolution.
Steve, am I sensing that your proposal is? That on the person contact type, there is a preferred name field, and there is an alternative name field.
The alternative name field, we haven't really discussed whether it should be, any detail about whether it should be single-valued or multi-valued, but it could be either, right?
And then is there anything outstanding?
@20:24 - steven.ayers
I mean, the only other follow-up with that is, like, would we put, if we use a multi-value field called alias, do we also put it on organization?
I think we would, right? Part of this is related to setting up the search system, right? Just not search API, just basic search.
So, you know, I have a prototype working where it will find you if you search for the name, but it's still pretty basic.
But, yeah, so, like, if we choose these field names, It can then be included in the search.
@21:03 - JD Leonard (modernbizconsulting.com)
James, did you have something?
@21:05 - James Shields
Yeah, just that the concept of people and entities changing their names is a thing, and people may have more than one former previous name.
So, and certainly, you know, can go through multiple name changes. So, the ability to be able to track sort of a list of previous names might be useful.
@21:46 - JD Leonard (modernbizconsulting.com)
So, our contacts are revisionable, and I think by default, if you edit it, right, it'll create a new revision.
So, we would have that tracked. It's not quite as formal as a different... Field, right, that is tracking, as of today, what are your previous names, you know, not including random typos and, you know, mistakes and things like that.
But I wonder if that might be out of scope for, you know, anytime soon.
@22:16 - James Shields
I have no idea if revisions are searchable, but...
@22:20 - steven.ayers
They're not, or at least...
@22:21 - James Shields
Okay.
@22:22 - JD Leonard (modernbizconsulting.com)
You'd have to do some significant work probably to make that happen.
@22:26 - steven.ayers
I mean, think aliases make sense because just think about how many organizations are doing business as a different organization.
@22:34 - James Shields
I mean, the markets, for example. If aliases can be a multi-value field, then that probably allows... So, you know, that if you're searching for an organization, you might not be aware that it three months ago changed its name.
And you might be searching on an old name. And if that, if that...
@24:00 - Luke McCormick
Representative from the Drupalism Committee, I would encourage aliases for this. feel like alternative names implies more meaning than we want.
This is a variable. And let's leave it in abstract land so that it's clear to anybody that comes across it that if they want to make an alternative name, they should call it, you know, rename it that further down the line.
@24:26 - steven.ayers
Sounds good. We'll get those three items taken care of probably by the end of the day then, right? We'll get rid of one of them and merge the other two.
@24:33 - JD Leonard (modernbizconsulting.com)
I got one more related point for you, Steve, which is around the sort of DEI considerations around the naming of preferred name.
And I think maybe a little more research is needed, but I did want to throw out there that the research I did suggested that a more inclusive naming of the preferred name field would be chosen name.
Um, or...
@24:56 - steven.ayers
don't a case to the name project, it would be my my two cents.
@25:00 - JD Leonard (modernbizconsulting.com)
Well, but we have control. creating the field, right? So we have control over how that is presented. So, you know, in the same way that they call what we're calling the aliases field alternative name, right?
I suppose.
@25:16 - steven.ayers
I mean, I'm not really married to it one way or another, but I kind of prefer preferred name only because that's what the name project is using.
It's a one-to-one, right? I'm an engineer.
@25:28 - JD Leonard (modernbizconsulting.com)
I can create a follow-up issue. I mean, it's not a big deal either way, but... Yeah. I don't even know if this is the right name.
Like, a chosen name would be, like, the preferred name for preferred name. Luke, did you have a thought?
@25:47 - Luke McCormick
It feels like you're ignoring it, like, don't we push this towards, like, the implementer? I mean, this is something that each group, like, you know, within here, you know, the...
The science fiction community and an HOA are going to come with very different needs for this, and the more we satisfy one, the less we're going to be going in the wrong direction.
So we should, at least from the CRM perspective, stay away from that and keep it as, what's the object-oriented concept of, like, what's a, it's a class, right?
It's not the, I don't know, I'm going to get myself in trouble. The implementation has to define it.
@26:40 - JD Leonard (modernbizconsulting.com)
James, could you clarify for the sort of science fiction example, right, that you've got in your mind, would somebody set their alias to what they want on their badge, or would they set their preferred name?
Like, how do you envision them being used?
@27:02 - James Shields
I mean, I would probably envision sort of a registration form would have kind of what name would you like on your badge, or something similar to that on the form, but I don't see a problem with storing that in an alias field.
But, like, labels should be easy to override.
@27:31 - JD Leonard (modernbizconsulting.com)
So to Luke's point, the implementer is going to have an opinion on this, right?
@27:38 - Luke McCormick
I mean, there's two levels of abstraction. Like, CRM has one thing, and then member project will get more specific than CRM, but just not all the way.
You know, member platform will have an MVP. You won't have to change it. We'll pick one of them that, you know, kind of covers the general case.
But we shouldn't be limiting... The backend to that. And then that would be customizable. So, you know, there's three layers.
And we can have this argument, we shouldn't, you know, Steve shouldn't have to worry about it. Steve can call him aliases and move on.
@28:17 - JD Leonard (modernbizconsulting.com)
Bhavin?
@28:19 - Bhavin Joshi
Yes. For the initial release, I believe we should just provide single name, preferred name, first name, last name. And this will simplify things.
Later on, we can decide on whether we should provide alternate name or preferred name or whatever we call it to simplify things.
And as long as what you want on your batch, we should provide them. Just write the name that you want on your batch as a description below the name field for now, for the initial release.
And as I mentioned earlier in earlier conversation that CRM will be the one at the core of this members platform, because we are going to use most out of it.
It has everything that a member platform requires for storing content details and organization and everything. So whatever CRM does, it will affect the member platform.
So we should focus on primary things for the initial release. And then later on, we can add more complex fields, more complex features.
This is like a single kernel of Linux and building our own distribution solution.
@29:30 - JD Leonard (modernbizconsulting.com)
And to clarify, Bhavin, when you were talking about initial release, you're talking about the initial release of CRM or of member platform?
@29:36 - Bhavin Joshi
Yeah, the member platform.
@29:38 - JD Leonard (modernbizconsulting.com)
Sure. Okay, yeah. So yeah, of course, we can simplify anything that CRM makes overly complex for our 1.0 use cases.
So Steve, do you want to take us to the next item?
@29:51 - steven.ayers
I reached out to another CRM project, right? I reached out to CRM core and he asked me why. I stopped working on the project, and I haven't...
I'm working on my response, right? But he took a look at it. I don't know if that's good news or not, but...
@30:15 - JD Leonard (modernbizconsulting.com)
So I think it's going to be fruitful, right, to reach out and get other folks involved, particularly who are in the CRM space more so than a lot of us on this call.
And I think that, in my opinion, I think the best thing we can do before we do much more of that is kind of get the documentation a little more in order, so that when they do come to review it, they don't have to actually install it or actually review the code to kind of understand some of the decisions that have been made.
And, you know, we could probably also have some whys to some of those decisions to help guide.
@30:55 - steven.ayers
Yeah, you get those same questions.
@30:59 - JD Leonard (modernbizconsulting.com)
So for me personally, Okay. I'm interested in helping with that documentation and trying to kind of get some of that in order, so happy to lend a hand there this week, early next week.
@31:13 - steven.ayers
So what's more important to people? Tracking membership in, like, some sort of not-relationship-entity way? Or being able to, like, do some sort of bulk mailing, either with, like, mailing labels or, I don't know, email?
That was really, like, non-committal there by the end, Steve.
@31:40 - JD Leonard (modernbizconsulting.com)
Anyone? Robin, go for it.
@31:47 - Bhavin Joshi
Yeah. If we are talking about the solution, CRM is used as a platform that provides services to multiple users, just like the popular CRMs we have been using.
Now, sending emails and responding to those emails within CRM will require additional infrastructure for the hosting provider or if it is going to be at the user's premises, they will have to set up the mailing systems as well.
So, I'm not sure if it is a good idea to provide a feature for now. Of course, CRM means you can interact with the user in the way you do in person, but it's too much.
We should consider this as well.
@32:41 - JD Leonard (modernbizconsulting.com)
So, I'll add a perspective from our set of 1.0 requirements for member platform and our scope, which explicitly includes the ability to send emails to the members on the platform.
So, I think for member platform's perspective... We kind of have to have the ability to send emails before we have our 1.0 release, unless we revise our scope.
But I think with our 1.0 scope being based upon a light version of meetup.com for one group, one of the key things that one does is you communicate out to your members.
And as we've discussed previously, we don't strictly need a fully featured member tracking kind of data model for our 1.0 release, because we've said for our member platform 1.0 release, every user in the system, or every contact in the system, rather, is a member.
And obviously our requirements get more complex after 1.0. I do think it would behoove us to... Take on a dependency here as it relates to being able to communicate through different channels, while perhaps we only focus on email initially, I think having the underlying system use, I forget what the options are, there's D-A-N-S-E, right, Dance, there's, I forget what the alternative, there's an issue somewhere, right?
It might be in the member platform queue.
@34:32 - steven.ayers
I'm not sure if I understand the D-A-N-S.
@34:37 - JD Leonard (modernbizconsulting.com)
Understand what it does, or?
@34:39 - steven.ayers
Yeah, like, is that an abbreviation for technology? Is that a module?
@34:44 - JD Leonard (modernbizconsulting.com)
Is that a guy? That is a Drupal project. Let me pull up the page here. Okay. God bless you.-bye.-bye.-bye.
Thank And let me see if I can find the other sort of most obvious option.
@35:30 - steven.ayers
Well, I mean, this is like getting notifications, which isn't exactly the same thing I had in mind, but it's also not outside the realm of it.
@35:48 - JD Leonard (modernbizconsulting.com)
Maybe, let's see. I need to do a little more refreshing of my mind. Remember, there's push framework, which is related.
And then there's... Notification system, in any event, the overall concept I was trying to convey, right, is it would be great to be able to have a general system for sending communications out to contacts that is not specific to just emails, and that might, for example, take into account contacts' preferences for how they are contacted.
@36:31 - steven.ayers
I was thinking a little bit more low-featured, like, can we make a, can we print off some mailing labels, or can we send everybody who's a member or, you know, some sort of select of all these contacts, and then send them the same email but use tokens or other stuff to, hey, JD the Clamps, come to our next Zoom meeting in two weeks.
Thank you. Steve, I really don't like when you call me The Clamps.
@37:04 - JD Leonard (modernbizconsulting.com)
Still getting used to it. So what do folks think about, obviously, our first interest, right, functionally, is the ability to send emails.
But longer term, do we desire to have a more medium agnostic solution saying, hey, when something happens, then send out a communication.
If this person wants to receive communications by email, that's how they get them. If they want to receive an SMS, that's what they get, or something like that.
I can certainly see deferring some of that. There's obviously complexity there. I was more wondering, could we identify early on?
Right? A system that would support that later and just build the simple version on top of that.
@38:07 - Luke McCormick
What's the question? Like user-selectable primary contact means?
@38:16 - JD Leonard (modernbizconsulting.com)
So a contact may have preferences for how they are communicated with, right? Maybe you've got one who doesn't want to receive an email, and even one who does not have an email address, right?
And if you want to communicate something to them, right, maybe you need to do it a different way. And it would be extra work for the person sending the communication to have to sort of go out of their way to send different communications via different mediums to different people, sort of explicitly.
So I'm... Thinking of just a very general, you know, requirement of saying, hey, I want to send a communication, I want to send it to these people based on their preferences or however other things are configured, right?
Go send them the things. And obviously, email gets a little more complicated because you might want to make more of a long-form, you know, email that's not suitable to SMS and things like that.
But there are also probably solutions to that, like sending a link via SMS that sort of shows you the content from that email or something like that.
I don't know.
@39:36 - Luke McCormick
I feel like you're jumping the gun a little bit. I mean, these are super important issues, but, like, the ultimate implementer, the ultimate, you know, customer for a member platform is going to be very, very concerned about this stuff.
You know, James knows his users or, you know, his users very well, how they want to, and they're so, like, totally different from others.
So I think that shouldn't be in the conversation about, you know, CRM barely makes a conversation for MVP. I think MVP, we just pick one and go with it.
But leaving as like an important, you know, we don't want to lock it down. We want to make it so that that can be customized and implemented later.
But I don't think you want to spend too much time now worrying about like there's too many options. There's too many constituencies.
@40:35 - JD Leonard (modernbizconsulting.com)
Anyone else thoughts?
@40:42 - steven.ayers
I've heard nobody say that membership is important.
@40:47 - James Shields
So I just want to give an opportunity.
@40:53 - steven.ayers
If somebody has that opinion, I'd like to hear you.
@40:59 - James Shields
I mean, I think… Thank Personally, something I think would be important is some way of having a way that we can have a form on a website that somebody can come along and say, I want to be a member of your organization.
And that's kind of a bit different from the form that site admin or organization coordinator would add somebody through the back-end CRM.
So I think that's definitely something I would like to have some thought into. And if the thought is, we're not going to deal with that, we're not going to deal with that for version one, that's okay.
But I think it's definitely... It's definitely something that I would see a member platform, people need to be able to register for it.
Bob, are you keen to say something?
@42:19 - Bob Snodgrass
I think the question is, which is more important? I think membership is important, and it's a member platform, so we have to have some membership functionality with our first MVP.
But I think communication is the most important thing about using this on a day-to-day.
@42:45 - James Shields
I can't deny that makes sense. Yep.
@42:48 - steven.ayers
I'm on board with that.
@42:51 - JD Leonard (modernbizconsulting.com)
Sounds good.
@42:58 - James Shields
Locking fields? Sorry, one other thing. Another thing on the membership side is, I know there's a membership issue in the CRM project, I'm kind of, I think that it might be worth having a question of, should the membership part be part of CRM, or should it be part of the member platform project, or should it be a separate project in between the two?
I mean, I guess if it gets implemented in CRM, that's something membership, member platform, mightn't have to think about it much, which would be nice, but it might be worth having a thought about where is the best home for it.
@44:00 - JD Leonard (modernbizconsulting.com)
So I'll jump in with my philosophy here, which is member platform, right, from the start, we were, one of the first things we talked about is, are we tracking contacts, you know, as contacts or as users, right?
And we said contacts as contacts. And so since that decision, means everything that we do needs to be sort of based around contacts, right?
However that's implemented. And so membership is about contacts being members, for example. With our decision to adopt the CRM project as our sort of base, and that providing the concept of contacts and that data model, right, it sort of allows more functionality to be built for the CRM ecosystem, all of which can benefit member platform, but can also benefit other projects.
So my sort of strong opinion on that is, while member platform, It has member in the name. It's all about membership, right?
I don't think we should be territorial about what is, quote-unquote, in-member platform, right? Anything that member platform adopts is in-member platform, right?
It's an initiative more so than it is a module, right? And so I support the tracking and the data model for membership benefiting more than just member platform.
And thus, think it belongs on top of CRM, in between CRM, CRM, right, and member platform. And I think it's an open question about, is it a, like, where does the actual project live?
Is it a separate D.O. project? Is it shipped with, you know, CRM? I don't have strong opinions on that.
Does anybody have thoughts on that, or does anyone disagree?
@45:53 - James Shields
No, that makes perfect sense. I mean, I would imagine that there will be project sites that want To use CRM that have absolutely no interest in anything membership-related, so from that point of view, I would imagine you don't want it in the core of CRM, but it could be a sub-module that can be turned on, or it could be a project outside of the core CRM project, so Steve may already have opinions on this, I don't know.
@46:31 - Luke McCormick
Yeah, would say most things that are called CRM, know, like Salesforce, like the people that are on the list don't even know if they're on the list, much less are, you know, having impressions on them.
So yeah, that seems like a functionally separate thing.
@46:49 - JD Leonard (modernbizconsulting.com)
Steve, you want to share any of your thoughts on where membership functionality lives?
@46:55 - steven.ayers
I'm more concerned about it existing before I can care about where it lives.
@47:01 - JD Leonard (modernbizconsulting.com)
Fair enough.
@47:04 - Luke McCormick
Hey, Steve, what does the C in CRM stand for?
@47:07 - steven.ayers
Contact. Contact relationship management.
@47:11 - Luke McCormick
Okay. It's all about contacts.
@47:13 - steven.ayers
Contacts first.
@47:15 - Luke McCormick
Not customer or constituent, which is used elsewhere in the It's a heated debate. It's heated debate.
@47:24 - JD Leonard (modernbizconsulting.com)
Bhavin, please.
@47:25 - Bhavin Joshi
Yes, one way I see this is how we distinguish between the member platform, memberships, and CIOs. Membership on membership platform is like all the users are just users on the platform, and they have different slave or different roles based on their membership level, and they have different privileges to use the membership platform or whatever the service is.
Now, they are getting as long as CRM is concerned how it is. If someone wants to store contacts and does not want to include all those users, as Luke mentioned, Salesforce, you can create a list on Salesforce, and those contacts do not know whether they are on the list or not.
This is a similar thing.
@48:27 - JD Leonard (modernbizconsulting.com)
Yes, and we also said, right, that member platform needs to support use cases of members who don't log in to the platform, right, because, for example, they don't know how, right, or because the organizer simply wants to track the members, and maybe they don't want to expose the ability for them to log in.
So we've got lots of use cases to support. For 1.0, though, right, yes, it's really about them.
@49:00 - Bhavin Joshi
That is where the CRM comes into the picture, where you don't want the users to log in.
@49:06 - JD Leonard (modernbizconsulting.com)
Yeah. All right, Steve, you want to take us to locking?
@49:12 - steven.ayers
Oh, yeah, we've been locking some fields. I don't know if it's explicitly bad, but right on the contact details, each bundle has a, what I will call, main field.
All right, the address bundle's main field is the address field, right? Telephone, telephone. So we probably don't want to delete those, but also do we want to assume the user, the site builder's retarded, or do we want to assume they have, like, I don't know, a brain in their head?
So I could see maybe allowing them to delete those and shoot themselves in the foot. But I also see an advantage to not letting them shoot themselves in the foot.
clip. pistol. chart. Bye. Hey. There could also be a middle ground where instead of locking the field, we override the form so that they can't delete it, but they could still edit it, and since it's not locked, they could also add it to other bundles, which I don't know if I really care about that one way or another, but Are we mixing UI and data model considerations here?
@50:39 - Luke McCormick
Like, you definitely wouldn't want to allow anything that corrupts the data model, if that's what you mean by shooting themselves in the foot.
@50:49 - steven.ayers
Well, I mean, if they delete, say, the address field, any sort of mail label generator to doing bulk, like physical mailing, isn't going to work.
Because it's going to assume you're using the address field. And so that's why it's currently locked. For the example of the, so for the person bundle, they have a full name, which is using the name project.
And you can't edit the settings for that, since it's locked. But you could define what the alternative name is, what the preferred name is, right?
And it's, the conversation we had earlier was more about preferred name versus alias versus alternative name was more relevant because since it is locked, we would be making these decisions on behalf of the site builder.
But if we don't lock the field, the site builder can also delete the field. And like where we're kind of assuming that field exists because we use it to then format the label for the person contact.
And like here, sure. we're see behind size. k Eassidy there. to visit And So that's sort of just why I'm bringing up the question of whether, you know, blocking fields, do we want to continue to do this, do we want to modify our behavior, or?
@52:18 - Luke McCormick
Oh, sorry.
@52:19 - Bhavin Joshi
Yes, go ahead.
@52:23 - Luke McCormick
It probably wasn't well-formed enough to justify cutting off like that. But, yeah, I think, you know, we have to be careful who we're, like, referring to when we worry about, you know, letting people, you know, shoot themselves in the foot.
Like, it seems like the closer we get to the core, the less flexibility we allow, or maybe the more flexibility, know, depending on how you look at it.
Like, like, At some point, as you're constructing a system, it can't be unstable. Like, you can't, like, just arbitrarily make changes because other stuff will break.
And so at each layer, you have to sort of hand off to the next layer, like, okay, you know, follow these rules and, you know, the things I promise will work will work.
And if somebody wants to, like, rejigger that, then it's their responsibility while they have the parts on the table to, you know, not leave the room until they've achieved whatever level of reliability we're thinking about there.
So I don't think, from your perspective, you need to worry about dumb changes that will break things. Just, you know, be clear about, you know, what systems are needed and that becomes a contract.
And, you know, if we have to adjust the expected technical skills at each level, I imagine it gets easier and easier as we get closer and closer to the end user.
know, the final customer of a member platform will have a very, like, Ikea-like experience where they just follow the instructions, put it together, and it'll work.
Whereas if they're going to rip out pieces, that's another thing. Anyway, I've monologue too long. Bhavin, back to you.
@54:34 - Bhavin Joshi
Yes, I wanted to ask about locking and locking fields. As you know, that only title field is logged in Groupon.
And out-of-the-box, if CRM offers such features, should the super admin, the user who installs a Drupal website on the server, be able to unlock it in any way?
Or if there is a mechanism that any user with respective roles or... And one more thing I would like to say, why don't we make the respective fields just like a similar to title field of a node, such that it won't be available for the building?
@55:25 - steven.ayers
Yeah, no, that is one of the options. We could override the form, so you could still edit the settings of the field, but just not delete it.
I'm kind of leading towards that as the option, but there might also be situations with the address field where maybe we don't want them.
I don't know. I think maybe we'll unlock them and lock them again before we do a 1.0 release or something.
@55:50 - JD Leonard (modernbizconsulting.com)
I don't know. It's complicated, right? Like, it's hard to predict what people are going to want to tweak. Like, you you
Right, for their use cases, because we just don't know what their use cases are. And we need to provide a certain level of stability for these fields that the ecosystem will depend on.
Ultimately, if you lock a field, the person who's, you know, creating the site can always unlock it, right? I mean, that's something they can do.
There's not, like, an easy way in the UI to do it, right? There isn't, right? But if they're really determined to change something, we're not truly preventing it.
We're just making it more difficult. But I think for some fields, there is definite value in them being able to just go and edit some of the configuration for the fields.
But that also is the danger zone. There's still a danger zone there for, I don't know, let's say they, in the address field that I configure.
They could, what could they do that messes things up there?
@57:06 - steven.ayers
They could add the name components back to it, probably. Like, that's the thing I'm thinking of and what I wouldn't want them to do, but maybe...
@57:15 - JD Leonard (modernbizconsulting.com)
Well, that confuses the user experience, but it wouldn't actually break any ecosystem stuff, right?
@57:20 - steven.ayers
Well, there's no ecosystem at the moment, but just how does the email, like the email label generator work? Is it just rendering that field, or is it, right?
So, I don't know.
@57:33 - JD Leonard (modernbizconsulting.com)
I see what you're saying.
@57:36 - steven.ayers
But again, can we really talk about how things interact with other things that don't exist yet? Is it... Maybe the solution is just to have, you know, more features and more code and see how it works.
@57:52 - JD Leonard (modernbizconsulting.com)
We can always unlock something later. It's harder to lock something later. That was not locked, to begin with.
@57:59 - steven.ayers
Well, I mean, these are... Until alpha releases, so anyone who complains about stuff changing can go suck lemons.
@58:07 - Luke McCormick
Personally, I like lemons, but...
@58:13 - JD Leonard (modernbizconsulting.com)
Yeah, I don't know. I'm torn on this. I like the idea of modifying the form to prevent deletion at a minimum, but I also wonder if just leaving them locked until such time as somebody's like, hey, I've got a use case that requires this not be locked, and then we can evaluate, you know, in that context.
@58:38 - steven.ayers
For aliases, for example, what I was thinking we would do is configure it so that the field remains even if it's empty.
So even if you delete it off of all the bundles, it's still available under reuse fields, and you can just re-add it.
Right? It's not prefixed with the word field, so it's in some ways a special. you. Also, don't want them to be able to delete it from the database perspective because I think I was just going to include that table in the search.
@59:14 - JD Leonard (modernbizconsulting.com)
Yeah.
@59:15 - steven.ayers
There's an indexing process, though, that I really should be doing instead of just searching the database, so that would probably maybe eliminate some of the issues we might have.
Relating to search and fields being changed.
@59:38 - JD Leonard (modernbizconsulting.com)
So, so far, we've got a very limited number of fields, right? The notable ones are kind of what you mentioned around, like, name, address, telephone, email.
There's not much beyond that. But presumably, over time, we're going to add more fields, right? As sort of out-of-the-box things.
So, yeah. And to your earlier point, what should our policy be as far as whether we're locking these things or not?
And I don't have an answer, but it feels like there's maybe a different policy, like the policy maybe should have a different answer for fields for which we have a specific goal in mind for the ecosystem doing things with versus things that are sort of just for convenience because they're commonly used.
I don't know how we differentiate between those or whether that's even a safe, wise thing to do. So, not a helpful comment.
@1:00:46 - steven.ayers
Yeah, I think we'll just leave it as is and kick the can down the road till it becomes relevant again.
@1:00:56 - JD Leonard (modernbizconsulting.com)
Very good. So, are past our official time. Thanks for staying around. welcome. Okay. I'm going to hang out on the call for longer if folks want to continue talking about things and making some progress, but no pressure.
@1:01:13 - Bhavin Joshi
Thank you, guys.
@1:01:14 - Luke McCormick
We're going take off.-bye.
@1:01:15 - Bhavin Joshi
Interesting.
@1:01:17 - JD Leonard (modernbizconsulting.com)
Thanks, guys.
@1:01:19 - Bhavin Joshi
Have a nice time.
@1:01:20 - JD Leonard (modernbizconsulting.com)
Take care. James, are you sticking around? You are muted, James.
@1:01:32 - James Shields
I'm still muted. can hang around a little bit. I have a thing in another window that I need to give a little bit of attention to.
@1:01:39 - JD Leonard (modernbizconsulting.com)
Very good.
@1:01:41 - James Shields
I will be...
@1:01:42 - JD Leonard (modernbizconsulting.com)
Steve, want to chat about things?
@1:01:44 - steven.ayers
Sure. I caused a little bit of a storm, I noticed, with subtypes.
@1:01:53 - JD Leonard (modernbizconsulting.com)
Yeah, I have to refresh my memory. I know I reviewed it, but I've got vacation brains still. mean... questions.
he's... I Want to talk about that?
@1:02:01 - steven.ayers
I mean, not really. I mean, it's something that we should think about, but it's not pressing. If I were to pick a topic to throw out to consider, it would be some telephone numbers would be associated with a physical location, like either a landline or a fax machine.
Voicemail, not really so much, right? But when you fax something, it physically goes someplace. And, right, so there's one argument about there being, say, a union and a union having locals.
And I think in that situation, they're just different organizations that are linked together. But even if we take that example and go with a local union, they may have an ad.
Let's go with dock workers in Baltimore because I've been watching The Wire. The game is the game. They might have a location down by the docks, but they may also have an office downtown.
@1:03:00 - JD Leonard (modernbizconsulting.com)
with let's with with Thank Let's go go. Thank
@1:03:00 - steven.ayers
And each one would have different physical phone numbers, potentially. So that's just something to think about how we would associate those two, right?
Like if we were doing a directory listing of, say, all the offices for a particular international union, right, it would list them.
The title would probably be which local or the international, like what organization it's related to. But then we would probably list the address and any related telephone numbers.
@1:03:35 - JD Leonard (modernbizconsulting.com)
No, this is an excellent point. Let me take that. Let me offer a simpler example, right? McDonald's is an organization.
They have lots of locations. I don't even get into the franchisee issue question, right, which complicates matters.
@1:03:48 - steven.ayers
But let's pretend they're all corporate-owned, right? Let's go with White Castle. It's a better restaurant.
@1:03:53 - JD Leonard (modernbizconsulting.com)
And they're all corporate-owned. Very good. Can't argue there. So you've got White Castle's an organization. They've got a bunch of...
Locations. Those are probably not simply addresses on their address field, right? They're not all, not like, I mean, they could be, right?
But you lose a bunch of detail there. Like they, it feels like they need another entity or bundle to represent their locations.
@1:04:22 - steven.ayers
Well, when you start talking about an organization of that scale, that's a little bit different, I think.
@1:04:28 - JD Leonard (modernbizconsulting.com)
Well, it even be like a two-location restaurant, like local convenience or something, right? Like we've got, we've got a taco place in Austin that's got like, I don't know, three locations.
I mean, ultimately, we're not, I don't think we're just trying to be in the business of tracking all of the things for all businesses, right?
We're not also creating an inventory system, like out of the box, right? Like maybe that's a future thing, but.
@1:05:00 - steven.ayers
So let me pose it to you this way. If every location is a different organization, then the address field is one spot, is a cardality of one, not unlimited.
And if it's unlimited, we really want to be leaning more towards this, right? You could potentially have a physical address in a P.O.
box, but, you know, outside of that sort of scenario, you're not going to have more than one address per organization.
@1:05:34 - JD Leonard (modernbizconsulting.com)
Yes.
@1:05:36 - steven.ayers
So let me take a step back. Whether or not they're separate organizations or not is really a site builder consideration.
@1:05:44 - JD Leonard (modernbizconsulting.com)
Yeah.
@1:05:45 - steven.ayers
Right? Like, if you have thousands of locations, you may want to, you know, how much data you have probably determines how many divisions you have to break it up by, right?
But, you know, if you only have a panel, Full of locations, even if you'd still want to be able to say that this physical voicemail or fax machine goes to this location, right?
Now, this sort of ties in a little bit with subtypes.
@1:06:15 - JD Leonard (modernbizconsulting.com)
Yeah.
@1:06:17 - steven.ayers
We went with the type field on the contact details. Just, I mean, the schema was all the same, et cetera, right?
There's no additional out-of-the-box functionality or special going on here yet, at least. But, and I don't even know if this is a real solution, but if, say, the telephone type is a fax machine, or maybe we have one called landline, I don't know.
There's then an entity reference field that they have that they can then associate it to one of the addresses.
This goes back to, we need to have contact IDs on the contact details. Not just for the access handler, but also if we were to do something like this, we probably want to use that ID, I'm thinking, instead of maybe the referenced one.
Both contact details are going to have a contact ID on them. So even if you're somehow doing some stuff where you, JD, have, or the organization has, if, never mind.
@1:07:30 - JD Leonard (modernbizconsulting.com)
No, it's just like... I painted the picture. I'm wondering, I'm increasingly wondering if it would be in everyone's best interest for us to provide a general solution to the concept of an organization having multiple locations.
Because if we did that, it would be much easier, it would be a much easier basis upon which to define where do these address.
And telephone numbers and stuff go. What are they associated with? But it adds complexity now, right? Because now there's another layer, another level.
@1:08:10 - steven.ayers
I mean, I suppose the same thing could apply for individuals, maybe households. But like, right, if you own more than one property, you've got a vacation home and a cabin and, I don't know, maybe an apartment in New York.
@1:08:24 - JD Leonard (modernbizconsulting.com)
you're an international mafia thug. That's me. No, I think you're right. I think a household could definitely have multiple locations.
It's a bit awkward because household sort of refers to, like, an actual house. But it also doesn't because it's really about the family and, you know, wherever they might live.
Okay, so thinking this out a little further until we give up and throw our hands in the air. If an organization or a household has multiple locations.
an household household or a has back. By default, there's one location, right? I mean, or do you start with zero locations?
@1:09:09 - steven.ayers
By default, there are zero locations, Address is not a required field. You could sign people up for your organization and only have an email address, right?
@1:09:23 - JD Leonard (modernbizconsulting.com)
And a household can just refer to one person to begin with. Like, it could encompass one person, right? Or it could encompass more than one person.
@1:09:34 - steven.ayers
I mean, I think the same thing could apply to an individual as a household, right? Whether or not a household of one is really a household, I think, is really a personal call.
But from a functional standpoint, right, it should basically work the same.
@1:09:48 - JD Leonard (modernbizconsulting.com)
You're saying a person should be able to have more than one location in the same way that a household can?
@1:09:54 - steven.ayers
Yep. And organization. Because, I mean, I own multiple properties. But I don't live at multiple properties, so any household I would have wouldn't have multiple addresses.
@1:10:14 - JD Leonard (modernbizconsulting.com)
Or on the flip side, I might own an apartment building and my family live in different apartments.
@1:10:21 - steven.ayers
You really don't like your family, Steve.
@1:10:28 - JD Leonard (modernbizconsulting.com)
So complexity is going to balloon, right, on some of this stuff. Particularly, I'm thinking around the mailing and the, you know, the contact stuff.
Like, well, okay, it's one thing to have a primary address and a primary email address, but now does it need to be the primary, does it need to be the address for the primary location?
@1:10:55 - steven.ayers
I mean, a location could have an email address, right? A store could have its own email address.
@1:11:02 - JD Leonard (modernbizconsulting.com)
Maybe.
@1:11:03 - steven.ayers
Not as common, though. Like, usually it's a generic email to, like, someone or individual emails, but yeah, it could happen.
I mean, I've got restaurants at Laraway.SomeStore, maybe.
@1:11:17 - JD Leonard (modernbizconsulting.com)
I've got a restaurant down the street that is in a chain of, like, three locations in three different countries, right?
And they operate very independently, but they are also, like, the same thing. So it's, I don't know, it gets complicated, but how do we balance the flexibility?
@1:11:39 - steven.ayers
Well, I mean, right, you'd still want to have, like, a fax machine being able to be associated with a location.
I just don't know.
@1:11:50 - JD Leonard (modernbizconsulting.com)
A fax machine is not necessarily associated with a location, though.
@1:11:54 - steven.ayers
Well, mean, it is true that you could have fax-to-email capabilities. I'm just thinking that a physical... A fax machine would be printing out paper somewhere, right?
It could be digital. I'm not saying these have to have a relationship. I'm just saying a telephone number could be associated with a physical location in the same way.
@1:12:18 - JD Leonard (modernbizconsulting.com)
Yeah. So either, let's just take the telephone number example. So either the telephone number has a reference to a location, but is still located on the organization, right?
Or whatever other contact type. Or there is a location. There's a set of locations for the contact type, and the location itself hosts the phone number.
But we probably still need the ability to then have a phone number not associated with a location.
@1:13:08 - steven.ayers
I mean, like, mobile phones don't make sense, though, to have, like, a physical location associated with it, because, right, it's mobile, it's cell phone.
@1:13:16 - JD Leonard (modernbizconsulting.com)
Well, yes and no, because, like, there are many businesses, right, who have, like, it's technically a mobile phone that accepts SMS, but it's always at that place of business.
@1:13:29 - steven.ayers
Like, it's always just sitting there. I mean...
@1:13:33 - JD Leonard (modernbizconsulting.com)
I think it's less about, for me, I think, like, a mobile phone, it's less about whether it's mobile, right, and more about its capabilities, right?
Can it communicate via SMS is sort of, like, the thing that's more relevant from a functional perspective. It's still interesting for somebody to know, like, what kind of phone is it.
@1:13:55 - steven.ayers
That sort of is another argument about subtypes, right? Like, cell phones can... Receive SMS messages, whereas, right, landlights cannot.
@1:14:11 - JD Leonard (modernbizconsulting.com)
Yeah.
@1:14:12 - steven.ayers
So again, I'm not trying to make more complicated than it needs to be, but, right, it's already complicated.
@1:14:21 - JD Leonard (modernbizconsulting.com)
So, okay, there are a few different things we talked about. Well, sorry, let me go back. I haven't reviewed pretty much anything in over two weeks in any great detail, so I'm a little out of date.
But I know that the contact detail, no, the location type, right, turned into a contact detail type.
@1:14:51 - steven.ayers
Just the detail type, not a contact detail type, because that's a separate, that's the bundle.
@1:14:57 - JD Leonard (modernbizconsulting.com)
I know, that's why it was a little, ugh, the use of time.
@1:15:00 - steven.ayers
Yeah! I know, the naming's terrible!
@1:15:02 - JD Leonard (modernbizconsulting.com)
You didn't step in and fix it! I was on vacation! I also, I did think of it, and I couldn't think of it better than that.
Yeah, I mean... But maybe worth revisiting before it sticks. It's going to cause confusion, for sure. Okay, so the detail types.
You can have a detail type that is applicable to more than one contact type.
@1:15:37 - steven.ayers
I updated the schema with two additional fields. One is a sequence of machine names of contact detail types, and the other one is a Boolean field for negate.
So, right, just like when you're selecting bundle types for, like, blocks, right? Do you want this to apply to just telephone numbers, or do you want it to apply to everything but telephone numbers?
And right, empty isn't considered an inclusive empty.
@1:16:10 - JD Leonard (modernbizconsulting.com)
All right.
@1:16:11 - steven.ayers
So, yeah, through the UI, you can decide which ones show up where.
@1:16:15 - JD Leonard (modernbizconsulting.com)
And so, out of the box, what are we shipping? Home? Work?
@1:16:21 - steven.ayers
Yeah, I'd have to review it. Billing, cell, some others. I went through, and when I did the issue, I looked through the ones that we had.
And, you know, billing, I think, might be exclusive to an address. And then, like, cell phone is exclusive to phones, obviously.
Fax machine and voicemail. Like, right work applies to everything.
@1:16:54 - JD Leonard (modernbizconsulting.com)
Mm-hmm, mm-hmm. More? Yeah. Clear. Yeah. Yeah. Yeah. Yeah. All Are
@1:17:01 - steven.ayers
And you can only select one, right? It's a single value field. So I don't know, maybe it could control whether or not fields are shown in the edit form or not.
I don't know. At least that was sort of the basic idea in my head of concerning subtypes or subbundles or some other thing, right?
Just hypothetically, right, if, well, I guess everything except an address could be associated with an address, but.
@1:17:42 - JD Leonard (modernbizconsulting.com)
When you say everything, you mean a phone number or an email address?
@1:17:47 - steven.ayers
Both a phone number and email address and basically all their variations, right? Home, work, et cetera, voicemail. Yeah. Just sort of working it out.
You know, speaking it out out loud.
@1:18:01 - JD Leonard (modernbizconsulting.com)
Right, right.
@1:18:05 - steven.ayers
Maybe it's just a checkbox, and then the field of peers, I don't know. Maybe that's not the right way to go.
@1:18:20 - JD Leonard (modernbizconsulting.com)
A, help me think this out. Can a location or an organization, conceptually, not have an address? You could have coordinates or something, I guess.
Like, could be tracking an organization that has, like, minds or something that maybe don't necessarily have addresses, like they're out in the wilderness somewhere.
@1:18:44 - steven.ayers
They still have addresses.
@1:18:48 - JD Leonard (modernbizconsulting.com)
I mean, there aren't postal addresses in a lot of places. You might not be able to send mail there.
@1:18:58 - steven.ayers
I just I'm just sort of thinking... I'm out loud here. Every county, every land exists inside a county for tax purposes, except for, I think, some national parks, maybe.
@1:19:07 - JD Leonard (modernbizconsulting.com)
Oh, you mean it could have a less detailed address, not one that actually lets mail get there, but some sense to its geographic location?
@1:19:18 - steven.ayers
Well, the United States Postal Service, I think, is required to deliver mail to every citizen of the United States.
Well, I don't know if you have to be a citizen, but they have to charge the same amount, right, to the citizens.
Otherwise, it would somehow be unequal for government or something. So I think they could receive mail out there.
@1:19:41 - JD Leonard (modernbizconsulting.com)
Well, keep in mind, we're not talking exclusively United States. Also, organizations, I don't think, are necessarily... I'm thinking, I mean, I'm thinking just generally, you could have an organization...
@1:19:57 - steven.ayers
Like a member platform that doesn't have a physical address, but has...
@1:20:07 - JD Leonard (modernbizconsulting.com)
Let's say we do represent a location, right? Let's say you create a contact, and if you're going to add an address for that contact...
@1:20:20 - steven.ayers
Oh, oh. Let me just check. I got time. got a half hour. I just needed to check to make sure I wasn't missing a meeting.
@1:20:36 - JD Leonard (modernbizconsulting.com)
Okay. Let's say you go to an organization. Just go to any contact. I don't care what kind of contact.
And you're going to add an right? We could say, all right, at that point we are prompting you, or maybe it's part of the initial action you take.
Are you adding an address for a location, right? Or are you adding a generic address? adding the number Slater,
Like a general address. And I don't know quite what that looks like, right? But it would mean that an address...
I guess another question is, can an address exist outside the concept of a location? I don't what you mean by a location.
Yeah.
@1:21:23 - steven.ayers
Can an entity exist without the address field being filled in?
@1:21:29 - JD Leonard (modernbizconsulting.com)
No, that's not the question. I know the answer to that one. What am I trying to say? If you take the White Castle example, right?
They've got a bunch of store locations.
@1:21:51 - steven.ayers
Presumably they also have office locations.
@1:21:56 - JD Leonard (modernbizconsulting.com)
Probably there needs to be some way to differentiate between them. Right.
@1:22:03 - steven.ayers
Detail type. Maybe we should have stuck with location time. But yeah, you could create a new detail type called Office and one called Store.
@1:22:19 - JD Leonard (modernbizconsulting.com)
Right, right, right. So then in that situation, right, if you've got an address, okay, you could have an address associated with an office, you could have an address associated with a store, but could you not also have a more general address that's like a customer service contact address or something like that?
It's where you mail things, but it's not associated with a location that's actually being tracked, right? Or would that necessarily need to be a location?
It's kind of what I'm getting at in this hypothetical tracking locations.
@1:22:53 - steven.ayers
Is a location an address?
@1:22:56 - JD Leonard (modernbizconsulting.com)
mean, I don't, I. A location, I'm just talking, I'm a location. It would be some representation, right, in the system associated with the contact that can host an address, it can host a phone number, can host an email address.
@1:23:13 - steven.ayers
Oh, there's, yeah, no concept of a location.
@1:23:16 - JD Leonard (modernbizconsulting.com)
I know there is not presently. No. This is a hypothetical, like, if we're to track locations, kind of how would we do that?
@1:23:23 - steven.ayers
I think every address is a location.
@1:23:27 - JD Leonard (modernbizconsulting.com)
Every address is a location. What if there's a, what if you know a location exists and you want to track it, but you don't actually know its address?
Maybe you only know its phone number. Like, you only know the phone number for a store because you get it out of some system somewhere or whatever, right?
@1:23:50 - steven.ayers
I mean, is there only one store?
@1:23:55 - JD Leonard (modernbizconsulting.com)
Assume not?
@1:23:57 - steven.ayers
Well, I mean, if you don't know the location, it would be difficult to assess. It's with one, but you could still, I suppose, enter it as a valid telephone number for the contact.
@1:24:08 - JD Leonard (modernbizconsulting.com)
I think more what I'm getting at is I'm challenging the concept that a location necessarily has an address in the system.
Maybe a location does, in fact, have an address, but maybe we don't know it.
@1:24:24 - steven.ayers
So perhaps the thing that you were— You know something about it, though. So at the very least, you probably know what state it's in, if not what town it's in.
If you don't know what town it's in, it's probably not like there's 12 of in the state that are relevant to you.
So you could probably fill in enough of an address to make it work.
@1:24:45 - JD Leonard (modernbizconsulting.com)
Yeah, yeah.
@1:24:46 - steven.ayers
Austin, store, right?
@1:24:49 - JD Leonard (modernbizconsulting.com)
Right. Just put in Austin, Texas and just Texas or— Hmm. You
@1:25:04 - steven.ayers
We don't need a solution. I'm just throwing the problem out there to sort of chew on.
@1:25:09 - JD Leonard (modernbizconsulting.com)
It's a good one. And a bad one.
@1:25:13 - steven.ayers
Well...
@1:25:21 - JD Leonard (modernbizconsulting.com)
All right. I'll noodle. Let me see what else is cooking in the issue queue to discuss here.
@1:25:43 - steven.ayers
We got that new awesome logo.
@1:25:45 - JD Leonard (modernbizconsulting.com)
Woo!
@1:25:47 - steven.ayers
And a favicon.
@1:25:49 - JD Leonard (modernbizconsulting.com)
Nice.
@1:25:50 - James Shields
Wait, have I seen the latest logo?
@1:25:53 - steven.ayers
Pardon?
@1:25:54 - James Shields
Have I seen the latest logo?
@1:25:56 - steven.ayers
I think so. It's just the same one, but... TRM is aligned, like on their shirts. I just dropped it into chat.
And then there's a slight variant of that for the Favicon, just because it's so small that the details just make it look bad.
There was a question about how do we get demo sites right. There was an idea floated about using Tugboat.
We're using Tugboat for Merge Request demos or builds. I've tried using that for just general demonstration on other projects, and it hasn't been as successful as it is with Merge Requests.
We may want to take a look at that. So it's like simpletest.me is a site run by like a Drupal.org project, but we have to ask, right?
They don't just. List you.
@1:27:02 - JD Leonard (modernbizconsulting.com)
But you can, if I recall, you can enter a project name, right?
@1:27:08 - steven.ayers
Yes, but to be listed there, you have to act. Well, they have to decide to list you there.
@1:27:15 - JD Leonard (modernbizconsulting.com)
Oh, so they don't have all the projects available for search there?
@1:27:19 - steven.ayers
Yeah, I've tried using CRM there. I thought it was initially just a, we didn't have an initial release thing.
I mean, right now, I'm going to just go there to check to see if maybe I'm wrong, and it's updated recently, but I took a look at the link.
Yeah, I type in stuff, and I'm finding other CRMs, but not. And I've tried just sticking it in there and like, the ID, shove it into this URL, go ahead, make it work.
And it's like, nah, nah, we're done.
@1:27:58 - JD Leonard (modernbizconsulting.com)
I'm, I'm scrolling through now. No, it's not there, is it? Yeah. Huh.
@1:28:06 - James Shields
STV CRM?
@1:28:10 - JD Leonard (modernbizconsulting.com)
Huh.
@1:28:12 - steven.ayers
So, right, this is a Slack channel associated with this somewhere and some other stuff, so...
@1:28:20 - JD Leonard (modernbizconsulting.com)
There's also Drupal Forge.
@1:28:22 - James Shields
Yeah.
@1:28:23 - JD Leonard (modernbizconsulting.com)
Which I'm sure would be happy to have CRM on there.
@1:28:32 - steven.ayers
Again, I think we just have to ask.
@1:28:35 - JD Leonard (modernbizconsulting.com)
Yeah.
@1:28:35 - steven.ayers
They generally are using usage statistics and we don't have any, but...
@1:28:45 - James Shields
Asking seems sensible.
@1:28:50 - JD Leonard (modernbizconsulting.com)
All right, I'm just looking down. Oh, notes versus comments. sayes.
@1:28:59 - steven.ayers
There we go. Yeah, I don't have an opinion. We should probably change from field notes to at least notes.
Whether or not it's a base property or not, I don't know. I know I have comments as a dependency.
@1:29:18 - JD Leonard (modernbizconsulting.com)
Sorry, you cut out for a second there, Steve. Your video went away. What did you say?
@1:29:27 - steven.ayers
Right, so we should probably change it from field notes to notes. But on making it a base field or not, I don't know.
I did add comments as a dependency, but I don't know if I really want to keep comments as a dependency or not, versus making it optional.
@1:29:43 - JD Leonard (modernbizconsulting.com)
Like in a sub-module, you mean?
@1:29:45 - steven.ayers
No, just if you install the comment module, we'll add the field, right? There's a hook to do that, but not require comments to be a dependency.
@1:29:56 - JD Leonard (modernbizconsulting.com)
It seems, it almost seems a little too magical to... To do that, like, I feel like it would be better to have a sub-module with the hard dependency so that it gets installed and we expose that more readily to the person installing the module.
Rather than like, oh, you have comments installed? You get this functionality that you won't have.
@1:30:21 - steven.ayers
Who doesn't have comments installed, though, is also the other question, right? I'm sure it's possible that somebody doesn't want comments.
My sort of thought is maybe there's something that's better than comments that somebody's created, like comments plus comments. I've got nothing here.
@1:30:46 - JD Leonard (modernbizconsulting.com)
Well, I mean, this is a little different, but there's like the message stack, right?
@1:30:54 - steven.ayers
Yeah, that's sort of what I was thinking, but also they're not comments and like people wouldn't be editing them.
Really, that should show up as a different tab as Activity. I'm a maintainer of message stack, so I don't know.
@1:31:07 - JD Leonard (modernbizconsulting.com)
Of course you are.
@1:31:10 - steven.ayers
Like, yeah, of course I am.
@1:31:15 - JD Leonard (modernbizconsulting.com)
I think also interesting is I've seen in different systems two different types of notes fields, right? There's like the sort of comment-esque note, right, where you can add more than one.
And then there's just like the big text area that you can edit.
@1:31:33 - steven.ayers
Yeah, that one, that one, I've seen that one, and I don't like that one anywhere. It's always bad. It never works out.
It's like, how old is this text? Who are these initials?
@1:31:46 - JD Leonard (modernbizconsulting.com)
Yeah, I mean, I don't know. There's something to be said for it, but it's more like it always gets sort of abused as just the place where custom things go, right?
And what I'm gonna is I can't remember aагund, and I'm not going to push for it. But I would urge notes over comments.
@1:32:08 - steven.ayers
Yeah, I'm not talking about changing the name to comments.
@1:32:12 - JD Leonard (modernbizconsulting.com)
It's fine. But I do think a base field makes sense. Whatever the contact type is, presumably you might want to add a note about it, right?
@1:32:24 - steven.ayers
Yeah, mean, it's really the argument of whether or not it's a base field versus a field you can't really get rid of.
I mean, you can delete it, but, like, the field itself remains, even if you get rid of it from all the bundles, right?
Retain, storage. There's a setting in there, right, to retain this field, even if the storage is empty. It's not really important right now.
@1:32:48 - JD Leonard (modernbizconsulting.com)
But what you're getting at is, as a base field, you can't delete it.
@1:32:52 - steven.ayers
Yeah. I guess what I'm getting at is, with a base field, you have to have comments, too. And, I don't know, maybe I'm trying to get...
Rid of as many dependencies as possible, and you're trying to write as least amount of code as possible, and here's where they intersect.
But it's not the end of the world if comments are a dependency, I'm just...
@1:33:14 - JD Leonard (modernbizconsulting.com)
Yeah. I mean, I can certainly imagine plenty of use cases where people are like, I don't want this field.
I don't want to see it. Right? Now, it can always be hidden. Right?
ACTION ITEM: Update controller to reveal notes field, update tab text with counter - WATCH
@1:33:34 - steven.ayers
Well, we have a separate tab for notes, though.
@1:33:41 - JD Leonard (modernbizconsulting.com)
Oh.
@1:33:43 - steven.ayers
Yeah, I think there's some update work I need to do in the controller to reveal the field, or something to do to update the configuration.
But, yeah, it was put on a separate tab, because that's how Sibby CRM does it. Got it. And also, I got to then update the tab text.
So it's got a little counter in there. When I was working on that, I thought that was super cool, so I added it everywhere.
@1:34:09 - JD Leonard (modernbizconsulting.com)
Huh. This one, I'm like, tripping.
@1:34:18 - steven.ayers
It's not really an alpha release question.
@1:34:22 - JD Leonard (modernbizconsulting.com)
Well, I mean, no, but also, only so many questions we can take down the road, right? I think I err on the side of either having it be...
@1:34:40 - steven.ayers
Making it a base field is the least amount of work in terms of code, but...
@1:34:47 - JD Leonard (modernbizconsulting.com)
I wonder, I think, okay, I think the most flexible thing we could do is have it be a submodule.
It basically lets the user choose whether they want this thing or not, and it makes the dependency... It's the optional if they don't, like, want it, right?
@1:35:06 - steven.ayers
Yeah, I'm not saying you're wrong. I just don't know if I want to create a separate submodule at this point, right?
Just not even saying that that's the wrong solution, but just with alpha releases, do I want to have 30 different modules?
@1:35:19 - JD Leonard (modernbizconsulting.com)
Yeah. I mean, it also seems sufficiently generic enough to say, fine, like, it exists, it's there. I don't agree.
I don't know if it's wrong, All right.
@1:35:31 - steven.ayers
Wait till we get some feedback from people before we would get rid it or change it. I think the issue's fine.
I'm feeling pretty clever with myself with the CRM relationship contacts field.
@1:35:46 - JD Leonard (modernbizconsulting.com)
Tell me more.
@1:35:48 - steven.ayers
Right. Instead of having two separate fields in the schema, we have a single field, so we get the added benefits of querying quickly.
But we'll be using computed fields. To have it, you know, so you can control the display in the, both the form and the display of the entity, right?
You can still move them around as if they exist as two separate fields.
@1:36:15 - JD Leonard (modernbizconsulting.com)
Oh, cool. That is clever. You should be feeling clever. So the, so the storage has, is multi-valued, but in the UI, it basically looks like two fields.
@1:36:31 - steven.ayers
Yeah.
@1:36:33 - JD Leonard (modernbizconsulting.com)
Nice.
@1:36:34 - steven.ayers
Well, I mean, it's not done yet, but it's prototyped.
@1:36:39 - JD Leonard (modernbizconsulting.com)
Is there, now I'm just trying to think if there are any issues resulting from that. If, is, I kind of, can we think of a use case where...
Well, I guess to my previous question in the issue, Delta Zero would be Contact A?
@1:36:57 - steven.ayers
Yep.
@1:36:57 - JD Leonard (modernbizconsulting.com)
So if there's a convention, I can't see any issue.
@1:37:00 - steven.ayers
I mean, right, there's validation that needs to be updated, but...
@1:37:04 - JD Leonard (modernbizconsulting.com)
Yeah, no, that's good. Good idea, yeah.
@1:37:08 - steven.ayers
Interested in doing group integration?
@1:37:11 - JD Leonard (modernbizconsulting.com)
Am I interested in it?
@1:37:13 - steven.ayers
Yeah, it's a simple, it's a pretty easy, like, feature request.
@1:37:18 - JD Leonard (modernbizconsulting.com)
What I think is...
@1:37:19 - steven.ayers
three files.
@1:37:21 - JD Leonard (modernbizconsulting.com)
What I think is more complex is... Not just the integration, because it provides the ability for the site builder to go and do things, right?
Yep. It's more around... Well, I don't know, I've to think about this more. Because... Well, go ahead, James.
@1:37:46 - James Shields
No, it sounds interesting. Yeah, I mean, I could definitely see potential for it. I would think it would be more relevant for me.
Members, then, for contacts. I could be wrong on that.
@1:38:05 - steven.ayers
Well, I mean, right, a contact is a member, or a member is a contact, just with a special, not even special, but just, right, with additional relationships, so.
@1:38:18 - JD Leonard (modernbizconsulting.com)
Oh, I'm sorry. To be clear, this is just, this is just to give the ability for contacts.
@1:38:26 - steven.ayers
To be added to groups.
@1:38:28 - JD Leonard (modernbizconsulting.com)
To be added to groups. Oh.
@1:38:30 - steven.ayers
Right, just the same way you can add, like, nodes.
@1:38:32 - JD Leonard (modernbizconsulting.com)
I see what you're Ah. So it doesn't, it doesn't actually provide anything out of the box, it's just.
@1:38:41 - steven.ayers
It's plug-ins, and it'll add the group module as a dev dependency.
ACTION ITEM: Implement group integration for CRM contacts (3 files, add group module as dev dependency) - WATCH
@1:38:45 - JD Leonard (modernbizconsulting.com)
Got it.
@1:38:47 - steven.ayers
Right, you install groups, you can add contacts to groups.
@1:38:54 - JD Leonard (modernbizconsulting.com)
Yeah, yeah, I can do that.
@1:38:57 - James Shields
That could be useful.
ACTION ITEM: Attempt to get documentation to build, focusing on 'pages' job naming/inheritance - WATCH
@1:38:58 - JD Leonard (modernbizconsulting.com)
I'm thinking, wouldn't. though, I, I, I. I think I should prioritize some of the documentation stuff first.
@1:39:08 - steven.ayers
So you want to maybe take a look at getting the documentation to build?
@1:39:16 - JD Leonard (modernbizconsulting.com)
Yeah, yeah, I will.
@1:39:18 - steven.ayers
Yeah, I played around with that. It seems like if you have your job, either name pages or inherit from pages, it will deploy.
@1:39:31 - JD Leonard (modernbizconsulting.com)
Yeah, I know there's something special about the name pages.
@1:39:35 - steven.ayers
Yeah.
ACTION ITEM: Update CRM documentation: correct blatant errors, create follow-up issues for further updates - WATCH
@1:39:44 - JD Leonard (modernbizconsulting.com)
Yeah, I'll tackle that one first. Well, I say tackle. Attempt to tackle. And then I will get back to the documentation.
And try to update it based on what's been done so far, or at least correct anything that's just blatantly incorrect and create follow-up issues so that we can at least get the documentation somewhere where it can be updated as part of each issue.
Let's see. You know, I mentioned sort of my interpreted philosophy of what CRM is doing, right? And I don't know that it's been documented or stated anywhere, right?
But one of the questions concerns people are going to have when they try this out is like, this is not a usable CRM, right?
Like, it's not an out-of-the-box, ready-to-use, like...
@1:40:53 - steven.ayers
It's an alpha release.
@1:40:55 - JD Leonard (modernbizconsulting.com)
But I even, I even mean, like, 1.0, like, it's not, I'm imagining... It's because it's in many ways so unopinionated, right?
Like, it's just sort of the building blocks, right? Just like a lot of things in Drupal, it's building blocks for you to go customize, right?
Like, where is the line drawn, right? You've talked a lot about dependencies, right? But I feel like it's more than that, right?
Like, what is potentially in scope for CRM? And not, is I guess really the question, longer term.
@1:41:35 - James Shields
I think it could be great component recipes.
@1:41:41 - JD Leonard (modernbizconsulting.com)
To make community builds, yeah.
@1:41:43 - James Shields
Yeah, maybe it could come with a number of recipes for specific CRM things.
@1:41:52 - JD Leonard (modernbizconsulting.com)
And just to clarify, it can't exactly come with, right? Like, have to be a separate project. Recipes, you have to have separate projects.
You But, I mean, I agree in the general model. think that can make a lot of sense. And I almost, I wonder whether, I'd also been thinking about, like, should there be effectively, like, a CRM starter, you know, that's, like, takes CRM and then adds a bunch of dependencies and opinions and, you know, is something that's a little out of the box.
@1:42:27 - steven.ayers
ask the CRM core project.
@1:42:30 - JD Leonard (modernbizconsulting.com)
Because they've got a lot of stuff there?
@1:42:34 - steven.ayers
No, but...
@1:42:38 - JD Leonard (modernbizconsulting.com)
It would be a poor name.
@1:42:41 - steven.ayers
Yeah, I guess that's true.
@1:42:51 - JD Leonard (modernbizconsulting.com)
I'm forgetting.
@1:42:54 - steven.ayers
Member Platform, we could use that one.
@1:42:56 - JD Leonard (modernbizconsulting.com)
I've heard of it.
@1:43:00 - steven.ayers
I've heard heard I'd hear use walk do use do I mean, at some point, there's been discussion about, like, should we move stuff around in the menus and stuff?
And I think the answer is basically no. But we also don't have, like, the CRM application itself. We just have sort of some administrative functions.
Like, right, there's nothing particularly useful at forward slash CRM. And so, like, in my mind, that's the application. And all the other stuff we're doing so far is just support for building some sort of dash.
Well, I mean, maybe not just some sort of dashboard, but it would start with some sort of dashboard.
@1:43:42 - JD Leonard (modernbizconsulting.com)
Any thought on where what you just described would live?
@1:43:47 - steven.ayers
I imagine there would need to be some sort of base functionality in CRM. I would immediately think that if I want to create a dashboard, I'd probably want to use Page Manager just to, like...
You know, make it easy, but that probably really wasn't the question you were asking, was it?
@1:44:08 - JD Leonard (modernbizconsulting.com)
It wasn't. But now I'm thinking about Page Manager, and I'm like...
@1:44:13 - steven.ayers
Yes, that is a good tool.
@1:44:17 - JD Leonard (modernbizconsulting.com)
It's fallen out of fashion, hasn't it?
@1:44:22 - steven.ayers
No, I just think it doesn't get as much love as it needs to for patching the bugs and getting the tested patches in a timely manner.
@1:44:31 - JD Leonard (modernbizconsulting.com)
You know, it's a Drupal project. But as far as an application, is that part of the CRM project?
@1:44:45 - steven.ayers
Yeah. I mean, I don't know exactly. I don't have all the details worked out, but it would provide some sort of functionality to do CRM-related stuff without having to be like an administrator.
there. You know, Thank
@1:45:06 - JD Leonard (modernbizconsulting.com)
You mean it would, for example, provide a way to, what, change some feature flags and configure some things and also actually manage the CRM data?
@1:45:22 - steven.ayers
Yeah, I mean, I'm not sure of all the details on how it would work, but...
@1:45:28 - JD Leonard (modernbizconsulting.com)
Because I think what I'm kind of hinting at, right, is the sort of looming future identity crisis, right, that I think CRM will have about, is it, what is it trying to achieve, right?
Is it just really focused around, like, the data model and providing building blocks, or is it going to provide something more than that?
You know, and where does something more than that belong? Is it part of CRM itself, or is it effectively a more opinionated implementation on top?
@1:46:13 - steven.ayers
Well, it's like if there's the CRM case module, maybe the front page, like, CRM is like the equivalent of Drupal's front page.
I don't think we need to go as far as having, like, a special route for it, you know, like CRM and angle brackets, but how many, you know, cases did you get in some sort of time period?
Like, are they going up or down kind of stuff? I don't know exactly how it would be implemented or all the details, but.
@1:46:48 - JD Leonard (modernbizconsulting.com)
But what you just described with the cases, right, is going to apply to a subset of maybe a small.
@1:46:55 - steven.ayers
that would, or it could also be other things like membership or. You know, we're talking about having a mailing feature, maybe we have an email campaign sort of feature, or maybe the campaign feature.
Campaign's sort of a difficult word, since it's so generic. I don't know exactly how we would put it on the front page and how we're going to meet my I-don't-want-none-of-your-contributed-module-dependency- with I-will-take-all-of-the-dev-dependency-modules-I-can.
@1:47:37 - JD Leonard (modernbizconsulting.com)
Let me ask a different question. What do you think the scope should be for CRM 1.0?
@1:47:46 - steven.ayers
It depends.
@1:47:49 - JD Leonard (modernbizconsulting.com)
Boo.
@1:47:52 - steven.ayers
It depends whether or not it's going to get funding or not.
@1:47:58 - James Shields
Ah.
@1:48:01 - steven.ayers
There's a project that it could potentially be used for, and that's part of the reason I'm asking the question about addresses and other contact detail types being associated with an address.
@1:48:13 - JD Leonard (modernbizconsulting.com)
Okay.
@1:48:14 - steven.ayers
It's not necessarily a hard requirement, but if there was funding to continue the development, right, that would cause stuff to be released sooner so that, you know, updates can be made and database schemas can be changed and, you know, hook update ends.
@1:48:37 - JD Leonard (modernbizconsulting.com)
Right.
@1:48:40 - steven.ayers
As far as CRM, the module itself, I think it's pretty clear that we kind of have all the entity types we need at this point.
@1:48:53 - JD Leonard (modernbizconsulting.com)
Possibly location.
@1:48:56 - steven.ayers
If we still think that's an address, but that's a different... We can kick that can down the road until we get to beta, I guess.
@1:49:08 - JD Leonard (modernbizconsulting.com)
That one strikes me as one that we should tackle as soon as we can, even if the end result is like we're not doing it.
I think we should come to a conclusion on that one quickly, because I think that it'll get gnarly if we do it.
ACTION ITEM: Update relationships for more granular access control on contacts - WATCH
But as I said, I'll ponder, see if I can come up with any brilliance. Probably not.
@1:49:33 - steven.ayers
Right, there's some stuff to do with updating relationships, but the biggest thing left is getting a more granular access control on contacts vis-a-vis relationships, though I don't know if that explicitly has to be a 1.0 release or not.
@1:49:50 - JD Leonard (modernbizconsulting.com)
Yeah, I think it really comes down to how buggy the feature is after the first draft. Sure. All right, all right.
What about other fields? Like if we look at Sivvy, for example, lots of fields, lots of fields. And, you know, what's your philosophy on when fields should be added?
@1:50:23 - steven.ayers
Well, I was feeling pretty clever about being able to use date range until I realized the version of date range I'm using has patches applied to it.
@1:50:31 - JD Leonard (modernbizconsulting.com)
So you can just fill in the start date and not the end date.
@1:50:35 - steven.ayers
Then I want to try that. I'm like, why does this do this? Oh, yeah. So that's probably not going to be a solution for things like when people were born unless you want to be like deciding when they die, too.
@1:50:50 - James Shields
mean. Yeah, also.
@1:50:55 - steven.ayers
Welcome to Social Security. You'll be dying in exactly 19 years.
@1:51:00 - JD Leonard (modernbizconsulting.com)
One way or another. Yeah. One solution to the Social Security crisis.
@1:51:09 - James Shields
Yeah, I mean, the other thing with dates is I can imagine organizations where you would know somebody's birthday is the 6th of July, but you wouldn't know the year they're born.
And, you know, you might want to allow people to enter their day and month without entering a year so that you can send them a happy birthday on their birthday without needing to know their exact age.
@1:51:46 - JD Leonard (modernbizconsulting.com)
I agree. That seems like a very relevant requirement.
@1:51:51 - steven.ayers
Does the date field let you do that?
@1:51:55 - JD Leonard (modernbizconsulting.com)
I don't know if it does.
@1:51:57 - steven.ayers
I mean...
@1:51:59 - JD Leonard (modernbizconsulting.com)
I... I think so. I think there's probably a Drupal module called Birthday. Sorry.
@1:52:08 - James Shields
I did remember a Drupal episode where they were talking with some archivists, and they were using a module that could handle kind of all sorts of weird date formats, like, you know, it's sort of sometime in the third century, or you know, we've got this document that we can read, we can read the date says January, and we know it was sometime in the early 1900s, but we don't know the exact year.
So it was a module that let you have all these sort of vague dates, dates, I cannot remember if it was, if if
If it's a country module or one they develop specially, but we probably don't need something that clever, but it might be worth asking, Martin, if Smartgate can handle it.
@1:53:17 - JD Leonard (modernbizconsulting.com)
I have failed to find a module that serves the purpose of a birthday, at least in modern Drupal.
@1:53:26 - steven.ayers
Yeah. Yeah.
@1:53:30 - JD Leonard (modernbizconsulting.com)
But back to my more general question, right, like...
@1:53:33 - James Shields
Sorry, yes, very destructive.
@1:53:37 - JD Leonard (modernbizconsulting.com)
What fields should exist out of the box, versus be relegated to the implementer?
@1:53:44 - steven.ayers
Well, I'm not opposed to adding fields, but if it requires a dependency, then it becomes a bigger decision, right?
@1:53:53 - James Shields
Oh, yeah.
@1:53:54 - steven.ayers
Like, if it's a contrib module, then... I want if give a want You How good is it? And that can be measured in multiple ways, and adding it to, like, automated tests.
@1:54:07 - JD Leonard (modernbizconsulting.com)
Yeah, yeah.
@1:54:09 - steven.ayers
So I'm not opposed to adding a field with a smart field if that's the correct solution, but I'm just not, right, we're not convinced of that yet.
So I would try to do it with a date field if possible.
@1:54:24 - JD Leonard (modernbizconsulting.com)
So date field, you can adjust the form display and the view display to not output the year, right? But it's still stored.
Like, I don't think you can avoid storing it.
@1:54:40 - James Shields
I know there was something I was looking at, a site that I created a date field on, and I was sort of frustrated to find that it was forcing me to enter a time as well as a date, and I'm not sure whether that was just me configuring it bad.
When I set it up, was a site I set up ages ago, and I was just entering something on recently, and it was sort of, I don't need a time, but I'm pretty sure the current date field, at the very least, you have to enter all the parts of the date.
Yeah.
@1:55:32 - JD Leonard (modernbizconsulting.com)
One thing I'm thinking of with, like, what fields should be added, right, is, okay, we could always add fields later.
It makes things a little more complicated, though, if there's some, like, 80% use case field that we don't have initially.
Somebody installs CRM, they have to add their own, and now we provide another one. That's, like, eventually, that's, like, the duplicate.
So, there's the opposite scenario.
@1:56:01 - steven.ayers
We provide something and then change it.
@1:56:03 - JD Leonard (modernbizconsulting.com)
Well, for sure, for sure. Anything we do should be, like, well-vetted. But I'm wondering if for 1.0, like, we should basically have an audit and review of, like, hey, what fields do we think should be shipped with this thing, right?
So that we're not kicking that can beyond...
@1:56:25 - James Shields
I mean, I would kind of try and take the view of this that anything that isn't specifically needed for CRM or membership functions, that they're fieldable entities, so the user can add them themselves.
But I'm sure there's more than I'm thinking of off the top of my head that is actually CRM functions.
@1:57:01 - JD Leonard (modernbizconsulting.com)
So we talked about, like, birthday or birthdate, right? We've talked about whether someone is up to another meeting.
@1:57:07 - James Shields
Oh, cool.
@1:57:08 - JD Leonard (modernbizconsulting.com)
Thanks, Steve.
@1:57:10 - James Shields
I've got to go in a moment as well.
@1:57:12 - JD Leonard (modernbizconsulting.com)
Yeah, as well.
@1:57:15 - James Shields
More discussion to be had. Six o'clock here. Snook up on me a bit.
@1:57:21 - JD Leonard (modernbizconsulting.com)
Time for supper?
@1:57:23 - James Shields
Uh, actually, my partner is going to France tomorrow, so we're having a date night tonight.
@1:57:30 - JD Leonard (modernbizconsulting.com)
Nice! Where are going?
@1:57:32 - James Shields
Uh, just to a pizza restaurant nearby.
@1:57:36 - JD Leonard (modernbizconsulting.com)
Very good. Well, enjoy, and we'll see you soon.
@1:57:42 - James Shields
So, that was very productive.
@1:57:44 - JD Leonard (modernbizconsulting.com)
Yeah, good discussion.
@1:57:50 - James Shields
Um, sometimes I just feel like there's kind of circular discussions that we're going around the same points again and again, but I think we are slowly, slowly.
Slowly. Nailing down things.
@1:58:02 - JD Leonard (modernbizconsulting.com)
Agreed. I think one of the things I need to do is just get more stuff documented so that we can refer to it, right, as far as sort of decisions that have been made and things like that.
And we can always change things, right, but at least then there's not discussion about what has already been decided.
Hopefully we can at least point to it and say, oh, we made the decision, or here's the philosophy, or, you whatever it is.
@1:58:29 - James Shields
Cool. So, okay, well, we'll...
@1:58:31 - JD Leonard (modernbizconsulting.com)
Take care, James.
@1:58:34 - James Shields
Chat on Zoom, et cetera. Yep. Cheers. Not Zoom, Slack. Whatever. Good luck, then. Thanks again.
Comments
Comment #2
bluegeek9 commentedFor next meeting.
#3529158: Add aliases field
#3525891: Add preferred_name field to Person Contact Type
#3529160: Add Alternative name field to Person (Nickname)
Comment #10
jdleonard