Migrate

Move to workwae without starting over

Bring the mailboxes you already connect, and keep the consent users gave wherever you hold their grants.

Your own OAuth app

Import the refresh tokens you already hold.

Register your app with the same client id and secret, then create one account per refresh token.

  • Microsoft apps per cloud. One app per Microsoft cloud, GCC High and DoD included.
  • One call per account. Syncing starts at once, announced with account.connected.
  • Shared mailboxes. Tokens with Mail.ReadWrite.Shared open the user's shared mailboxes.

How connecting works

import.ts
// Once per user, with the token your own app holds
const account = await workwae.accounts.create({
  provider: "google",
  refreshToken,
  oauthAppId: googleApp.id, // your app, registered in the workspace
  externalRef: user.id,
});
IMAP with passwords

Create IMAP accounts from the credentials you hold.

The login is checked before anything is stored, and the password is sealed with keys held in Vault.

  • Servers discovered. IMAP and SMTP servers are found from the address.
  • Calendars and contacts too. Add CalDAV and CardDAV settings to sync them.

IMAP guide

imap.ts
const account = await workwae.imapAccounts.create({
  email: "sam@example.com",
  password: appPassword,
  externalRef: user.id,
});
Another email API

Switching from another provider.

  1. Take stock

    List accounts by provider and whose OAuth app issued each grant.

  2. Import what you can

    Import grants from your own app if your provider hands over the refresh tokens, and password IMAP accounts.

  3. Reconnect the rest

    Everyone else signs in once through hosted connect, then you switch your product to the workwae API.

Compare capabilities first on How workwae compares.

Migrate

Tell us where your accounts live today.

We will plan the move with you, path by path.