> ## 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.

# AI Message Generated

> Event respons dari agen AI

## Pengenalan

Event `ai.message_generated` dipicu ketika agen AI menghasilkan dan mengirim respons ke pelanggan.

<Callout>
  Gunakan event ini untuk melacak respons AI dan mengukur efektivitas otomasi.
</Callout>

## Trigger Event

```
Pesan pelanggan diproses
       ↓
   AI menghasilkan respons
       ↓
   Platform CSKU AI
       ↓
   Trigger webhook ai.message_generated
       ↓
   HTTP POST → URL Webhook Anda
```

## Struktur Payload

```json theme={null}
{
  "event": "ai.message_generated",
  "timestamp": 1738056000,
  "conversation_id": "conv_abc123",
  "conversation_label": "John Doe",
  "need_human": 0,
  "message": {
    "id": "msg_ghi789",
    "sender_name": "AI Assistant",
    "ai": {
      "name": "Customer Support AI",
      "id": "ai_agent_123"
    },
    "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": "Berikut informasi tentang pesanan Anda"
    }
  }
}
```

## Field Tambahan

| Field             | Tipe   | Deskripsi               |
| ----------------- | ------ | ----------------------- |
| `message.ai.name` | string | Nama agen AI            |
| `message.ai.id`   | string | Identifier agen AI unik |

## Use Case

<AccordionGroup>
  <Accordion title="Metrik Otomasi">
    Hitung persentase percakapan yang ditangani AI vs. manusia.
  </Accordion>

  <Accordion title="Kualitas Respons">
    Simpan respons AI untuk penilaian kualitas dan pelatihan.
  </Accordion>

  <Accordion title="Analisis Biaya">
    Lacak penghematan biaya dari otomasi AI.
  </Accordion>

  <Accordion title="Pelacakan Eskalasi">
    Monitor kapan respons AI menyebabkan permintaan intervensi manusia.
  </Accordion>
</AccordionGroup>

## Implementasi

```javascript theme={null}
app.post('/webhook', async (req, res) => {
  const { event, message } = req.body;
  
  if (event === 'ai.message_generated') {
    const { ai, sender_name, content } = message;
    
    console.log(`AI ${ai.name} menghasilkan respons`);
    
    // Lacak aktivitas AI
    await db.aiActivity.create({
      ai_name: ai.name,
      ai_id: ai.id,
      conversation_id: req.body.conversation_id,
      response: content.text,
      timestamp: new Date(req.body.timestamp * 1000)
    });
    
    // Update metrik
    await db.metrics.increment('ai_responses');
  }
  
  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="Agent Message Out" icon="user" href="/webhooks/events/agent-message-out">
    Agen manusia mengirim pesan
  </Card>
</CardGroup>
