Voisnap Docs
Agency Platform

White-Label Setup

Configure a custom domain, branding, and transactional emails so your clients never see the Voisnap brand.

White-Label Setup

White-labeling ensures your clients only ever see your brand. This covers custom domain setup, logo and color configuration, and transactional email routing.


Custom domain

Your clients will log in at a subdomain of your choosing — typically app.yourdomain.com or portal.yourdomain.com.

DNS setup

Add a CNAME record in your DNS provider:

app.yourdomain.com  CNAME  agency.voisnap.ai

DNS propagation can take up to 24 hours but usually resolves within 30 minutes.

Configure via API

curl -X POST https://api.voisnap.ai/api/v1/agency/white-label/domain \
  -H "Authorization: Bearer vsnp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "app.yourdomain.com",
    "verificationMethod": "cname"
  }'

Response:

{
  "domain": "app.yourdomain.com",
  "status": "pending_verification",
  "cnameTarget": "agency.voisnap.ai",
  "verificationToken": "vsnp-verify-abc123xyz",
  "sslStatus": "pending",
  "verifiedAt": null
}

SSL certificates are provisioned automatically via Let's Encrypt once the CNAME resolves.

Check domain status

curl https://api.voisnap.ai/api/v1/agency/white-label/domain \
  -H "Authorization: Bearer vsnp_live_..."

Response once verified:

{
  "domain": "app.yourdomain.com",
  "status": "active",
  "sslStatus": "active",
  "sslExpiresAt": "2026-06-16T00:00:00Z",
  "verifiedAt": "2025-06-16T11:30:00Z"
}

Branding

curl -X PUT https://api.voisnap.ai/api/v1/agency/white-label/branding \
  -H "Authorization: Bearer vsnp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "VoiceAI Solutions",
    "logoUrl": "https://cdn.yourdomain.com/logo.png",
    "logomarkUrl": "https://cdn.yourdomain.com/logomark.png",
    "faviconUrl": "https://cdn.yourdomain.com/favicon.ico",
    "colors": {
      "primary": "#0ea5e9",
      "primaryForeground": "#ffffff",
      "secondary": "#f0f9ff",
      "accent": "#0284c7",
      "background": "#ffffff",
      "foreground": "#0f172a"
    },
    "fontFamily": "Inter",
    "supportEmail": "support@yourdomain.com",
    "supportUrl": "https://yourdomain.com/support",
    "privacyPolicyUrl": "https://yourdomain.com/privacy",
    "termsOfServiceUrl": "https://yourdomain.com/terms"
  }'

Branding fields:

FieldDescription
companyNameDisplayed in the portal header and emails
logoUrlFull logo image (recommended: 180×40px SVG or PNG)
logomarkUrlSquare icon for collapsed sidebar (recommended: 40×40px)
faviconUrlBrowser favicon (32×32px ICO or PNG)
colors.primaryPrimary action color (buttons, links, highlights)
supportEmail"Contact support" links point here
supportUrlOptional custom support portal URL

:::note The colors object follows the same variable naming as Tailwind CSS. All six colors should be set for consistent theming across light and dark modes. :::


Transactional emails

All system emails (user invitations, password resets, billing alerts) can come from your domain. Two options:

Option A: Custom SMTP

curl -X PUT https://api.voisnap.ai/api/v1/agency/white-label/email \
  -H "Authorization: Bearer vsnp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "fromName": "VoiceAI Solutions",
    "fromEmail": "noreply@yourdomain.com",
    "replyTo": "support@yourdomain.com",
    "smtp": {
      "host": "smtp.sendgrid.net",
      "port": 587,
      "username": "apikey",
      "password": "SG.your_sendgrid_api_key",
      "encryption": "STARTTLS"
    }
  }'

Add these DNS records to allow Voisnap to send emails as your domain:

# SPF record (add to existing SPF or create new TXT record)
yourdomain.com  TXT  "v=spf1 include:email.voisnap.ai ~all"

# DKIM
vsnp._domainkey.yourdomain.com  CNAME  vsnp._domainkey.email.voisnap.ai

# DMARC (if not already configured)
_dmarc.yourdomain.com  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com"

Configure via API:

curl -X PUT https://api.voisnap.ai/api/v1/agency/white-label/email \
  -H "Authorization: Bearer vsnp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "fromName": "VoiceAI Solutions",
    "fromEmail": "noreply@yourdomain.com",
    "replyTo": "support@yourdomain.com",
    "sendingMethod": "dns"
  }'

Verify email configuration

curl -X POST https://api.voisnap.ai/api/v1/agency/white-label/email/verify \
  -H "Authorization: Bearer vsnp_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "testRecipient": "you@yourdomain.com" }'

Verify everything

After setup, use this checklist:

  • app.yourdomain.com loads the portal with your branding
  • Your logo appears in the header
  • Browser tab shows your favicon
  • Test login as a client user — no Voisnap branding visible
  • Invitation email arrives from noreply@yourdomain.com
  • "Contact support" links point to your support URL

:::warning Check all emails your clients might receive: invitations, password resets, billing alerts, and weekly usage digests. Open each in multiple email clients (Gmail, Outlook) to verify rendering. :::

On this page