> ## Documentation Index
> Fetch the complete documentation index at: https://developers.entri.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrating to Entri Unify

> Upgrade an existing Connect or Sell integration to the unified Unify flow.

## Overview

This page is for partners who already integrate Entri Connect, Entri Sell, or both, and want to move to the single `showUnify()` entry point. After migrating, you make one call and Entri presents the "buy a new domain" or "connect a domain" choice, then routes the user into the matching flow. You no longer maintain your own selection screen or the branching logic that decides which flow to open.

If you only ever offer one path, you don't need to migrate. `connectDomain()` and `purchaseDomain()` continue to work unchanged.

## Before you start

If your existing Connect or Sell integration works today, you already have everything you need to call `showUnify()`.

There are two ways to adopt Entri Unify.

<Tip>
  If you prefer to not make any code changes, you can force Unify on by navigating to your application settings and enabling **"Force Unify"**.
</Tip>

The rest of this page covers the other path: adopting `showUnify()` in your own code for full control over configuration and events.

Because the Unify config is a superset of the Connect and Sell configs, the keys you pass today remain valid. See the [configuration reference](/unify/configuration) for details.

## Migrating from a two-flow integration

If you currently show your own buy-versus-connect screen and call `connectDomain()` or `purchaseDomain()` depending on the user's choice, replace that logic with a single `showUnify()` call.

```js theme={null}
// Before: your UI decides, then you call one flow or the other
if (userChoseToBuy) {
  entri.purchaseDomain(sellConfig);
} else {
  entri.connectDomain(connectConfig);
}

// After: Entri presents the choice and routes internally
entri.showUnify({
  ...sharedConfig,
  // Connect and Sell keys both live in this one object
});
```

Once migrated, you can remove your selection UI and the conditional that branched between the two flows.

## Migrating from a single flow

If you call only `connectDomain()` or only `purchaseDomain()` today and now want to offer both paths, move your existing config into a `showUnify()` call and add the keys for the second flow. There are no Unify-specific keys to learn. You combine the same Connect and Sell keys you already know into one object.

For example, a Connect-only integration adding the buy path:

```js theme={null}
// Before: connect-only, your existing connectDomain() call
entri.connectDomain({
  applicationId: "YOUR_APPLICATION_ID",
  token: "GENERATED_JWT",
  dnsRecords: [
    // ...records applied after the user connects their domain
  ],
});

// After: same Connect keys, plus the Sell keys for the buy path
entri.showUnify({
  applicationId: "YOUR_APPLICATION_ID",
  token: "GENERATED_JWT",
  dnsRecords: [
    // ...same records, applied whether the user connects or buys
  ],
  // ...add the Sell keys you would pass to purchaseDomain()
});
```

A Sell-only integration adding the connect path works the same way in reverse: keep your `purchaseDomain()` keys and add the Connect keys for the existing-domain path.

## Monitoring after migration

Moving to `showUnify()` changes one default: every domain that completes the flow is automatically added to [Entri Monitor](/monitor/overview). With `connectDomain()` or `purchaseDomain()`, monitoring required `monitor: true` in the config. With `showUnify()` it is included, so you can drop that flag from the config you carry over. If you don't want the domains monitored, pass `monitor: false` instead.

## Events after migration

Existing event listeners keep working. The chosen flow fires the same Connect or Sell browser events and webhooks as before, and Unify adds one new `onEntriPathSelected` event for the selection step. See [Unify events](/unify/events).
