Utas

Daftar utas di kotak masuk, ambil satu utas, dan ambil semua pesan yang termasuk dalam utas.

Ikhtisar

Utas mengelompokkan pesan terkait dalam percakapan. AgentSend secara otomatis menetapkan pesan masuk dan keluar ke utas berdasarkan header email (In-Reply-To, References). Setiap utas termasuk dalam satu kotak masuk.

Gunakan endpoint Utas untuk membaca riwayat percakapan, menampilkan tampilan utas di UI agen Anda, atau menentukan utas mana yang harus dirutekan pesan masuk baru.

Semua request API memerlukan header x-api-key. Dapatkan kunci Anda dari dasbor AgentSend.

Objek Thread

Endpoint yang mengembalikan utas akan menyertakan field berikut.

Field Tipe Deskripsi
id string (uuid) Pengenal unik untuk utas.
inboxId string (uuid) ID kotak masuk tempat utas ini berada.
subject string Baris subjek utas, diambil dari pesan pertama.
messageCount integer Jumlah total pesan dalam utas.
lastMessageAt string (ISO 8601) Timestamp pesan terbaru dalam utas.
createdAt string (ISO 8601) Timestamp saat utas dibuat.
GET /inboxes/{id}/threads

Daftar Utas

Mengembalikan daftar terpaginasi utas untuk kotak masuk yang ditentukan, diurutkan berdasarkan lastMessageAt menurun.

Parameter Path

ParameterTipeDeskripsi
id wajib string (uuid) ID kotak masuk yang utasnya ingin Anda tampilkan.

Parameter Query

ParameterTipeDefaultDeskripsi
limit integer 20 Jumlah maksimum utas yang dikembalikan. Nilai maks adalah 100.
offset integer 0 Jumlah utas yang dilewati sebelum mengembalikan hasil.

Request

javascript
const inboxId = "inbox_01hx4z2k9m3p7qr8st5uvwxy";

const res = await fetch(
  `https://api.agentsend.io/inboxes/${inboxId}/threads?limit=20&offset=0`,
  {
    headers: { "x-api-key": process.env.AGENTSEND_API_KEY },
  }
);

const data = await res.json();
console.log(data.data); // array of Thread objects

Respons 200

json
{
  "data": [
    {
      "id": "thr_01hx4z2k9m3p7qr8st5uvwxy",
      "inboxId": "inbox_01hx4z2k9m3p7qr8st5uvwxy",
      "subject": "Re: Your order has shipped",
      "messageCount": 4,
      "lastMessageAt": "2024-06-12T14:22:07Z",
      "createdAt": "2024-06-10T09:01:33Z"
    },
    {
      "id": "thr_02hy5a3l0n4q8rs9tu6vwxyz",
      "inboxId": "inbox_01hx4z2k9m3p7qr8st5uvwxy",
      "subject": "Hello from AgentSend",
      "messageCount": 1,
      "lastMessageAt": "2024-06-11T08:44:55Z",
      "createdAt": "2024-06-11T08:44:55Z"
    }
  ],
  "total": 2,
  "limit": 20,
  "offset": 0
}
GET /threads/{id}

Ambil Utas

Mengambil satu utas berdasarkan ID-nya. Mengembalikan objek Thread lengkap.

Parameter Path

ParameterTipeDeskripsi
id wajib string (uuid) ID utas untuk diambil.

Request

javascript
const threadId = "thr_01hx4z2k9m3p7qr8st5uvwxy";

const res = await fetch(
  `https://api.agentsend.io/threads/${threadId}`,
  {
    headers: { "x-api-key": process.env.AGENTSEND_API_KEY },
  }
);

const thread = await res.json();
console.log(thread.subject, thread.messageCount);

Respons 200

json
{
  "id": "thr_01hx4z2k9m3p7qr8st5uvwxy",
  "inboxId": "inbox_01hx4z2k9m3p7qr8st5uvwxy",
  "subject": "Re: Your order has shipped",
  "messageCount": 4,
  "lastMessageAt": "2024-06-12T14:22:07Z",
  "createdAt": "2024-06-10T09:01:33Z"
}
GET /threads/{id}/messages

Ambil Pesan Utas

Mengembalikan daftar terpaginasi pesan yang termasuk dalam utas yang ditentukan, diurutkan berdasarkan createdAt menaik (terlama dulu).

Parameter Path

ParameterTipeDeskripsi
id wajib string (uuid) ID utas yang pesannya ingin Anda ambil.

Parameter Query

ParameterTipeDefaultDeskripsi
limit integer 20 Jumlah maksimum pesan yang dikembalikan. Nilai maks adalah 100.
offset integer 0 Jumlah pesan yang dilewati sebelum mengembalikan hasil.

Request

javascript
const threadId = "thr_01hx4z2k9m3p7qr8st5uvwxy";

const res = await fetch(
  `https://api.agentsend.io/threads/${threadId}/messages?limit=20&offset=0`,
  {
    headers: { "x-api-key": process.env.AGENTSEND_API_KEY },
  }
);

const data = await res.json();

for (const msg of data.data) {
  console.log(msg.fromAddress, msg.subject, msg.createdAt);
}

Respons 200

json
{
  "data": [
    {
      "id": "msg_01hx4z2k9m3p7qr8st5uvwxy",
      "threadId": "thr_01hx4z2k9m3p7qr8st5uvwxy",
      "inboxId": "inbox_01hx4z2k9m3p7qr8st5uvwxy",
      "direction": "outbound",
      "fromAddress": "agent@agentsend.io",
      "toAddresses": ["customer@example.com"],
      "subject": "Your order has shipped",
      "bodyText": "Hi! Your order #1234 has shipped and will arrive by Friday.",
      "status": "delivered",
      "createdAt": "2024-06-10T09:01:33Z"
    },
    {
      "id": "msg_02hy5a3l0n4q8rs9tu6vwxyz",
      "threadId": "thr_01hx4z2k9m3p7qr8st5uvwxy",
      "inboxId": "inbox_01hx4z2k9m3p7qr8st5uvwxy",
      "direction": "inbound",
      "fromAddress": "customer@example.com",
      "toAddresses": ["agent@agentsend.io"],
      "subject": "Re: Your order has shipped",
      "bodyText": "Thanks! Can you share the tracking number?",
      "status": "received",
      "createdAt": "2024-06-10T11:17:45Z"
    }
  ],
  "total": 4,
  "limit": 20,
  "offset": 0
}
💡

Array pesan berisi objek Message lengkap. Lihat referensi API Pesan untuk daftar field lengkap.