TotalApp Docs

Authentication

How TotalApp recognizes you across sign-in methods — which providers link automatically to your existing account, and which stay separate on purpose.

Overview

You can sign in to TotalApp with an email and password, or with a third-party provider like Google, GitHub, GitLab, Bitbucket, or LinkedIn. Behind the scenes, TotalApp needs to decide whether a sign-in belongs to an account you already have, or whether it should create a brand-new one.

To make that decision safely, TotalApp uses a concept called a canonical user ID — the same idea used by many major platforms (for example, Render.com describes an almost identical pattern in its own documentation). In plain terms: if you already have an account under the email you@example.com — whether you created it with a password or by signing in with Google — and you later sign in with GitHub using that same, verified email address, TotalApp links you to your existing account instead of creating a duplicate one. You keep the same tenant membership, the same role, and the same data — no matter which provider you used that day.

Providers that link automatically by verified email

The following sign-in methods are treated as the same identity whenever the provider confirms the email address is verified:

Google

Signing in with Google links to your existing account if the email matches and Google reports it as verified.

GitHub

Signing in with GitHub links to your existing account if the email matches and GitHub reports it as verified.

GitLab

Signing in with GitLab links to your existing account if the email matches and GitLab reports it as verified.

Bitbucket

Signing in with Bitbucket links to your existing account if the email matches and Bitbucket reports it as verified.

LinkedIn

Signing in with LinkedIn links to your existing account if the email matches and LinkedIn reports it as verified.

This means you can move freely between these five sign-in methods — sign in with Google today, GitHub tomorrow, LinkedIn next week — and always land in the same account, with the same tenant and role, as long as the email address matches and the provider marks it as verified.

Example: You create your TotalApp account today by signing in with Google using jane@company.com. Next month, on a new laptop, you sign in with GitHub — and your GitHub account also uses the verified email jane@company.com. TotalApp recognizes this as you, and signs you straight into your existing account, tenant, and role. No new account is created, and nothing needs to be re-invited or reassigned.

Integrations that stay separate on purpose

Not every connected provider is merged into your personal login by email. Two integrations are always kept as their own, separate connection — even if the email happens to match one of your other logins:

Integration Why it stays separate
Shopify Shopify represents a shop (store) identity, not a personal login. The email on file for a Shopify store is the store owner's contact email, which could coincidentally match a completely different person's TotalApp account. Because of this, Shopify sign-in is always kept as its own independent integration and is never merged into another account by email.
Slack Connecting Slack to TotalApp requests workspace-level permissions (the ability to post messages and interact with channels on your workspace's behalf) — this is different from a simple "Sign in with Slack" identity check. Because it grants access to an entire workspace, Slack always requires its own explicit authorization from you and is never silently merged into another login by email.
What this means for you: Connecting Shopify or Slack never automatically logs you into (or merges data with) any other TotalApp account, even one that shares the same email address. Each of these stays a distinct, explicitly authorized integration.

Why TotalApp only merges on a verified email

Linking accounts by email is only ever done when the sign-in provider itself confirms that the email address has been verified — meaning the provider has already checked that the person signing in actually controls that inbox.

This check matters for a simple reason: on some services, a person can type in any email address without ever proving they own it. If TotalApp linked accounts based on an unverified email, someone could type in your email address on a provider that doesn't check ownership, and potentially gain access to your tenant membership or role simply by claiming your address — without ever receiving a confirmation link or proving they control your inbox.

By strictly requiring the provider's own verified-email flag before linking, TotalApp ensures that only the real owner of an email address — who has already proven that ownership to the identity provider — can be linked into an existing account.

In short: Verified email match → same account, same tenant, same role. Unverified or non-matching email → a new, separate account is created. This is the same safety principle used by other major SaaS platforms that support "sign in with multiple providers."

Frequently Asked Questions

I signed up with a password. If I later sign in with Google using the same email, will that create a second account?
No. As long as Google reports your email as verified and it matches the email on your existing password-based account, TotalApp links the Google sign-in to that same account instead of creating a new one. Your tenant, role, and data all stay exactly as they were.
I use Google for my personal email and GitHub for work — can I use both on the same TotalApp account?
Yes, as long as both providers report the same verified email address. If your Google and GitHub accounts use different email addresses, signing in with each one creates or accesses two separate TotalApp accounts, since TotalApp has no way to know they belong to the same person unless the email matches.
Why doesn't connecting Shopify log me into my existing TotalApp account, even though the store email matches?
Shopify identities represent a store, not a person — the store's contact email could belong to an employee, an agency, or anyone managing that shop, and might coincidentally match someone else's personal email. To avoid accidentally granting store access to the wrong person's account, Shopify connections are always kept separate and are never merged by email.
Why does Slack need to be connected separately instead of just working like Google or GitHub sign-in?
Signing in with Google or GitHub only confirms who you are. Connecting Slack is different — it grants TotalApp permission to act inside your Slack workspace (for example, posting messages to channels). Because that's a much bigger grant of access than a simple identity check, Slack always requires you to explicitly authorize it, and it is never auto-merged into another login just because the email matches.
What happens if my email address isn't verified with a provider?
If the provider does not report your email as verified, TotalApp will not link that sign-in to any existing account by email — a new, separate account is created instead. This protects you: it means no one else can claim your existing tenant membership or role just by entering your email address somewhere that doesn't check ownership of it.