White-label AI support: reseller setup guide
Evoriqa Team · July 25, 2026 · 10 min read

When you resell AI support, the product your clients log into should be *yours*: your name in the header, your logo on the login page, your domain in the address bar, and your name on every email it sends. That's the whole point of white-label: you own the relationship, you set the price, and the platform stays invisible.
This is the end-to-end setup guide. By the end you'll have a reseller plan running, a fully branded portal on your own domain, transactional email leaving your own provider account, and your first client workspace provisioned with credits and sensible caps. If you want the business case first, start with how agencies add a revenue line with white-label AI support and come back here to build it.
What you'll need
- A Evoriqa account where you're the organization owner: branding, domain, and email settings are owner-only, so one client's admin can never rebrand your whole operation
- A subdomain you control, like
support.youragency.com - An account with an email provider (Resend, SendGrid, Mailgun, Postmark, Brevo, Mailjet, SparkPost, Amazon SES, or any SMTP server)
- About an hour, most of it waiting for DNS
Step 1: Subscribe to a reseller plan
Open Reseller in the dashboard sidebar, pick a tier, and click Start reselling. Checkout runs through Stripe and your pooled credits are granted the moment the first invoice is paid.
Each tier is a flat monthly fee that buys three things: a pooled credit allowance your clients draw from, a number of client seats, and an org-wide knowledge-source allowance. Tiers scale from Freelancer up to Enterprise, which carries unlimited seats. The current tiers and prices are on the pricing page.
Two details worth knowing up front. Seats count resold clients only. Your own workspace never consumes one, so a tier's seat count is a true count of clients besides yourself. And white-label features (branding, custom domain, your own email sender) are tied to holding an active reseller plan; you manage or cancel the subscription anytime through the billing portal, and if you ever let it lapse your saved branding is kept and your domain claim is held through a 30-day grace window, so re-subscribing restores everything instantly. While lapsed your existing clients keep serving, but client management pauses — no new clients, no deletes, no credit moves, no new knowledge sources — until you re-subscribe.
Step 2: Brand the portal
Go to Settings → Branding. This is org-wide. Every client workspace under you inherits it.
- App name: replaces "Evoriqa" across the dashboard and in email subjects and footers
- Logo: upload it right there (up to 1 MB); no need to host the file yourself
- Accent color: your brand color, applied across the portal chrome
- Support URL: where your clients' "help" links point (your site, not ours)
- "Powered by" badge: turn it off; nothing on the page says Evoriqa
- Email from-name and reply-to: the name your clients see on every message, and where replies land
Once saved, the brand renders everywhere your clients look: the logged-in dashboard, the login and sign-up pages, and the transactional emails. One separate knob to remember: the chat widget your clients embed on *their* sites is branded per chatbot, on each bot's Appearance tab, so every end customer sees the right business, not your agency.
There's also a Reset action if you ever want to return the styling to defaults. It deliberately clears *styling only*. Your custom domain and email delivery settings survive, so a cosmetic do-over can never break a live domain or your deliverability.
Step 3: Put it on your own domain
A branded portal on app.evoriqa.com still isn't yours. Settings → Custom domain fixes that, and the platform does the verifying for you:
- 1Claim the hostname. Enter the bare domain:
support.youragency.com. The app issues a verification token and the card lists the two DNS records to publish, each with a copy button. - 2Publish both records at your DNS provider. A CNAME from your hostname to the platform front door,
whitelabel.evoriqa.com, and a TXT record at_sw-domain-verify.support.youragency.comwith the token as its value. The TXT proves you own the name — only a proven domain ever resolves to your brand, so a rival can't claim your hostname and hijack your look. - 3Watch it go live. There's nothing to submit: the platform re-checks DNS every couple of minutes and the card's status badge climbs on its own as each record lands. HTTPS is issued automatically once traffic routes — no proxy, no certificate, no TLS work on your side. (A Check now button forces an immediate re-check if you're impatient.)
From then on, everything pre-login on that host (the sign-in page your clients bookmark, the password-reset pages they land on) carries your brand. (Logged-in clients see your brand regardless of hostname, because the dashboard themes by organization.)
A few troubleshooting notes from the field:
- "Verification record not found yet": TXT propagation can lag, especially with a high registrar TTL. Check with
dig TXT _sw-domain-verify.support.youragency.com— the automatic re-check picks the record up as soon as it propagates, or click Check now to force one immediately. - "That domain is already in use": another organization holds a claim on it. Recently abandoned, never-verified claims are released automatically after a grace period; otherwise pick a different hostname.
- Apex domains (
youragency.comwith no subdomain) can't take a CNAME. DNS rules, not ours. Use your DNS provider's ALIAS/ANAME or CNAME-flattening record, or stick with a subdomain.
Step 4: Send email from your own provider
Out of the box, verification emails, team invites, lead notifications, and weekly digests are delivered by the platform sender, with your from-name and reply-to from Step 2. For full white-label — mail that authenticates against *your* domain from *your* provider account — take over delivery in Settings → Email delivery:
- 1Pick your provider preset (Resend, SendGrid, Mailgun, Postmark, Brevo, Mailjet, SparkPost, or Amazon SES) and paste that provider's credentials. The form pre-fills the host and username for you; there's a Custom SMTP option for anything else, with the standard submission ports to choose from. Credentials are encrypted at rest.
- 2Pass the test send. Saving marks the config pending; the app immediately sends a branded test email to you, the org owner, and activates your sender only when that send succeeds. No silent misconfiguration. If the test fails, the platform sender keeps delivering while you fix it.
- 3Set up SPF and DKIM for your sending domain at the provider (their docs are linked next to the form). This is the step that keeps your mail out of spam folders. Don't skip it.
The failure mode is designed in your favor: if your reseller plan ever lapses, delivery falls back to the platform sender rather than dropping mail. Password resets and invites keep arriving no matter what.
Step 5: Provision client workspaces
Now the fun part. In Reseller → Client workspaces, click New client, enter the client's name and email, and pick their starting plan. You get an isolated workspace under your organization: its data fully separated, your brand already applied. The email matters — every client starts as a 30-day owner-handover invite, so the workspace is theirs to own and yours to run. The row shows Invite pending · their email until they accept, then flips to a Client-owned badge; a Resend invite row action re-sends an expired one. Set up their first chatbot yourself or invite the client's team and let them build; either way an industry template gets a working knowledge base live in minutes.
When you're out of client seats or knowledge-source headroom, New client is disabled and tells you so, pointing at the next tier. Nothing breaks, you just upgrade when the roster grows.
Each workspace has its own embed snippet, and that's what you paste into the client's site — into the body tracking code if you build on GoHighLevel, or the equivalent field on whatever platform the client's site runs.
Step 6: Allocate credits and set the guardrails
Your clients' AI usage draws from your pooled credits, and each client row on the reseller page gives you the controls:
- Allocate credits: move credits from your pool to the client. This is what turns their metering on; their bots consume what you allocated, not the raw pool.
- Monthly spend cap: the ceiling one client can burn in a month. Set it on every client; it's what stops a runaway integration from eating the pool your other fourteen clients share.
- Per-client limits: override the plan defaults for chatbots, team seats and knowledge sources. You can always hold a client below their plan; raising one is bounded by what you actually own — chatbots and seats by that client's own plan (seats cap at 50), knowledge sources by what's left in your org-wide pool. A limit can't be set below what the client is already using, and lowering one never deletes anything — it only blocks new creation until you raise it again.
If a client exhausts their allocation, their assistant pauses for visitors with a friendly message while human handoff keeps working, and you top them up (and probably upsell them) when they come asking. Your reseller panel shows the pool balance, seats used, and an org-wide knowledge-source meter, so you always know your headroom. When a client bumps into a limit, they see a neutral "contact your support provider" message. Never a word about pools, tiers, or Evoriqa.
Step 7: Bill your clients on your own Stripe
Allocating credits by hand is fine while you invoice clients yourself. When you'd rather they paid you inside the product, connect your own Stripe account under Reseller → BYO Stripe and the collection step runs itself.
- 1Set up the webhook endpoint first in your own Stripe dashboard — the card shows the URL and the exact events to enable — then connect with that endpoint's signing secret and your account's secret key. It's a step-up action, and both secrets are encrypted at rest. A test-mode key is refused on a live deployment.
- 2Publish client plans: a name, your price, the AI credits it carries, and the three limits it grants: chatbots, team seats and knowledge sources. Creating one provisions the product and prices on your Stripe. You set the price; there's no floor.
- 3Send a checkout link for a client and a plan — or leave it to them. A client of a Stripe-connected provider sees your plan grid on their own billing page and can subscribe and manage it themselves.
When their invoice is paid, that plan's limits apply and its credits are allocated from your pool automatically, so Step 6 stops being a manual job for those clients. If your pool is short at that moment, the balance is pinned and finishes the moment you top up. Refunds and disputes claw back only *unspent* credits. Two things to keep straight: disconnecting doesn't cancel live subscriptions on your Stripe, and client checkout uses your own tax setup, not ours. The full walkthrough is here.
What your client actually sees
Log in as a client once. It's clarifying. They get your name, your logo, your colors, on your domain, with your address on the emails. They build bots, add knowledge, embed the widget, and work their inbox. They are never pitched our plans. If you bill them outside the platform, their billing page just says "managed by your provider," because *you* are the provider; if you connected your own Stripe in Step 7, it shows *your* plans at *your* prices. Their usage view shows the credits you allocated, not what those credits cost you.
That last part is the business model in one sentence: you charge each client what their support is worth — a retainer line, a monthly add-on, a usage package — while all of them draw from one flat-fee pool. A reseller with a full roster of clients each paying a healthy monthly rate is billing four figures against a single flat platform fee, and the per-client spend caps protect that margin automatically. Run your own numbers in the agency ROI calculator.
The whole setup, in order
- 1Reseller → pick a tier → Start reselling
- 2Settings → Branding → name, logo, color, from-name
- 3Settings → Custom domain → publish the CNAME + TXT records → verification and HTTPS are automatic
- 4Settings → Email delivery → provider credentials → pass the test send → SPF/DKIM
- 5Reseller → Client workspaces → provision, allocate, cap
- 6Reseller → BYO Stripe (optional) → connect Stripe → publish client plans → send a checkout link
- 7Repeat step 5 every time you close a deal
The program details and packaging ideas live on the for-agencies page. If you'd rather look before you sign up, the reseller console is open to browse — read-only, sample clients, no card. When you're ready to start, create your account and choose a reseller plan from your dashboard.