# Start here: one-time setup (/docs/embed/one-time-setup)

Three things, once: two in your Happierleads dashboard, then one script on your server for the clients you already have.

<Tabs items={['Diagram', 'API calls']}>
<Tab value="Diagram">

<EmbedFlow only="setup" />

</Tab>
<Tab value="API calls">

### 1. White label: your domains + DNS records [#1-white-label-your-domains--dns-records]

In your dashboard: **Account settings → White label → Start setup**, add the two CNAME records, Verify. No API call. Step by step: [One-time setup](/docs/embed/setup#1-put-the-screens-on-your-domain).

### 2. Embed in your app: switch on, create keys [#2-embed-in-your-app-switch-on-create-keys]

In your dashboard: **Account settings → White label → Embed in your app**: tick *Allow my app to embed these screens*, add your app's addresses, [choose what your users see](/docs/embed/what-users-see), create the embed key (`HL_EMBED_KEY`). Then **Account settings → API Keys** for the master key (`HL_MASTER_KEY`).

### 3. One-off: a website for every existing client [#3-one-off-a-website-for-every-existing-client]

The same calls as [a client signing up](/docs/embed/client-signs-up), for each client you already have. The full script, with a dry run: [Bring your existing clients across](/docs/embed/existing-clients).

**3a.** Create their website:

<ApiPlayground method="post" path="/admin/websites" tool="" args={`{ "name": "Acme Ltd", "domain": "acme.example" }`} />

**3b.** Save the `websiteId` on that client in your database, then their leads:

<ApiPlayground method="put" path="/admin/websites/set-limits/{websiteId}" tool="" args={`{ "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9", "credits": 2000, "emailAccounts": 5 }`} />

**3c.** Paid clients go to paid with their next billing date (trial clients: `trialEnabled: true` and their trial's end date instead):

<ApiPlayground method="put" path="/admin/websites/toggle-limits/{websiteId}" tool="" args={`{ "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9", "trialEnabled": false, "activeWebsite": true, "enableWebsiteLimits": true, "refreshOnDate": "{{days:30}}" }`} />

</Tab>
</Tabs>

**Next:** [Scenario 1: a client signs up](/docs/embed/client-signs-up).
