# Crossdeck for Wix

> Source: https://cross-deck.com/docs/wix/ · Crossdeck developer docs (generated from the published page).

Setup
One-click App Market install · identity, custom domain, revenue
·
~5 min read
·
Updated August 5, 2026

Everything from install to identity to revenue — in one click. Install **Crossdeck** from the **Wix App Market** and it provisions your project and keys, then injects the Crossdeck web SDK **site-wide** via Wix's Embedded Scripts API — so page analytics, journeys, and front-end error impact start flowing with **no code and nothing to paste**. If your site runs **Wix Stores**, paid orders also flow in as **revenue** automatically. This doc covers each step, plus the parts that need a decision from you: **identity** for logged-in Wix Members, **a custom domain**, and how **Wix Stores revenue** joins the same identity graph.

One click — no snippet, no keys to copy.

Unlike the paste-in connectors, Wix installs from the **App Market**. On install, Crossdeck creates your project + keys for you and injects the SDK loader into your site's ` ` site-wide. There is nothing to paste and no key to fill in — the loader carries only your project's publishable, ingest-only key.

## TL;DR

- **Install from the App Market.** Add **Crossdeck** to your Wix site — from the [Crossdeck dashboard](https://app.cross-deck.com/integrations) (**Integrations &rarr; Wix &rarr; Connect**, which opens the Wix install), or by finding **Crossdeck** in the Wix App Market. One click.

- **Provisioning is automatic.** On install Crossdeck creates your **project + app + keys** and injects the web SDK site-wide. Nothing to copy, no environment to pick — it's derived from the key.

- **One install = one project.** Re-opening the app from your Wix account reuses the *same* Crossdeck project — it never mints a duplicate.

- **Verify from the first real visit.** Publish the site, open it, click around, then watch a live visitor land in **Overview** / **People**. That first heartbeat also locks your Allowed Origins.

- **Custom domain = one 20-second step.** The origin lock happens on the first heartbeat, so a custom domain added later must be added to your [Allowed Origins](https://cross-deck.com/docs/allowed-origins/index.html) yourself.

- **Identity for Members is opt-in.** Public pages are anonymous by default. To turn logged-in **Wix Members** into known people, add a short **Velo** snippet that passes the member's email to `identify()`.

- **Wix Stores revenue is automatic.** If you run Wix Stores, paid orders book as **revenue** in Crossdeck (normalized to USD), refunds reverse them, and it all counts toward your billing — no extra setup.

## What the connector does

Installing Crossdeck from the Wix App Market does two things. First, it loads the Crossdeck web SDK on **every page** of your Wix site — so page analytics, journeys, and front-end error impact start flowing with no per-page setup. Second, if your site runs **Wix Stores**, it books each **paid order** as revenue. Because Crossdeck joins **identity, revenue, errors, and analytics** on one identity graph, you can answer questions no single-layer tool can — for example, *&ldquo;which paying customers hit this error last week,&rdquo;* or *&ldquo;which campaign brought the visitors who actually bought.&rdquo;*

The injected loader carries only your **publishable key** (`cd_pub_`, ingest-only) — it cannot read or change your Crossdeck account. It is clean and safe by construction: the environment is derived from the key prefix (`cd_pub_test_` = sandbox, else production) so it can never be wrong, and an unreachable CDN is swallowed rather than surfaced.

## Step 1 — Install

There is nothing to paste. Pick either route — both land in the same place:

### A. From the Crossdeck dashboard

- Open [Integrations](https://app.cross-deck.com/integrations) in the Crossdeck dashboard.

- Under **Website & No-code**, choose **Wix**, then click **Connect**. This opens the Wix App Market install for the Crossdeck app.

- Confirm the install on Wix. Crossdeck provisions your project + keys and injects the SDK, then returns you to the dashboard with the connection live.

### B. From the Wix App Market

- In your Wix site's dashboard, open the **App Market** and search for **Crossdeck**.

- Click **Add to Site** and confirm. Crossdeck creates your project + keys, injects the SDK site-wide, and links the install to your Crossdeck account.

One install, one project — guaranteed.

Each Wix site maps to exactly one Crossdeck project. Re-opening the app from your Wix account (or Wix re-firing the install) always reuses that same project — the connector reserves it atomically, so it never creates a duplicate.

No secret keys, ever.

The injected loader holds **only** your publishable, ingest-only key (`cd_pub_`). A secret or workspace key (`cd_sk_` / `cd_wk_`) is never placed in your Wix site. All provisioning happens on the Crossdeck engine.

## Step 2 — Verify it's working

**Publish the site**, open it, and click around. Crossdeck's first heartbeat **auto-learns your site's origin**. Then open the Crossdeck dashboard &rarr; **Overview** / **People** — you'll see a live visitor with geo, and the pages they viewed. (Data begins from the **first real visit** — that first heartbeat also locks your Allowed Origins to that domain.)

Nothing showing yet?

Check that the app still shows as **installed** on your Wix site, that you **published** (not just previewed), and that the environment you're viewing in the dashboard matches the app. The first heartbeat can take a few moments.

## Step 3 — Custom domain

When you connect or add a custom domain, add it to your Allowed Origins — 20 seconds, and it pulls you into the dashboard:

&rarr; [Add a domain to your Allowed Origins](https://cross-deck.com/docs/allowed-origins/index.html)

The origin lock happens on the first heartbeat — then it locks.

A Wix site first served on its `*.wixsite.com` address learns *that* origin on its first heartbeat. It will **not** auto-learn a custom domain you connect *later* — add the custom domain to your Allowed Origins yourself, or traffic from it won't be accepted.

## Step 4 — Identity (Wix Members, opt-in)

Analytics works anonymously out of the box. To turn logged-in **Wix Members** into **known people**, pass the member's email to Crossdeck with a short **Velo** snippet. Velo (Wix's dev platform) exposes the current member; hand their email to `identify()` once per page:

```
// Velo — site code (Public & Backend → Public, or a page's code panel).
// Requires Dev Mode (Velo) enabled on the site.
import { currentMember } from 'wix-members-frontend';

$w.onReady(async () => {
  try {
    const member = await currentMember.getMember();
    const email = member && member.loginEmail;
    const CD = window.Crossdeck && window.Crossdeck.Crossdeck;
    if (email && CD && typeof CD.identify === 'function') {
      CD.identify(email, { email });   // joins this visitor to the person
    }
  } catch (e) { /* not logged in / no member — stay anonymous */ }
});
```

Absent a logged-in member (a normal public visit), `identify()` is never called and analytics simply stays anonymous — nothing to configure and nothing that errors.

Why email is the anchor.

Crossdeck keys identity on **email** — the no-backend join rail — so the member email you pass to `identify()` is what joins this visitor to the same person across revenue (including their Wix Stores orders), errors, and analytics. (See [How identity works](https://cross-deck.com/docs/how-identity-works/index.html) for the full model.)

## Step 5 — Revenue (Wix Stores, automatic)

If your site runs **Wix Stores**, revenue needs **no extra setup**. The Crossdeck app listens for Wix order events, and for each one reads the **authoritative order** from Wix and books it:

- **Order paid** &rarr; recorded as revenue, normalized to **USD** from the order's own currency, and joined to the buyer (by email) so it lands on the same person who browsed.

- **Order refunded** &rarr; the revenue is reversed (full or partial), keeping your totals honest.

Wix Stores revenue shows up in the dashboard's **Revenue** surface alongside every other rail, and counts toward your Crossdeck billing just like Stripe or Apple revenue — one portfolio, every rail.

Want app-store or subscription revenue too?

Wix Stores covers your storefront. To bring in **Stripe**, **Apple**, or **Google** revenue as well, connect those rails in **Developers &rarr; Rails** — all of it joins the same identity graph as your analytics and errors.

## How this differs from the other connectors

- **Wix** (this): **one-click App Market install** &rarr; project + keys auto-created &rarr; SDK injected site-wide, plus **Wix Stores revenue** booked automatically. Identity for logged-in Members via a short **Velo** snippet.

- **Webflow:** one-click OAuth marketplace install &rarr; account + project auto-created &rarr; SDK injected. Identity via a `data-crossdeck-identify-email` binding.

- **Framer:** add a **Custom Code** snippet via **Settings &rarr; Code** and edit two values (no marketplace app). Identity best-effort via `data-crossdeck-identify-email`.

- **WordPress:** install the plugin. Identity is **automatic** — a server-side login hook resolves the signed-in user for you.

- **Bubble:** add the plugin and paste your **Publishable key** + **App ID**. Identity via the **&ldquo;Crossdeck – Identify user&rdquo;** workflow action.

Every connector loads the **same** Crossdeck SDK and feeds the **same** dashboard — only the install, identity binding, and (for Wix) built-in store revenue differ per platform.

Crossdeck for Wix — one-click Wix App Market install (project + keys auto-provisioned, SDK injected site-wide via Embedded Scripts), one install per site, environment derived from the key prefix, custom-domain add via [Allowed Origins](https://cross-deck.com/docs/allowed-origins/index.html), opt-in Member identity via a Velo `identify()` snippet, and automatic Wix Stores revenue (paid + refunded, normalized to USD) on the shared identity graph (August 5, 2026). Related: [Identify users](https://cross-deck.com/docs/identify-users/index.html), [Connect Stripe](https://cross-deck.com/docs/connect-stripe/index.html).
