Νήματα

Δείτε λίστα νημάτων σε ένα inbox, ανακτήστε μεμονωμένο νήμα και ανακτήστε όλα τα μηνύματα που ανήκουν σε ένα νήμα.

Επισκόπηση

Τα νήματα ομαδοποιούν σχετικά μηνύματα σε μια συνομιλία. Το AgentSend αναθέτει αυτόματα εισερχόμενα και εξερχόμενα μηνύματα σε νήματα με βάση τις κεφαλίδες email (In-Reply-To, References). Κάθε νήμα ανήκει σε ακριβώς ένα inbox.

Χρησιμοποιήστε τα endpoints Thread για να διαβάσετε ιστορικό συνομιλίας, να εμφανίσετε προβολή νήματος στο UI του πράκτορά σας ή να καθορίσετε σε ποιο νήμα πρέπει να δρομολογηθεί ένα νέο εισερχόμενο μήνυμα.

Όλα τα requests API απαιτούν κεφαλίδα x-api-key. Λάβετε το κλειδί σας από τον πίνακα ελέγχου AgentSend.

Το Αντικείμενο Νήματος

Τα endpoints που επιστρέφουν νήμα περιλαμβάνουν τα εξής πεδία.

Πεδίο Τύπος Περιγραφή
id string (uuid) Μοναδικό αναγνωριστικό για το νήμα.
inboxId string (uuid) ID του inbox στο οποίο ανήκει αυτό το νήμα.
subject string Γραμμή θέματος του νήματος, από το πρώτο μήνυμα.
messageCount integer Συνολικός αριθμός μηνυμάτων στο νήμα.
lastMessageAt string (ISO 8601) Χρονοσήμανση του πιο πρόσφατου μηνύματος στο νήμα.
createdAt string (ISO 8601) Χρονοσήμανση δημιουργίας του νήματος.
GET /inboxes/{id}/threads

Λίστα Νημάτων

Επιστρέφει λίστα με σελιδοποίηση νημάτων για το καθορισμένο inbox, ταξινομημένα κατά lastMessageAt φθίνουσα.

Παράμετροι Διαδρομής

ΠαράμετροςΤύποςΠεριγραφή
id απαιτείται string (uuid) Το ID του inbox του οποίου τα νήματα θέλετε να δείτε.

Παράμετροι Query

ΠαράμετροςΤύποςΠροεπιλογήΠεριγραφή
limit integer 20 Μέγιστος αριθμός νημάτων προς επιστροφή. Μέγιστη τιμή 100.
offset integer 0 Αριθμός νημάτων προς παράλειψη πριν την επιστροφή αποτελεσμάτων.

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

Response 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}

Λήψη Νήματος

Ανακτά μεμονωμένο νήμα με το ID του. Επιστρέφει το πλήρες αντικείμενο Thread.

Παράμετροι Διαδρομής

ΠαράμετροςΤύποςΠεριγραφή
id απαιτείται string (uuid) Το ID του νήματος προς ανάκτηση.

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);

Response 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

Λήψη Μηνυμάτων Νήματος

Επιστρέφει λίστα με σελιδοποίηση μηνυμάτων που ανήκουν στο καθορισμένο νήμα, ταξινομημένα κατά createdAt αύξουσα (παλαιότερα πρώτα).

Παράμετροι Διαδρομής

ΠαράμετροςΤύποςΠεριγραφή
id απαιτείται string (uuid) Το ID του νήματος του οποίου τα μηνύματα θέλετε να ανακτήσετε.

Παράμετροι Query

ΠαράμετροςΤύποςΠροεπιλογήΠεριγραφή
limit integer 20 Μέγιστος αριθμός μηνυμάτων προς επιστροφή. Μέγιστη τιμή 100.
offset integer 0 Αριθμός μηνυμάτων προς παράλειψη πριν την επιστροφή αποτελεσμάτων.

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);
}

Response 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
}
💡

Ο πίνακας μηνυμάτων περιέχει πλήρη αντικείμενα Message. Δείτε την αναφορά API Μηνυμάτων για την πλήρη λίστα πεδίων.