One person, several ways in. Linking attaches an extra identity (a Google account, a GitHub account) to a user who already exists, so they can sign in with either and land in the same account with the same data. The person must be signed in. Starting the link takes them to the provider and back:
On return, getSessionFromUrl() reports { status: "linked", provider: "google" } and the identity is attached. The provider must be enabled under Social providers, and your return address allowed on the redirect list.
user.identities on the user object shows the same list.

Don’t lock people out

Before unlinking, make sure the person has another way in: a password, another identity, or an email they can use for codes or links. A good account page disables Unlink when only one method remains.

Events

identity.linked and identity.unlinked are emitted for webhooks.

Merging accounts

If someone accidentally made two accounts, linking can’t merge them. Choose the account to keep, move any records to its id (in the SQL editor, after a backup), and delete the other in Users.

Social sign-in

Set up providers.

Company sign-in

Enterprise identities.