AI Voice Agents

White-Labeling a Voice AI Platform in 3 Days

Workforce Wave

April 17, 20265 min read
#integration#saas#white-label

You have a software product for dental practices. Your customers have been asking about AI phone answering for six months. Your options: build a voice AI platform from scratch (12–18 months, $400k+), resell an existing product (limited margin, competitor branding), or build your branded product on WFW's infrastructure.

This post covers the third option. Here's what three days of actual work looks like.

Day 1: Partner Setup and First Agent

Morning: Partner configuration.

Log in to the WFW admin portal and create a partner account under Settings → Partners. You'll configure:

  • partner_slug: a short identifier for your brand ("ridgeline-software")
  • Brand config: your product name, logo URL, support email, primary color
  • Custom domain: if you want ai.ridglinesoftware.com rather than app.workforcewave.com
  • Vertical: select dental — your agents will be pre-loaded with dental intelligence

WFW provisions a partner-scoped service account automatically. Download the credentials.

Afternoon: Deploy your marketing site.

WFW's marketing site template is a Next.js project that accepts a PARTNER_SLUG environment variable. Fork the repo, set your slug, deploy to Vercel:

# In your forked repo
vercel env add PARTNER_SLUG production
# → ridgeline-software

vercel --prod

Your marketing site at ai.ridglinesoft.com now shows your branding, your product name, and your pricing — no WFW branding visible to your customers.

Evening: Connect your first test agent.

Using your service account credentials, provision an agent for a test practice:

curl -X POST https://api.workforcewave.com/v2/agents \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "name": "Test Practice AI",
      "business_url": "https://your-test-practice.com",
      "template_id": "dental_receptionist",
      "white_label": {
        "product_name": "Ridgeline AI Receptionist",
        "partner_slug": "ridgeline-software"
      }
    }
  }'

Call the provisioned phone number. You should hear your product name, not WFW's.

Day 1 complete: you have a branded marketing site and a live test agent.

Day 2: Build Your Onboarding Flow

Day 2 is software development. The integration surface is three endpoints; the UX work is yours.

Step 1: Customer signs up on your platform.

Your existing auth and billing flow. At the end of signup, trigger agent provisioning:

// Called after customer completes signup + billing
async function provisionAgentForCustomer(customer) {
  const token = await getServiceAccountToken();

  const { data: { operation_id } } = await fetch('https://api.workforcewave.com/v2/agents', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${token}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': `provision-${customer.id}-v1`
    },
    body: JSON.stringify({
      payload: {
        name: `${customer.practiceName} AI`,
        business_url: customer.websiteUrl,
        template_id: 'dental_receptionist',
        white_label: {
          product_name: 'Ridgeline AI Receptionist',
          partner_slug: 'ridgeline-software'
        }
      }
    })
  }).then(r => r.json());

  // Store operation_id; resolve to agent_id via webhook
  await db.update(customers).set({ wfw_operation_id: operation_id }).where(eq(customers.id, customer.id));
}

Step 2: Webhook resolves provisioning to agent_id.

Subscribe your webhook endpoint to agent.activated. When it fires:

// POST /webhooks/wfw
async function handleWfwWebhook(req) {
  verifySignature(req); // HMAC-SHA256 check

  const { event_type, data } = req.body;

  if (event_type === 'agent.activated') {
    const { operation_id, agent_id, phone_number } = data;

    // Find the customer who triggered this operation
    const customer = await db.query.customers.findFirst({
      where: eq(customers.wfw_operation_id, operation_id)
    });

    await db.update(customers).set({
      wfw_agent_id: agent_id,
      ai_phone_number: phone_number,
      ai_status: 'active'
    }).where(eq(customers.id, customer.id));

    // Send "Your AI receptionist is live" email to customer
    await sendActivationEmail(customer, phone_number);
  }
}

Step 3: Customer dashboard.

Build a dashboard that shows the customer their agent status, call history, and call extractions. Use the WFW API on behalf of the customer using your service account. The customer never needs their own WFW credentials.

Subscribe to call.transcript_ready to update the dashboard in real time after each call.

Day 2 complete: customers can sign up, their agent provisions automatically, and they see a live dashboard.

Day 3: Polish and Compliance

HIPAA BAA (if healthcare vertical).

If any of your customers are healthcare providers (dental practices are), you need a Business Associate Agreement with WFW before processing PHI. Request one through the partner portal. WFW countersigns within one business day. Store it.

Your customers also need a BAA with you. If you don't have one already, this is not optional for healthcare data — get a lawyer to draft it or use a standard BAA template reviewed by healthcare counsel.

Terms of service.

Your customers are entering a contract with you, not WFW. Your ToS should cover:

  • What data you store and for how long
  • How call transcripts are used and who can access them
  • The AI nature of the service (disclosure requirements vary by state)
  • Your SLA for agent availability

Review queue setup.

WFW's human oversight queue lets you (or your customers) flag calls for review. Configure it to auto-flag:

  • Calls where the agent triggered an escalation
  • Calls longer than 8 minutes (often indicates the agent struggled)
  • Calls with confidence scores below 0.7 in more than 3 turns

The review queue isn't just a quality control mechanism — it's a compliance tool. For healthcare operators, having documented evidence that AI-handled calls are reviewed creates an audit trail that's useful if questions arise.

Day 3 complete: you have a HIPAA BAA in place, your customers have appropriate terms, and high-risk calls are flagged for human review.

What WFW Handles

Voice infrastructure (ElevenLabs, Twilio), automatic provisioning, knowledge base building and sync, dental VIL (vertical intelligence layer), PHI redaction in transcripts, compliance rule enforcement, call analytics and extraction, billing metering by call minute.

What You Build

Your marketing site, your signup/billing flow, your customer dashboard, your pricing, your customer relationships. The product is yours. WFW is the infrastructure underneath it.


Next in this series: HIPAA Compliance for Voice AI: What WFW Handles, What You Handle — practical compliance guidance for healthcare operators.

Share this article

Ready to put AI voice agents to work in your business?

Get a Live Demo — It's Free