> ## Documentation Index
> Fetch the complete documentation index at: https://docs.csku.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Message Out

> Event pesan dari agen manusia

## Pengenalan

Event `agent.message_out` dipicu ketika agen manusia mengirim pesan melalui sistem CSKU AI.

<Callout>
  Event ini membantu melacak kapan agen manusia berinteraksi dengan pelanggan, berguna untuk analitik dan pelacakan handoff.
</Callout>

## Trigger Event

```
Agen manusia mengirim pesan
       ↓
   Platform CSKU AI
       ↓
   Trigger webhook agent.message_out
       ↓
   HTTP POST → URL Webhook Anda
```

## Struktur Payload

```json theme={null}
{
  "event": "agent.message_out",
  "timestamp": 1738056000,
  "conversation_id": "conv_abc123",
  "conversation_label": "John Doe",
  "need_human": 1,
  "message": {
    "id": "msg_def456",
    "sender_name": "Support Agent",
    "agent": {
      "name": "Nama Agent Support"
    },
    "channel": {
      "id": "channel_merchant_id",
      "name": "WhatsApp Business",
      "engine": "wa"
    },
    "bisnis": {
      "id": "biz_123",
      "name": "My Business"
    },
    "user": {
      "id": "merchant_456",
      "name": "Merchant Name"
    },
    "content": {
      "type": "text",
      "text": "Saya bisa membantu dengan pesanan Anda"
    }
  }
}
```

## Field Tambahan

Event ini mencakup semua field pesan standar ditambah:

| Field                | Tipe   | Deskripsi                     |
| -------------------- | ------ | ----------------------------- |
| `message.agent.name` | string | Nama agen yang mengirim pesan |

## Use Case

<AccordionGroup>
  <Accordion title="Pelacakan Performa Agen">
    Monitor waktu respons agen dan pola pesan.
  </Accordion>

  <Accordion title="Analitik Handoff">
    Lacak kapan percakapan dieskalasi dari AI ke agen manusia.
  </Accordion>

  <Accordion title="Quality Assurance">
    Log respons agen untuk review dan pelatihan.
  </Accordion>

  <Accordion title="Koordinasi Tim">
    Notifikasi anggota tim lain ketika agen telah menangani percakapan.
  </Accordion>
</AccordionGroup>

## Implementasi

```javascript theme={null}
app.post('/webhook', async (req, res) => {
  const { event, message } = req.body;
  
  if (event === 'agent.message_out') {
    const { agent, sender_name, content } = message;
    
    console.log(`Agen ${agent.name} mengirim pesan`);
    
    // Lacak aktivitas agen
    await db.agentActivity.create({
      agent_name: agent.name,
      conversation_id: req.body.conversation_id,
      message: content.text,
      timestamp: new Date(req.body.timestamp * 1000)
    });
    
    // Update status percakapan
    await db.conversations.update(
      req.body.conversation_id,
      { handled_by: 'human', agent_name: agent.name }
    );
  }
  
  res.status(200).send('OK');
});
```

## Event Terkait

<CardGroup cols={2}>
  <Card title="Channel Message In" icon="message-square" href="/webhooks/events/channel-message-in">
    Pesan pelanggan diterima
  </Card>

  <Card title="AI Message Generated" icon="bot" href="/webhooks/events/ai-message-generated">
    Agen AI merespons
  </Card>
</CardGroup>
