Νήματα

Τα νήματα ομαδοποιούν σχετικά μηνύματα σε συνομιλίες. Το AgentSend ομαδοποιεί αυτόματα μηνύματα με βάση τις τυπικές κεφαλίδες email ώστε οι πράκτορές σας να έχουν πάντα το πλήρες πλαίσιο μιας συνομιλίας.

Επισκόπηση

Κάθε συνομιλία email στο AgentSend οργανώνεται σε ένα νήμα. Ένα νήμα συλλέγει όλα τα σχετικά μηνύματα — το αρχικό email, κάθε απάντηση και κάθε απάντηση σε απάντηση — σε ένα ενιαίο, διατεταγμένο αντικείμενο συνομιλίας. Αυτό διευκολύνει τους πράκτορες να διαβάσουν το πλήρες ιστορικό πριν συντάξουν μια απάντηση.

Τα νήματα δημιουργούνται αυτόματα. Όταν το AgentSend λαμβάνει ή στέλνει ένα μήνυμα που ξεκινά νέα συνομιλία, δημιουργείται ένα νήμα. Όταν φτάνει μια απάντηση, το AgentSend την αντιστοιχίζει στο υπάρχον νήμα και προσαρτά το νέο μήνυμα.

Τα νήματα περιορίζονται σε ένα εισερχόμενο. Η ίδια αλυσίδα email που λαμβάνεται από δύο διαφορετικά εισερχόμενα θα παράγει δύο ξεχωριστά αντικείμενα νήματος.

Πώς Λειτουργεί το Threading

Το AgentSend ακολουθεί το τυπικό μοντέλο email threading που χρησιμοποιείται από κάθε σημαντικό email client. Όταν φτάνει μια απάντηση, το AgentSend ελέγχει τις κεφαλίδες In-Reply-To και References για να προσδιορίσει σε ποιο υπάρχον νήμα ανήκει το μήνυμα. Αν βρεθεί αντιστοιχία, το μήνυμα προσαρτάται σε αυτό το νήμα. Αν δεν βρεθεί αντιστοιχία, δημιουργείται νέο νήμα.

Μπορείτε επίσης να συσχετίσετε ρητά ένα μήνυμα με ένα νήμα συμπεριλαμβάνοντας το πεδίο threadId κατά την αποστολή. Αυτό είναι χρήσιμο όταν ξεκινάτε ένα follow-up από την πλευρά του πράκτορά σας και θέλετε να το κρατήσετε ομαδοποιημένο με προηγούμενη συνομιλία, ακόμη και αν ο παραλήπτης ξεκινήσει νέα αλυσίδα απάντησης.

💡

Πάντα διαβάστε το threadId από εισερχόμενα payloads webhook και περάστε το πίσω κατά την απάντηση. Αυτό εγγυάται σωστή ομαδοποίηση ακόμη και όταν οι παραλήπτες αλλάζουν τη γραμμή θέματός τους.

Αλγόριθμος αντιστοίχισης

  1. Ελέγξτε την κεφαλίδα In-Reply-To έναντι όλων των γνωστών message ID στα εισερχόμενα.
  2. Αν δεν υπάρχει αντιστοιχία, σαρώστε τη λίστα κεφαλίδων References από δεξιά (πιο πρόσφατο) προς αριστερά.
  3. Αν εξακολουθεί να μην υπάρχει αντιστοιχία, δημιουργήστε νέο νήμα για αυτό το μήνυμα.

Ιδιότητες Νήματος

Κάθε αντικείμενο νήματος έχει τα εξής πεδία:

Ιδιότητα Τύπος Περιγραφή
id string Μοναδικό αναγνωριστικό για το νήμα.
inboxId string Τα εισερχόμενα στα οποία ανήκει αυτό το νήμα.
subject string Γραμμή θέματος του πρώτου μηνύματος στο νήμα.
messageCount integer Συνολικός αριθμός μηνυμάτων σε αυτό το νήμα.
lastMessageAt string (ISO 8601) Χρονοσήμανση του πιο πρόσφατου μηνύματος.
createdAt string (ISO 8601) Χρονοσήμανση της πρώτης δημιουργίας του νήματος.

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

Ανακτήστε όλα τα νήματα για ένα εισερχόμενο με ένα request GET. Τα αποτελέσματα διατάσσονται κατά lastMessageAt φθίνουσα, ώστε οι πιο ενεργές συνομιλίες να εμφανίζονται πρώτες.

javascript
// GET /inboxes/{id}/threads?limit=20&offset=0
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, total } = await res.json();

for (const thread of data) {
  console.log(thread.id, thread.subject, thread.messageCount);
}

Παράμετροι query

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

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

Ανακτήστε κάθε μήνυμα σε ένα νήμα με χρονολογική σειρά. Αυτό δίνει στον πράκτορά σας το πλήρες ιστορικό συνομιλίας που χρειάζεται για να συντάξει μια απάντηση με επίγνωση του πλαισίου.

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

const { data } = await res.json();

// Build a conversation history for your LLM
const history = data.map(msg => ({
  role: msg.direction === "outbound" ? "assistant" : "user",
  content: msg.bodyText,
}));

console.log(`Loaded ${history.length} messages from thread`);

Τα μηνύματα εντός ενός νήματος επιστρέφονται σε αύξουσα χρονολογική σειρά (sentAt παλαιότερα πρώτα). Αυτό ταιριάζει με τη φυσική σειρά που αναμένεται από τα περισσότερα API συνομιλίας LLM.

Απάντηση σε Νήμα

Για να συνεχίσετε μια υπάρχουσα συνομιλία, συμπεριλάβετε το threadId κατά την αποστολή μηνύματος. Το AgentSend θα ορίσει αυτόματα τις σωστές κεφαλίδες In-Reply-To και References ώστε η απάντηση να εμφανίζεται στον email client του παραλήπτη ως μέρος της ίδιας συνομιλίας.

javascript
// POST /inboxes/{id}/messages — reply within an existing thread
await fetch(`https://api.agentsend.io/inboxes/${inboxId}/messages`, {
  method: "POST",
  headers: {
    "x-api-key": process.env.AGENTSEND_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    to: ["customer@example.com"],
    subject: "Re: Your support request",
    bodyText: "Thanks for reaching out! Here is the information you requested...",
    threadId: "thrd_abc123", // ties this message to the existing conversation
  }),
});

Αν παραλείψετε το threadId, το εξερχόμενο μήνυμα θα ξεκινήσει νέο νήμα ακόμη και αν χρησιμοποιήσετε την ίδια γραμμή θέματος. Πάντα να περνάτε το threadId όταν συνεχίζετε μια συνομιλία.

Περιπτώσεις Χρήσης

Τα νήματα ξεκλειδώνουν ένα σύνολο ροών εργασίας που απαιτούν μνήμη σε πολλαπλές ανταλλαγές email.