Attendant 🟡 PREVIEW - Human Agent Console

AI-assisted customer support

Attendant Console Screen

Overview

Attendant is the human agent console in General Bots Suite. Accept conversations transferred from bots, view customer history, and respond in real time. Attendant provides AI-assisted suggestions, queue management, and seamless bot-to-human handoff for exceptional customer support.


Features

Queue

StatusDescription
🟢 WaitingNew conversations awaiting acceptance
🟡 In ProgressConversations being handled
🔴 EscalatedUrgent or complex issues
⚪ OfflineAgents currently unavailable

Chat

FeatureDescription
Message AreaReal-time conversation view
AI SuggestionsBot-generated response drafts
Quick RepliesPredefined response templates
File SharingSend and receive attachments
EmojiExpress tone with reactions

Info Panel

SectionDescription
User DetailsName, email, phone, company
HistoryPrevious conversations and tickets
ContextCurrent bot session data
NotesInternal agent notes
TagsConversation categorization

Status

StateIconDescription
Online🟢Available for new conversations
Away🟡Temporary unavailability
Offline⚪Not accepting conversations
Do Not Disturb🔴No notifications

Transfer

StepAction
1Bot detects escalation trigger
2Conversation enters agent queue
3Agent accepts from queue
4Full context transfers to agent
5Agent handles conversation
6Agent returns to bot or closes

Keyboard Shortcuts

ShortcutAction
1-9Select queue item by position
EnterAccept selected conversation
EscapeRelease conversation back to queue
TabToggle between chat and info panel
Ctrl+EnterSend message
Ctrl+Shift+AAccept all waiting conversations
Ctrl+Shift+RRefresh queue

Attendant via Chat

Bot-to-Human Transfer

Agent Accepting a Queue Item

Agent Following Up


API Endpoints

EndpointMethodDescription
/api/attendant/queueGETList conversations in queue
/api/attendant/accept/:idPOSTAccept a conversation
/api/attendant/release/:idPOSTRelease back to queue
/api/attendant/close/:idPOSTClose conversation
/api/attendant/transfer/:idPOSTTransfer to another agent
/api/attendant/messages/:idGETGet conversation messages
/api/attendant/messages/:idPOSTSend a message
/api/attendant/statusPUTUpdate agent status
/api/attendant/statsGETAgent performance stats
/api/attendant/history/:user_idGETUser conversation history

Queue Response

{
    "queue": [
        {
            "id": "conv-789",
            "user": {
                "id": "usr-123",
                "name": "John Doe",
                "email": "john@example.com"
            },
            "status": "waiting",
            "bot_messages": 5,
            "escalation_reason": "complex_issue",
            "wait_time_seconds": 45,
            "priority": "high"
        }
    ],
    "total_waiting": 3,
    "agents_online": 2
}

Accept Request

{
    "agent_id": "agent-456",
    "notes": "Handling password reset request"
}

Message Response

{
    "id": "msg-012",
    "conversation_id": "conv-789",
    "sender": {
        "type": "agent",
        "name": "Maria",
        "id": "agent-456"
    },
    "content": "I've verified your identity and can proceed.",
    "timestamp": "2025-05-15T09:16:30Z"
}

Configuration

Attendant settings can be configured in config.csv:

key,value
max-concurrent-chats,5
queue-timeout-seconds,300
auto-assign,true
escalation-keywords,billing,security,complaint

Troubleshooting

Queue Not Populating

  1. Verify bot escalation rules are configured
  2. Check that the attendant service is running
  3. Ensure agents are set to Online status
  4. Review bot logs for transfer errors

Messages Not Delivering

  1. Check WebSocket connection stability
  2. Verify conversation hasn’t been closed
  3. Check for rate limiting on message API
  4. Review agent permissions

Context Not Transferring

  1. Verify the bot session is still active
  2. Check Redis connection for session data
  3. Ensure the conversation ID matches
  4. Review the transfer payload in logs

See Also