Organizations or Communities, which one should I use? The final answer

One of the questions that comes up more often when I talk to community members, partners and customers is, should I use communities or organizations in my project?

If you haven't asked yourself this question before, let me add some background. Liferay portal is known to have great multi-tenancy support. That means that you can have many independent sites within a single installation of Liferay. There are two ways to build sites in Liferay, organizations and communities, and each one has its own characteristics.

When I am asked this question, I always like to go back to the origin of each of them, because I think it helps understand the differences:

  • Communities: they were created as a way to have groups of pages that could display content and applications. The reason why they were called communities is because the goal of all the initial implementations was to build online communities, but since then people have really been using communities for things for which the term may not apply so well such as corporate sites, product sites, event sites, etc. That's perfectly fine.
  • Organizations: they were created as a way to organize users in a hierarchy. The great thing of this hierarchy is that it allows delegation of user administration, which is a key feature needed by some of the largest installations of Liferay where there are hundreds of thousands or even millions of users. Later, we realized that many people were creating a community associated to each (or several) of their organizations. But keeping this association manually was a bit of a pain, so we improved organizations so that they could have their own site. (For the curious, we did it by creating a community underneath but  hiding that fact from the end user).

Keeping this explanation in mind it should be easier to decide which one to use. If your main purpose is to organize your users and delegate their administration, you should use organizations (It is important to always remember that an Organization Administrator will be allowed to edit the profile of all the users of the organization). If you also need the organization to have pages, then you can use that feature to save time.

If all you want to do is create a website with pages, content and applications that can either be accessed by anyone or just by a group of members of the site, then communities is the best choice.

And of course, remember that you can safely use both communities and organizations within the same portal.

I hope that this explanation makes it easier for you the next time you ask yourself this question, but whenever a question comes up so often I think we should ask ourselves why. We have done it and have been discussing internally how we could improve the product to avoid the question altogether. We have been thinking about several solutions and we are very happy with the one we have found. In fact is super simple, and that's always a good thing.

Improvements in Liferay 6.1 to simplify the creation of sites

 

Let's start with the great news, in Liferay 6.1 you will not have to decide whether to use communities or organizations upfront. Sounds good, right?

Let me explain what will change and how that will be achieved. The first change that we will be making is to rename what we currently know as Communities and call it Sites. The reason for this should be obvious if you have read the rest of this entry, people have been using Liferay's communities to build sites for a long time so it's always a good way to make things easier to understand to give them a name that means exactly what people use them for.

Of course we will still allow creating sites whose purpose is to serve for building online communities. In fact we plan to make it easier and faster to do that by using predefined site templates for community building.

How about organizations? They will still be the main way to organize users in a hierarchy and they will also have the ability to have an associated Site. The main change that we will be making is that if it has one, the Site of an organization will not be invisible. In other words, when the administrator goes to the Control Panel to the Sites Administration application (which is currently known as Communities Administration) he/she will be able to see all the sites, including those that are associated to an organization.

Additionally, it will be possible for an administrator to associate an existing site to an organization at any time. Of course it will also be possible to undo this association whenever wanted. When a site is associated to an organization the following things will happen (this doesn't change from 6.0, but I prefer to still explain it):

  • All users of the organization will become members of the site automatically. That means that they will have access to the private pages of the site and will be able to do any action that has been configured to be doable only by members.
  • The name and description of the Site will be automatically synced with those of the organization (to save the administrator time).

As you can see, the changes that will be introduced won't be large, but it will make the life of developers building portals using Liferay easier. If someone asks you, how do I build a site to do XYZ? There will be one and only one option that you can choose, while still keeping the benefits that we had before.

Furthermore, as we have started working on theses changes and we keep having many benefits that we hadn't thought of to this simple changes. For example, it will be very easy to have a user who is an administrator of the site of an organization but not of the users of the organization without creating custom roles. Also, it will simplify the management of roles and avoid some duplication that is necessary now some times. Not only that but it will also help make Site Templates more powerful, so expect improvements in this area too :)

We hope you like this idea and of course we would really welcome beta testers (maybe I should say alpha testers) that would like to try these changes as we build them in Subversion to give us feedback.

Finally, you might be wondering if this will require any complex upgrade. The answer is no, because there are no significant changes in the APIs or database model, so all your sites will be kept and those that were associated to an organization will stay that way. The only things that will need to be upgraded (and this will be done automatically for you) is related to organization roles. For example, Organization Administrators, will be automatically made Site Administrators, so that they can keep managing the site as they used to. But now you will have the flexibility to assign both roles or only one to your users.

 

Blogs
Nice feature - merging Organizations and Communities into one! Thanks, Jorge.
Any changes to content sharing across organizations or up/down line sharing on organization hierarchy? An explanation on what is possible now and how the new change in 6.1 affects this content sharing would be nice.
Has there been any changes to have parent child authority? As in if I have access to a parent org/community do I have access to all the children?
@Jonas, please note that we are NOT merging organizations and communities into one. That is an option that has been considered in the past but was discarded because it had drawbacks. The solution explained in this post is much better and preserves both Organizations and Communities (renamed as Sites), because each has a different purpose.

@danny There was an interesting thread about this topic that you can follow in the following URL. The thread resulted in a decision to add support for a "liberal sharing mode" to the roadmap and it will be implemented in either 6.1 or 6.2: http://www.liferay.com/community/forums/-/message_boards/message/6772433

@Chris Currently a user of an organization is considered a user of the parent organizations. For example, in Liferay's intranet a user of Liferay Spain is also a user of Liferay Europe. For administrators, it can also work up down, in the sense that an admin of an organization may also have permission to manage all suborganizations. Considering this, can you describe what use cases are you missing?
Jorge correct me if I am wrong, from Liferay 6.1 Communities will be called as sites. When we create an Organization, there will be no Site associated with it(Which means it doesnt have it public and private pages). We need to create a site first and then associate it to an organization.
Is the members of the parent orgs new in 6? When we were trying to implement Liferay (originally in 5.1) we couldn't see any security that was inherited from parent communities. So we used communities.
@Sandeep. Yes, that's the way it will work. Although the creation of a site associated to an organization will also be possible from the administration of that organization to make sure we don't add complexity to the end user.

@Chirstophe, I'm glad you like it. I also agree with the navigation menu based on the organization hierarchy. In fact, it wouldn't be hard to implement. Would you like to give it a try and contribute it? I'd be happy to review and commit it.

@Oliver, to be completely honest, I haven't figured out how Olaf's junction points fit. The last time I talked to him we agreed that he would make it a plugin, but we haven't had a chance to talk for a while.

@Chris, I think that improvement was made in 5.2, but it could have been 6.0 too.
Thanks Jorge that makes sense.... Now a bigger question is it possible to convert a community into an organization?
Hi Chris,

With the new model, the common request of converting a community (Site) into an organization would be achieved by associating the site to an organization.

The functionality of an organization will only be to organize users in a hierarchy and allow delegation of user management.
Yeah I want the ability to organize the users and delegate user management... So when we upgrade to 6.1 I will only have to associate the Community (now named site) to an organization?
Hi Chris,

You can achieve that both in Liferay 6.0 and 6.1 using organizations. None of that changes.

The only thing that changes is that if you want the organization that you have created to have pages then in 6.0 that would be achieved through a hidden Site and in 6.1 it won't be hidden to provide more flexibility.
But can I convert existing communities (I have around 30) to organizations to gain the new functionality?
Hi Chris,

Existing communities will become Sites (just a name change) and yes it will be possible for you to associate them to organizations so that users of the organization automatically become members of the site and the name and description of the site is sync with that of the org.
Thanks, Jorge.

It seems organization and community are merged somehow, since organization has different types: regular, location, community-set and community. So what's different between regular org and community-set? and between location and community?

And sites (renamed from Communities) covers different types: open, restricted, private and system (that is, any organization site). what's different among open | restricted | private site and system site?

Thanks.
Are there any plans to integrate and implement the junction points feature shown by Olaf Fricke at the European Symposium last year? It would make the navigation through communities much easier if the user is able to hook the page structure from other communites dynamically.
Hi,

I'd like to know how I can add a site to an organization in social office. I cant seem to find where to do this.
Also, I also will like to know how I can make the organization's site the default page when a user for that organization logs in.
Hi Lekan,

AFAIK, there is no way to do that in the current version in Social Office, but that will most probably be possible in the next version (based on Liferay Portal 6.1) which will benefit from the improvements described in this post.
Does your answer apply to both question? Adding site to organization and setting an organization's default page when a user attached to that org signs in.
Thanks Jorge. I've been asking for a good definition around the question for a while... great description.
When is 6.1 to be released?
This streamlining may make things easier for us so long as we can still have pour own types of organization and hierarchy (we use committees a lot) and that when creating an organization you can specify the site (public/private templates) at the same time as most of our organizations will require them.
Hi Dave,

I'm glad that you find this improvement useful.

There is no public target date for 6.1 yet, but we are hoping to have a production ready version before the end of the year.
I know this sounds silly, but would it be possible to change what sites/communities are called?

For instance, in the current portal we are developing, which will be merged into a game, "Communities" is the perfect name for what we need for how players are grouped. "Sites" simply doesn't describe it well enough.

I think there is also a possible confusion since it is logical to be a member of a "group" or "community" but there is little logic to being a member of a "Site."

Yes, I know this is splitting hairs, but most applications like liferay are used by non technical people and therefore the nomenclature really needs to define what is being offered.

Assuming the basic premise remains the same, that is a Site or Community is a function for collecting users together for the purpose of interacting with a series of applications (including site building apps), then it would be really useful if how these are named and described can be altered by the admin to suit the particular need of the portal.

Liferay is very definitely NOT Google Sites, after all.
Hi Joss,

Those are definitely good points. The option to rename Sites as Communities will always be there just by overriding the keys in Language.properties that use the term.

Another thing I plan to do is to provide some default site templates that use specific terms such as Community, Corporate Site, etc. That way when a user clicks the "Add" button within the Sites portlet he will need to decide as the first step whether he will be creating a Community or something else. Adding to that the fact that it will be possible to filter out which types of sites each user can create, then you get almost what you want.

I guess the only issue would be the term of the entry in the Control Panel menu. Would that be a big deal in your case?
HI Jorge

It was more from the control panel I was thinking.

In a very complicated portal such as ours where much of the administration is done by a moderation team with assorted permissions, there would be situations where they would need to have control over communities/sites - either because they are creating them or because they need to manage them in a particular way (remove some pages, for instance)

I think I can see some confusion growing between what is a group of people and what is a website.

To me I tend to think of it with the following flow:

1. A group of people come together and we call that a Community of people.

2. The Community has tools to help them interact - although these are web based tools such as forums or personal messaging, they are seen as distinct from a Web Site.

3. The Community decides to create a website for their community using tools provided.

In a slightly odd way Liferay provides for this flow with public and private pages. As an admin I would set up a Community Template that has one public page with something innocuous on it like "Community X" right in the middle. I would then put set community tools on the private pages. (I am ignoring for the moment that the community can add their own pages).

The community uses the private pages for establishing and conducting community affairs.

If they want to create a "Site" then they would edit the public page.

hmmm

Maybe this is where the problem lies - rather than in what a Community is, perhaps it is in defining what the Public and Private pages are.

I am not against changing a "Community" to a "Site" but I feel that it only addresses half a problem or a problem that only some people have.

For some they are grouping people to create sites, for others they are grouping people to create communities. Most, I would suspect, are creating both at the same time - a community which then creates a site.

(You could go cross eyes working out the semantics here)

At the moment, while we are in design phase, we are being tripped up by this very confusion.

A community will be created by an action in the online game. The grouping in the game will define the membership of the community (we will not allow members to join these communities via the portal itself).

Once created, the Community is managed by the person who triggered the creation via the game (interestingly, they will not be the owner - that will be a shadowy figure they have no control over since we do not want any of them to have ownership rights).

So, this is a community.

Now, as part of their tool box, the members of that community can create their Site (public pages) if they so wish.

As you can see there is a very defined difference between the community and their public presence - their "Site" if you like.

Actually, I dont think this is confined to our particular use of Liferay; I think this is how human beings think naturally. We are a tribal creature and we define everything in those sorts of terms.
Hi Joss,

Thanks a lot for your very detailed description. There are several aspects of it that I found very interesting and would like to discuss further about them.

Since the comments in a blog post are not a very comfortable way for this type of discussions and I want anybody interested to participate, I've taken the liberty to create a new thread within the Core Dev in the forum. If you don't mind I'd like to follow the conversation there. I'm going to wait a day to answer to see if more people want to share what they think (and also to order some proposals I have in mind).

http://www.liferay.com/community/forums/-/message_boards/message/8086106
Hi Jorge - that link doesn't appear to go anywhere
Sorry about that, I've just fixed the link.

@SZ Khan. Thanks for finding the correct link and publishing it here.
I didn't understood anything you talking about.
Organization, Community, site etc...
From the outside, it seems, you solve problem that you introduced and you are the only one to understand and that will have a low benefit at the final for the user.

If you have something to change it's not just changing a name but for example to break the static bound that exists between content (for exemple Web content) and the community/organization. A content is a content, and a system of permission should be made to be able to associate this content in the king of entities/pages.
Great change. I like it. We are new to Liferay. We were getting confused about the differences between Organizations and Sites. I think this will help clear up some confusion to newbies.

Question: Will the database and API still be refered to as 'Groups'? Cause, that can also be confusing to newbies.
Yes, the database will still be called Groups. There are several reasons for this, including the fact that changing it would cause a lot of changes in all APIs (the groupId is almost everywhere). Also, that table is used for other (similar) things other than Sites.
Hi Jorge,thanks for the nice post which really cleared my confusion regarding those two.
Could you also explain how to assign a site to domain or sub domain of the organisation and how does portal instances relate to site address
"it will be possible for an administrator to associate an existing site to an organization at any time."

How is this done?
Hi Thomas,

Unfortunately the UI to do this did not make it into 6.1, but it is part of the plan and will be added in a later version.
Hi Jorge,
Thanks for your answer!

Sorry to hear that it won't be a part of 6.1 but good to hear it will be part of a future release.

I think this feature is very important because only then, the pain of choosing site or organization is truly alleviated. If you have created a Site and at some point realize you need hierarchy, just create an organization and connect the site to it! Since there's currently no way to make a site into an organization (and vice versa), the problem with choosing still exists at this point.

Regards
/ Thomas
hi,, when i create organisation and group , two independent sites will create for org and group but
my requirement is to achieve merge organisation and group sites into a single site .. Is this possible in liferay 6.1..??

Please help me

Thanks in advance.
Hi Jorge,
Just been looking at the latest Liferay 6.2 beta. Looks very nice and i'm looking forward to upgrading when it's released. One thing that worries me is that even in this version I cannot find a way to connect an existing site to an organization. Has this been feature been abandoned? Seems you're adding support for hierarchical sites, what's the rationale behind this decision?

Regards
/ Thomas
Hey Thomas,

I'm glad you are liking 6.2.

Regarding not having added the ability to link an existing site to an org, you are right and I feel really bad about it. The only reason is that it fell off my radar and we haven't received much feedback asking for it so it didn't become a priority for Prod Management either.

I'll take a quick look tomorrow, but I doubt it will make 6.2, sorry.
Nice feature Jorge, I want to ask , can I make liferay construct and Organization structure on bydefault/startup. For example, in my case there is one organization on the first level, then on the second level there are 'n' organizations, then these 'n' organizations have 'n' children with users. So it is very difficult to make this whole structure through control panel, every time after Database refresh.
Thanks in advance.