Automotive
Voice for dealerships, service centers, and automotive SaaS.
Why it matters
- DMS-integrated Screen Pop — customer, vehicle, open RO, and warranty on the first ring.
- Service appointment booking over voice — AI Scheduling books service slots without a human.
- Department routing — one number, smart routing to Sales / Service / Parts / BDC.
- Activity Logging — every call attached to the RO or customer card for CRM and compliance.
Pattern: DMS Screen Pop on the service advisor's desk
DMS-lookup webhook handler
app.post('/webhooks/dialstack', express.raw({ type: 'application/json' }), async (req, res) => {
verifySignature(req);
const event = JSON.parse(req.body);
if (event.type === 'call.incoming') {
const customer = await dms.customers.findByPhone(event.data.from_number);
if (customer) {
const [vehicle, openRO] = await Promise.all([
dms.vehicles.findOne({ customer_id: customer.id, primary: true }),
dms.repairOrders.findOne({ customer_id: customer.id, status: 'open' }),
]);
pusher.trigger(`user-${event.data.user_id}`, 'screen-pop', {
customerId: customer.id,
vehicle,
openRO,
callId: event.data.call_id,
});
}
}
res.status(200).end();
});
DMS lookups can be slow — if yours take more than a second or two, queue the push and return 200 immediately. Full pattern: Screen Pop.
Pattern: department routing
One published number, smart routing based on time-of-day, extensions, or caller history.
await ds.dialPlans.create(
{
name: 'Main dealership line',
entry_node: 'dept_schedule',
nodes: [
{
id: 'dept_schedule',
type: 'schedule',
config: { schedule_id: 'sch_service_hours', open: 'ring_service', closed: 'after_hours' },
},
{ id: 'ring_service', type: 'ring_all_users', config: { timeout: 20, next: 'after_hours' } },
{ id: 'after_hours', type: 'internal_dial', config: { target_id: 'va_after_hours_ai' } },
],
},
{ dialstackAccount: account.id }
);
Publish extensions for direct access — sales 100, service 200, parts 300 — via the Extensions API. Each extension points at a user, ring group, or dial plan.
Pattern: service appointment booking over voice
Service scheduling is complex. Rather than rebuilding that logic, use the Notify node to stream call audio directly to your platform's existing AI assistant. Your bespoke VoiceAI handles the conversation, collects vehicle details, and books the appointment directly in your DMS — you maintain total control over the experience.
Full flow: BYO VoiceAI.
Build this with DialStack
- Screen Pop — pop the customer / vehicle / RO.
- Dial Plans — department routing + time-of-day.
- Extensions — direct-access codes per department.
- AI Scheduling — service appointment booking over voice.
- Click-to-Call — BDC follow-up from the CRM.
- Activity Logging — attach every call to the RO.