AI Support

AI-assisted live support for real Beam sessions.

Beam AI Support captures screen, app, and customer context during a live Beam session, suggests safe next steps, records operator approvals, and generates a ticket-ready handoff summary.

Runtime configuration

Beam defaults to deterministic fallback guidance so production remains safe even without an LLM key. To enable an OpenAI-compatible chat-completions provider, set:

BEAM_AI_PROVIDER=openai-compatible
BEAM_AI_API_KEY=...
BEAM_AI_MODEL=...
BEAM_AI_CHAT_COMPLETIONS_URL=https://api.openai.com/v1/chat/completions

When PostgreSQL session storage is enabled, Beam also persists AI support events in beam_ai_support_events.

Endpoints

Method Path Purpose
GET /v1/ai/support/health Returns provider, model, mode, and enabled AI-support features.
POST /v1/sessions/{session_id}/ai/observations Submit visible screen/app/customer context and receive a suggestion.
GET /v1/sessions/{session_id}/ai/timeline Read observations, suggestions, approvals, and summaries for a session.
POST /v1/sessions/{session_id}/ai/actions/{action_id}/approve Record operator approval for a suggested AI action.
POST /v1/sessions/{session_id}/ai/summary Create a support ticket or handoff summary.

Add an observation

curl -X POST https://beam.be-online.ro/api/v1/sessions/sess_xxx/ai/observations \
  -H "Authorization: Bearer $BEAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "user_goal": "Customer cannot finish billing setup",
    "page_title": "Billing settings",
    "page_url": "https://app.example.com/settings/billing",
    "visible_text": "Payment method failed. Try another card.",
    "error_text": "Payment method failed",
    "customer_message": "I keep getting this when I save the card",
    "docs_snippets": [
      "Billing setup requires a valid tax country before card validation."
    ]
  }'

Approval boundary

Beam AI can suggest actions, draft tickets, open context, or recommend escalation, but it does not execute arbitrary customer-impacting work on its own. Operators must approve suggested actions, and those approvals are recorded on the session timeline.

curl -X POST https://beam.be-online.ro/api/v1/sessions/sess_xxx/ai/actions/act_xxx/approve \
  -H "Authorization: Bearer $BEAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "notes": "Customer confirmed before operator used this action." }'

Ticket summary

curl -X POST https://beam.be-online.ro/api/v1/sessions/sess_xxx/ai/summary \
  -H "Authorization: Bearer $BEAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "format": "ticket", "notes": "Customer confirmed the issue is fixed." }'