GoDaddy-Hosted Office 365 to Microsoft O365 Migration Supplemental Guidance

BitTitan does support migration from or to GoDaddy-hosted Office 365 environments. To perform a mailbox-only migration, simply follow the GoDaddy-Hosted Office 365 to Microsoft O365 (Exchange Online) Mailbox Migration Guide (or any guide including Office 365 as an endpoint) and use your regular GoDaddy admin credentials in your MigrationWiz endpoint creation. 

Consider that some additional steps are required at the source to migrate from GoDaddy OneDrive for Business, SPO classic team sites, Office 365 unified groups, or Microsoft Teams. This guide is intended to be used in correlation with the proper migration guide, not as a stand-alone document.


The proposed domain guidance is based on GoDaddy Service as of 10/14/2022.

Migration Steps

Before the beginning, there are some steps you may wish to take. More details are provided in your scenario-specific migration guide. 

  1. Get started for free with a BitTitan account here.​
  2. Purchase User Migration Bundle licenses for user mailboxes and Office 365 Groups.
  3. Purchase MigrationWiz-Mailbox Licenses for non-user (shared, room, and equipment) mailboxes.
  4. Purchase Shared Document Licenses for SharePoint Online Document Libraries for classic SharePoint Online sites and Microsoft 365 Group sites
  5. Purchase MigrationWiz-Collaboration Licenses for Microsoft Teams if those are being migrated.​

Set Up Admin Credentials

Regular GoDaddy credentials will not work in these environments. Use the account the GoDaddy tenant comes with as the service account.

  1. Log in to the Microsoft Azure portal with your GoDaddy admin credentials to find this account.
  2. Click on the account and choose "reset password."


If you are not performing a Microsoft Teams migration, proceed directly to the endpoint creation steps mentioned below.

Microsoft Teams Migrations Only

To migrate Microsoft Teams, you must assign a Teams license from a donor user to the account. The only way to do this is via PowerShell by following the steps below. 

  1. Create a donor user from the GoDaddy portal.
  2. Purchase a GoDaddy Office365 license and assign it to the donor user just created.
  3. Once the donor account is licensed and set up, strip the license from the donor user and apply it to the account discovered above, via PowerShell.
  4. Install the Az Module running the following script in PowerShell:
    Install-Module Az.Accounts -RequiredVersion 2.12.1 -AllowClobber -Scope AllUsers

    PowerShell AZ.Accounts Module Version

    Please keep in mind that the required PowerShell AZ.Accounts module version is 2.12.1. Please take a look at the following information in case you do not have this version. 
    • If you have a previous version, run the following cmdlet to upgrade it.
      if((Get-InstalledModule -Name Az ).Version.Major -le 10){
      Install-Module AZ -Force -Confirm:$false -AllowClobber

    • If you have a 2.12.3 version or above, the command "connect-azaccount" fails with the error "Method 'get_SerializationSettings' in type.". 
      This is a Microsoft-known issue, for more information, please refer to this article.
      As a workaround, run the following script that removes the latest version of Az.Accounts and installs the supported version.
      if ((Get-module -Name Az.Accounts).Version -ge "2.12.2")
           Uninstall-Module Az.Accounts -AllVersions -Force -Verbose  
      Install-Module Az.Accounts -RequiredVersion 2.12.1  -AllowClobber -Scope AllUsers
      else {
      Install-Module Az.Accounts -RequiredVersion 2.12.1  -AllowClobber -Scope AllUsers

  5. Run the following cmdlet to strip the license from the donor user. Replace and with your credentials as outlined above.
    Install-Module Microsoft.Graph -Force -Confirm:$false -AllowClobber
    Import-Module MSOnline

    $credential = Get-Credential
    Connect-MsolService -credential $credential
    Connect-AzAccount -credential $credential
    $token = (Get-AzAccessToken -ResourceTypeName MSGraph -ErrorAction Stop).token
    $token = ConvertTo-SecureString $token -AsPlainText -Force
    Connect-MgGraph -AccessToken $token -NoWelcome -ErrorAction Stop

    $donorUser = ''
    $admin = ''

    $donorMsolUser = Get-MsolUser -UserPrincipalName $donorUser
    $donorMsolUserLicense = Get-MgUserLicenseDetail -UserId $donorUser
    $msolUserAccountSkuID = $donorMsolUserLicense.skuid

    Set-MgUserLicense -UserId $UPN -AddLicenses @() -RemoveLicenses @{SkuId = $msolUserAccountSkuID
  6. Assign the license to the migration service account.$addLicenses = @(
    SkuId = $msolUserAccountSkuID
    Set-MgUserLicense -UserId $userPrincipalName -AddLicenses $addLicenses -RemoveLicenses @()


Please consider the following information for all migration guides.

Create the appropriate endpoint for your source in MigrationWiz, as directed in your migration guide. Each endpoint has its required steps and information, but in place of admin credentials, enter the account and password information you just created.


GoDaddy support will not release your domain from their tenant until they delete all your user accounts and all the other objects with their data. ​

This means you must 100% complete your migration with MigrationWiz before asking GoDaddy support to release your domain.

The following processes must be completed before asking for a domain release. These steps are outlined in your scenario-specific migration guide. 

  1. Pre-stage migration pass in MigrationWiz.
  2. Full (delta) migration pass in MigrationWiz.

Once you have confirmed that all your data has been transferred successfully, and have verified that there are no outstanding errors, begin the domain removal process:

  1. Call GoDaddy support for user account deletion and domain removal. 
  2. This will begin the process of deleting all the information. Be sure your migration has been completed successfully before initiating this process.

Manually Delete the Domain Without Deleting User Accounts

Instead of having GoDaddy release the domain, you can perform this process manually at your own risk. Please consider that BitTitan Support does not support GoDaddy domain changes. 

  1. Run the pre-stage migration pass in MigrationWiz​ as directed in your migration guide.
  2. Remove the domain from GoDaddy with the cmdlets below after removing the domain from all tenant objects.
  3. Run a full (delta) migration pass in MigrationWiz​ as directed in the migration guide.

Remove Federation with GoDaddy​

Import-Module MSOnline​ Connect-MsolService
$domain = "" 
Set-MsolDomainauthentication –Authentication Managed –DomainName $domain ​

Remove your Domain From All the Msol Objects​

$goDaddyTenantDomain = @((Get-MsolDomain |?{$_.Name -match '' -and $_.Name -notmatch '.mail.'}).Name)​

$msolUsersWithDomain = @(Get-MsolUser -All | ? {$_.UserPrincipalName -match $domain})​

This is an example of how the UPNs can be renamed for you to build your own PowerShell script:​

$msolUsersWithDomain | % {Set-MsolUserPrincipalName -ObjectId $_.objectId -NewUserPrincipalName ($_.UserPrincipalName.Split("@")[0]+ "@" +$goDaddyTenantDomain);}$msolUsersWithDomain = @(Get-MsolUser -All | ? {$_.UserPrincipalName -match $domain})​

If this is an Exchange migration, the domain must be deleted from all Exchange Online recipients before you can delete the domain yourself.​

Remove Your Domain From All the Exchange Online Recipients ​

In the Exchange Online PowerShell interface, run the following:

$exoRecipientsWithDomain = @(Get-Recipient -ResultSize Unlimited | where {$_.PrimarySmtpAddress -match "$Domain" -or $_.EmailAddresses -match "$Domain"} | select PrimarySmtpAddress,EmailAddresses,RecipientType,RecipientTypedetails | Sort-Object -Property RecipientType,RecipientTypedetails)​
$EmailAddressToDelete  = ($primarySmtpAddress -split "@")[0]+"@"+$Domain​
$newEmailAddress = ($primarySmtpAddress -split "@")[0]+"@"+$goDaddyTenantDomain​

This is an example of how an email address with the domain can be removed from the mailbox and the new email address with the GoDaddy tenant domain can be added:​

Set-Mailbox $PrimarySmtpAddress -EmailAddresses  @{remove="SMTP:$EmailAddressToDelete"} ​

Set-Mailbox $PrimarySmtpAddress -EmailAddresses  @{add="SMTP:$newEmailAddress"} 

Remove Domain From GoDaddy

Remove-MsolDomain -DomainName "" –Force

Was this article helpful?
1 out of 2 found this helpful