Quick question. When creating a multi tenant application is it possible to:

a) deploy each tenant on a unique domain or subdomain?
b) ... and if not, can a tenant bind to a unique 3rd party domain?

Use case: multi tenant SAAS web CMS and business intelligence tool.

Hi Brian,

a) No. What is deployed are modules with screens, entities, logic, etc and those are the same in every tenant. 

b) Never tried, but with a bit of effort I would say that it is possible:

  • In the Login Screen Action in the Login Screen, after the User_Login Action call, just logout the user if he did not came from the right domain.
  • You can also change the Login Screen Action in the Login Screen to redirect to the right domain depending on the TenantId (but this will kill the session and you would have to have some kind of token to automatically login the user in the new domain)
  • Besides the above, you can also use SEO Rules to redirect the user to different login screens depending on the domain that the user is requesting.



Thanks Jose

So, for the sake of clarity:

1. a multi tenant user is restricted to operating on a fixed domain? So they will always have to login to https://www.awesomeapp.com? The tenant cannot be set up to use a unique domain like https://www.client1.com or wildcard domains thus: https://client1.awesomeapp.com ?

2. Sorry, think my language is not correct in describing this. If client1 has a website at www.client1.com, can a OutSystems CMS app manage content on it through administering the site on one of the above domains?

I'm have seen it written that OutSystems can be used as a SAAS, but don't see how without some form of unique differentiation of the domains on which they operate for the serviced clients.

Hi Brian,

The applications are deployed in one environment. That's it!

But that environment can be accessed using different domains. Its just a matter of configuring the domains to point to the ip of the environment. Thus, you can access the same pages using different domains.

But they are the same pages for different environments. That is why I was suggesting you checking in your logic if the user is accessing its domain.



"...checking in your logic..." = This is a pre pre sales question. No point in considering OutSystems for us if the basic business need can't be met. 

Not sure if you have answered this question fully though... simply put, is it possible to associate a domain with a tenant, rather than the deployed environment? If the environment is capable of only using a single domain on the server then I assume not. This is strange as the notion of SaaS is that the customers are ring fenced (which they can be using the tenant function) and have the ability to operate on a separate domain (which seems not to be possible but which is a central element of Saas)

Hi Brian,

I'm not trying to sell you anything. :)

It's possible to "associate" a domain with a tenant but only by using logic as I described above.

Associating multiple domains with one environment, of course it is possible. But that is not an OutSystems issue. It's a domain registar configuration issue and probably a router/IIS issue at your installation.



Thanks for your input Jose, but its clearly a sales or account management staff member I need to talk to.

Brian, if I may, there is a master class video that might give you more information here: https://youtu.be/b-yG6hQ7hdk?t=1889

The video explains how OutSystems handles multi-tenancy, and also how you can implement distinct URLs per tenant.