The new multi-tenancy feature in WorkflowFirst allows you, with a simple flip of a switch, to easily isolate what users see based on organizational units they subscribe to. Multi-Tenancy is a simple but effective way to secure your application and sandbox your users.

An Org Unit can be any hierarchy of categories that you choose. For example companies, departments, and groups. Or another example could be Building, Floor and Room.

Once enabled, an administrator will set up these org units in a central place in the app. Then each user will be subscribed to a particular level in that hierarchy (one or more can be selected). Once that user logs in, they will then only be able to see entries that are assigned that org unit or deeper.

For instance, imagine you have a list of tasks on a Tasks tab. One of these tasks (eg. Task A) may be assigned the org unit "Accounting". Another (Task B) may be assigned the org unit "Accounting / Auditing Group".

Now imagine a user called Henry who is subscribed only to "Accounting / Auditing Group". He will only be able to see Task B.

However if you had another user, say "manager", who is subscribed to "Accounting", he will be able see Task A and Task B.

And when that user, Henry, adds a task, it will automatically be assigned to what they're subscribed to - so in this case "Accounting / Auditing Group". This means that both him and his co-workers will be able to see those tasks, and his manager who will be subscribed to the "Accounting" org unit.

The Multi-Tenancy feature automatically applies this filtering to all top-level types in your application. It adds an area under the user to manage their subscriptions, it adds the org unit hierarchy on the Confinguration tab, and it adds a special action to each tab that allows an administrator to make sure a record is visible to a selected user.

It's also pretty customizable, allowing you to name the general org unit (eg. Departments or Facilities), which will be reflected whereever the org unit is selected in the application.

As the name suggests, this feature can also be used to create a multi-tenancy system where multiple companies use the same application but only see data related to their own company. This can be useful if you provide your application as a service to multiple clients but don't want a separate server for each.

In the rest of this section we'll discuss how the Multi-Tenancy feature is used.