Converse Logo
Developers

Quickstart — First Call in 5 Minutes

Get your first AI voice call running in under 5 minutes. This guide uses the TypeScript SDK.

1. Install the SDK

bash
npm install @converse/sdk

2. Get your keys

Go to Settings → API Keys in your dashboard. You'll get two keys:

bash
# Secret key (server-side only — never expose)
export CONVERSE_API_KEY=sk_live_your_secret_key

# Publishable key (safe for client code)
export CONVERSE_PUBLIC_KEY=pk_live_your_public_key

3. Create an agent

typescript
import { ConverseClient } from '@converse/sdk';

const converse = new ConverseClient({
  apiKey: process.env.CONVERSE_API_KEY!,
});

const agent = await converse.agents.create({
  name: 'My First Agent',
  system_prompt: 'You are a friendly support agent for Acme Corp. Help customers with their orders.',
  llm_provider: 'groq',
  llm_model: 'llama-3.3-70b-versatile',
  language: 'en',
  greeting: 'Hello! Welcome to Acme Corp. How can I help you today?',
});

console.log('Agent created:', agent.id);

4. Make an outbound call

typescript
const call = await converse.calls.create({
  agent_id: agent.id,
  to: '+919876543210',  // Phone number to call
});

console.log('Call initiated:', call.id, call.status);

Subscribe to live events through the dedicated realtime client:

typescript
import { ConverseRealtime, TRANSCRIPT, CALL_ENDED } from '@converse/sdk/realtime';

const realtime = new ConverseRealtime({ apiKey: process.env.CONVERSE_API_KEY! });
realtime.on(TRANSCRIPT, event => console.log(event.data));
realtime.on(CALL_ENDED, event => console.log('Call ended', event.data));
await realtime.connect();
realtime.subscribeToCall(call.id);

5. Or test in the browser (no phone needed)

typescript
import { useConverseVoice, ConverseOrb } from '@converse/sdk/components';

// In your React component:
const { voiceState, agentState, connect, disconnect } = useConverseVoice({
  publicKey: 'pk_live_...',  // Publishable key — safe in client code
  agentId: agent.id,
});

// voiceState: idle → connecting → active → ended
// agentState: idle → connecting → listening → speaking
// Audio + mic handled automatically inside the SDK.

What's next?

  • Add tools so your agent can look up orders, create tickets, etc.
  • Upload a knowledge base so your agent can answer from your docs.
  • Connect a phone number to receive inbound calls.
  • Set up webhooks to get notified when calls complete.

Python quickstart

bash
pip install converse-ai
python
from converse import ConverseClient

client = ConverseClient(api_key="sk_live_your_key")

agent = client.agents.create(
    name="Support Bot",
    system_prompt="You are a helpful support agent.",
    llm_provider="groq",
    language="hi",  # Hindi
    greeting="Namaste! Kaise madad kar sakta hoon?",
)

call = client.calls.create(agent_id=agent.id, to="+919876543210")
print(f"Call {call.id} → {call.status}")

Using with WhatsApp

The same agent works across all channels — no code changes needed.

typescript
// WhatsApp messages are handled automatically via webhook
// Just connect your WhatsApp Business number in Settings → Channels

// Or send a proactive WhatsApp message:
const call = await converse.calls.create({
  agent_id: agent.id,
  to: '+919876543210',
  channel: 'whatsapp',
});

Indian languages

Converse supports all major Indian languages from day one with code-switching:

typescript
const hindiAgent = await converse.agents.create({
  name: 'Hindi Support',
  system_prompt: 'Aap ek helpful assistant hain. Hindi mein jawab dein, lekin agar user English mein baat kare toh English mein bhi baat kar sakte hain.',
  language: 'hi',        // Hindi (code-switching with English supported)
  voice_id: 'raj',       // Indian male voice
  llm_provider: 'groq',
  tts_provider: 'spectre',  // Cartesia Sonic 3.5 (Hindi)
});

// Malayalam, Tamil, Telugu, Bengali, Marathi, Kannada, Gujarati also supported
const mlAgent = await converse.agents.create({
  name: 'Malayalam Support',
  language: 'ml',
  voice_id: 'priya',  // Indian female voice
  // ...
});