Skip to main content

Embedded Phones and VoiceAI for Platforms.

A REST API, TypeScript SDK, and webhook firehose for multi-tenant phone systems in vertical SaaS.

import { DialStack } from '@dialstack/sdk';

const ds = new DialStack(process.env.DIALSTACK_KEY);
const account = { dialstackAccount: 'acct_jones_chiro' };

// Ring the team during business hours. After hours — or any overflow — the
// AI receptionist picks up and books the appointment.
await ds.dialPlans.create(
{
name: 'Main number',
entry_node: 'hours',
nodes: [
{
id: 'hours',
type: 'schedule',
config: { schedule_id: 'sch_business_hours', open: 'ring_team', closed: 'ai_reception' },
},
{ id: 'ring_team', type: 'ring_all_users', config: { timeout: 25, next: 'ai_reception' } },
{ id: 'ai_reception', type: 'internal_dial', config: { target_id: 'va_ai_receptionist' } },
],
},
account,
);

Pick your integration tier

Three paths, one platform. Start where you are; adjust as you grow.

The four feature pillars

What your customers actually feel when voice is embedded right.

VoiceAI: BYO or Native

Bring your own agent, or use ours. Same dial plan, same webhook surface.

Build for your vertical

Pre-built patterns for the industries we know best.

How it fits together

A REST API, a webhook firehose, and a call surface. That's the whole picture.

DialStackYour appbackend + UIUser endpointsWebRTC · desk · mobilePSTN / SIPcarriers · trunksRESTWebhooksmedia + signalinginbound + outboundRead the architecture overview →