click2call
Start or hang up an outbound two-leg call from an agent extension.
How It's Invoked
click2call is a model-invoked skill — Claude loads it automatically whenever your request involves placing a call, so you don't need to type anything. To run it deliberately inside a session, use the command below.
/click2call
Examples
The click2call skill teaches Claude the Voicenter ForwardDialer endpoint end to end — the exact request shape, a real response, and production-ready TypeScript. Claude writes a backend route that places a two-leg call: it rings your agent extension first, then dials the customer and bridges them, passing page and campaign data through CustomData so every call is attributed in your CDRs.
When to Use
REACH FOR IT WHEN
You want a website or CRM button that dials a lead and an agent together.
An app event should trigger an outbound call programmatically.
Calls must be attributed with CustomData — UTM, page, or deal id.
USE SOMETHING ELSE FOR
Routing inbound calls by business logic → external-layer.
Bulk campaign dialing and lead lists → productive-dialer.
Watching live calls and queues → active-calls / real-time.
How It Works
Validate & check blacklist
Claude validates the target number and honors opt-outs through the blacklist skill before anything dials.
Call the endpoint
It POSTs to the ForwardDialer/click2call endpoint with your code, the customer number, and the representative number.
Two-leg bridge
Voicenter rings the agent (leg A) first, then dials the customer (leg B) and bridges the two together.
Attribute the call
Page, UTM, and deal data ride along as CustomData, so the call is tagged and searchable in your CDRs.
REQUEST & RESPONSE
POST /ForwardDialer/click2call.aspx
{
"code": "XXXXXXXXXXXX",
"phone": "SIPSIP",
"target": "0501234567",
"action": "call",
"format": "json",
"record": "true",
"var_clientID": "CRM-9876"
}
// 200 OK
{ "ERRORCODE": 0, "ERRORMESSAGE": "OK", "CALLID": "20240601abc123def456" }TYPESCRIPT
const res = await fetch('https://api.voicenter.com/ForwardDialer/click2call.aspx', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
code: process.env.VOICENTER_API_CODE,
phone: 'SIPSIP', target: '0501234567',
action: 'call', format: 'json', record: 'true',
var_clientID: 'CRM-9876',
}),
});
const { ERRORCODE, CALLID } = await res.json();
if (ERRORCODE !== 0) throw new Error('Click2Call failed');