Migrate from Branch
Move your existing Branch subdomain and links to Grovs without breaking old links.
If your Branch deep links run on a subdomain you control, such as old.acme.com, you can move that hostname to Grovs without breaking existing links. When someone opens an old Branch link, Grovs looks it up with your Branch key, recreates the matching Grovs link, and redirects the visitor to your branded URL. After the first click, that link is served straight from Grovs.
Migration requires an active paid subscription. If you start without an eligible plan, the dashboard prompts you to upgrade. Open Settings → Billing to subscribe.
This guide moves your existing Branch hostname and links. To send new deep links and capture attribution through Grovs, also add the Grovs SDK. See the SDK reference.
Your old links must be on a custom subdomain you control. Migration only works if your Branch links already run on a subdomain you can point via DNS, such as links.acme.com. Links on Branch's default *.app.link domain cannot be migrated. Grovs can only take over a hostname you control, so those old links will not resolve through Grovs.
How it works
After you point the old hostname at Grovs, every legacy link is resolved on demand:
The first visitor to open a given old link triggers the lookup. Everyone after that is served from the cache, with no call to Branch.
Before you start
- An active paid plan.
- A Branch subdomain you control, such as
old.acme.com, and access to its DNS settings. Migration works only for custom Branch subdomains, not the shared*.app.linkhost. - Your Branch key (see Finding your Branch key).
- An updated mobile build, shipped before you flip DNS.
Ship the new build before you flip DNS. Grovs serves its own Apple App Site Association and Android assetlinks on the migrated host, replacing what Branch served. If you point DNS at Grovs before your app trusts the new host, universal links and App Links open the browser instead of your app.
Migrate your Branch hostname
Open the Domain settings
In the dashboard, go to Link Behaviour → Domain and click Migrate from another platform.
Confirm the pre-flight checklist
If your iOS or Android SDK is integrated, Grovs asks you to confirm your app is ready:
- iOS: you've added
applinks:old.acme.comto your iOS Associated Domains entitlement and shipped a new build to the App Store. - Android: you've updated your
assetlinks.jsonsetup with the SHA-256 cert fingerprint and shipped a new Android build. - Your users have had time to update to the new build.
You can't continue until each item is checked.
Choose Branch and enter your key
Select Branch as the provider, then enter your Branch key (for example key_live_... or key_test_...). Grovs uses this key to look up the original Branch link when an old URL is opened, then creates the matching Grovs link before redirecting.
Enter the old hostname
Enter the Branch subdomain you're moving, for example old.acme.com. Grovs checks its current DNS and shows where it points today. Submit this before changing DNS. Grovs provisions SSL first, and traffic only moves once DNS points the host at Grovs.
Complete the DNS checklist
Grovs walks you through a three-part DNS checklist. Add each record at your DNS provider as it appears:
- Hostname ownership verified: add the ownership
TXTrecord if shown. - SSL certificate issued: add the SSL validation
TXTrecord(s). If an_acme-challengerecord already exists, replace its value or add another with the same name. - CNAME pointing to Grovs: add the
CNAMEonce SSL is active.
On Cloudflare DNS, set the CNAME to "DNS only" (gray cloud). If your domain's DNS is managed by Cloudflare, the CNAME pointing to Grovs must be DNS only (the gray cloud), not the orange Proxied cloud. A proxied (orange) record prevents the certificate from issuing and stops your links from resolving.
Grovs refreshes status automatically as DNS updates. Click Recheck to poll sooner.
SSL can take a few minutes to a few hours to issue, and Grovs keeps trying for up to 72 hours. If it doesn't issue in time, verify the TXT record is correct and start over to re-create the challenge.
Test credentials and flip DNS
Before moving traffic, use Test to confirm Grovs can reach Branch with your key:
- Credentials OK: you're ready.
- Credentials invalid: rotate them in Settings → Migration before flipping DNS, or old links stop resolving.
- Rate limited or unreachable: Branch is temporarily unavailable. Try again shortly.
When SSL is active and the test passes, update the CNAME record to point the old hostname at Grovs. Traffic moves gradually as DNS resolvers refresh.
Finding your Branch key
In the Branch dashboard, open Account Settings → Branch Key and copy the key. Use the key_live_... value for production.
Cutover at a glance
Managing and removing
Once migration is active, Link Behaviour → Domain shows Branch, the migrated hostname, and a green Active badge with the last verification time.
- Rotate credentials: if your Branch key changes, open Settings → Migration and use Rotate migration credentials. Grovs verifies the new key with Branch before saving.
- Remove migration: click Remove migration and confirm by typing the hostname. This removes the migration source and the legacy hostname from Grovs.
If DNS still points at Grovs after you remove the migration, old links stop resolving. Repoint or retire the hostname's DNS first. Removal also clears Grovs's cached link mappings. Links that were already recreated keep working, but every old slug hits Branch again on first click if you re-onboard later.
Lifecycle and billing
Migration is use-it-or-lose-it. If your subscription lapses, Grovs tears down the migrated hostname and clears the cached mappings. Recovery is a full re-onboarding with fresh credentials. Keep billing active for as long as you rely on migration.