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. |
Daftar Utas
Mengembalikan daftar terpaginasi utas untuk kotak masuk yang ditentukan, diurutkan berdasarkan lastMessageAt menurun.
Parameter Path
| Parameter | Tipe | Deskripsi |
|---|---|---|
id wajib |
string (uuid) | ID kotak masuk yang utasnya ingin Anda tampilkan. |
Parameter Query
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
limit |
integer | 20 |
Jumlah maksimum utas yang dikembalikan. Nilai maks adalah 100. |
offset |
integer | 0 |
Jumlah utas yang dilewati sebelum mengembalikan hasil. |
Request
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
{
"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
}Ambil Utas
Mengambil satu utas berdasarkan ID-nya. Mengembalikan objek Thread lengkap.
Parameter Path
| Parameter | Tipe | Deskripsi |
|---|---|---|
id wajib |
string (uuid) | ID utas untuk diambil. |
Request
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
{
"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"
}Ambil Pesan Utas
Mengembalikan daftar terpaginasi pesan yang termasuk dalam utas yang ditentukan, diurutkan berdasarkan createdAt menaik (terlama dulu).
Parameter Path
| Parameter | Tipe | Deskripsi |
|---|---|---|
id wajib |
string (uuid) | ID utas yang pesannya ingin Anda ambil. |
Parameter Query
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
limit |
integer | 20 |
Jumlah maksimum pesan yang dikembalikan. Nilai maks adalah 100. |
offset |
integer | 0 |
Jumlah pesan yang dilewati sebelum mengembalikan hasil. |
Request
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
{
"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.