Skip to content

Event Types

Complete reference for all events sent by the AI Flow service.

Overview

Events are JSON objects sent from the AI Flow service to your application. All events include a type field and session information.

Base Event Structure

All events include session information:

json
{
  "session": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "account_id": "account-123",
    "phone_number": "+1234567890",
    "direction": "inbound",
    "from_phone_number": "+9876543210",
    "to_phone_number": "+1234567890"
  }
}

Event Types

Event TypeDescriptionWhen Triggered
session_startCall session beginsWhen a new call is initiated
user_speakUser speech detectedAfter speech-to-text completes (includes barged_in flag if user interrupted)
assistant_speakAssistant finished speakingAfter TTS playback completes
assistant_speech_endedAssistant finished speakingAfter speech playback ends
user_input_timeoutUser input timeout reachedWhen no speech detected after timeout
session_endCall session endsWhen the call terminates

Quick Reference

Event Flow

Handling Events

HTTP Webhook

python
@app.route('/webhook', methods=['POST'])
def webhook():
    event = request.json
    event_type = event['type']

    if event_type == 'session_start':
        # Handle session start
        pass
    elif event_type == 'user_speak':
        # Handle user speech
        pass
    # ... handle other events

WebSocket

javascript
ws.on('message', (data) => {
  const event = JSON.parse(data.toString());

  switch (event.type) {
    case 'session_start':
      // Handle session start
      break;
    case 'user_speak':
      // Handle user speech
      break;
    // ... handle other events
  }
});

Response Requirements

  • session_start: Can return any action or 204 No Content
  • user_speak: Can return any action or 204 No Content (check barged_in flag for interruptions)
  • assistant_speak: Can return any action or 204 No Content
  • assistant_speech_ended: Can return any action or 204 No Content
  • user_input_timeout: Can return any action or 204 No Content
  • session_end: No action allowed, cleanup only

Next Steps