Threads
Threads in Luella refer to the email conversations (or message chains) exchanged between a group of participants. Each thread includes all messages exchanged in that conversation. These are particularly useful for reading replies received for your outreach emails.
All references to mailboxId
in this section refer to the email address ID, such as john.doe@luella.ai
.
The thread model
This model describes metadata about a single thread, such as its participants, subject, teaser preview, and location (Inbox, Junk, Sent, Archive).
Properties
- Name
threadId
- Type
- string
- Description
Unique identifier for the thread.
- Name
mailboxId
- Type
- string
- Description
Email address (not mailbox resource) that owns the thread, e.g. john.doe@luella.ai.
- Name
clusterId
- Type
- string
- Description
(Optional) Cluster associated with this thread.
- Name
sequenceId
- Type
- string
- Description
(Optional) Sequence that initiated the outreach.
- Name
campaignId
- Type
- string
- Description
(Optional) Campaign associated with this conversation.
- Name
subject
- Type
- string
- Description
Email subject line for the thread.
- Name
participants
- Type
- string[]
- Description
List of participants in the thread (typically email addresses).
- Name
location
- Type
- string
- Description
Thread folder. One of: Inbox, Sent, Archive, Junk.
- Name
teaser
- Type
- string
- Description
A preview of the last message in the thread.
- Name
status
- Type
- string
- Description
Thread read status. One of: Read or Unread.
- Name
lastMessageAt
- Type
- timestamp (ISO string)
- Description
Timestamp of the last message in the thread.
- Name
lastUpdatedAt
- Type
- timestamp (ISO string)
- Description
Timestamp of last update to thread metadata.
List all threads
Retrieve a list of threads from one or more mailboxes, filtered by status, folder, or campaign context.
Required attributes
- Name
userId
- Type
- string
- Description
ID of the user making the request.
- Name
workspaceId
- Type
- string
- Description
Workspace containing the mailboxes.
- Name
location
- Type
- string
- Description
Thread folder to search in (Inbox, Junk, Sent, Archive).
- Name
mailboxIds
- Type
- string[]
- Description
Array of email address IDs (e.g. john.doe@luella.ai).
- Name
sequenceIds
- Type
- string[]
- Description
Optional filter for sequence IDs.
- Name
campaignIds
- Type
- string[]
- Description
Optional filter for campaign IDs.
- Name
clusterIds
- Type
- string[]
- Description
Optional filter for cluster IDs.
- Name
status
- Type
- string[]
- Description
One or more thread statuses (Read, Unread).
- Name
sortOrder
- Type
- string
- Description
Sort order (Ascending or Descending).
Optional attributes
- Name
maxItems
- Type
- number
- Description
Maximum threads to return.
- Name
nextToken
- Type
- string
- Description
Token for pagination.
Request
{
"userId": "user_123",
"workspaceId": "workspace_456",
"location": "Inbox",
"mailboxIds": ["john.doe@luella.ai"],
"sequenceIds": [],
"campaignIds": [],
"clusterIds": [],
"status": ["Unread"],
"sortOrder": "Descending",
"maxItems": 10
}
Response
{
"threads": [
{
"threadId": "thread_001",
"mailboxId": "john.doe@luella.ai",
"subject": "Re: Quick question",
"participants": ["john.doe@luella.ai", "prospect@example.com"],
"lastMessageAt": "2024-04-03T12:00:00.000Z",
"location": "Inbox",
"teaser": "Thanks for reaching out...",
"status": "Unread"
}
],
"nextToken": null
}
Get a thread
Retrieve all metadata about a specific thread, including mailbox, campaign, and participant information.
Required attributes
- Name
userId
- Type
- string
- Description
ID of the user requesting the thread.
- Name
workspaceId
- Type
- string
- Description
Workspace that owns the thread.
- Name
threadId
- Type
- string
- Description
Unique identifier for the thread to retrieve.
Request
{
"userId": "user_123",
"workspaceId": "workspace_456",
"threadId": "thread_001"
}
Response
{
"threadId": "thread_001",
"mailboxId": "john.doe@luella.ai",
"clusterId": "cluster_001",
"sequenceId": "sequence_123",
"campaignId": "camp_001",
"subject": "Re: Meeting proposal",
"participants": ["john.doe@luella.ai", "ceo@startup.com"],
"lastMessageAt": "2024-04-02T16:00:00.000Z",
"lastUpdatedAt": "2024-04-03T09:45:00.000Z",
"location": "Inbox",
"teaser": "Let's find a time next week...",
"status": "Read"
}
Update a thread
Update a thread’s metadata including location (Inbox, Sent, etc), read status, or teaser content. Use this to archive, mark read/unread, or move threads between folders.
Required attributes
- Name
userId
- Type
- string
- Description
ID of the user updating the thread.
- Name
workspaceId
- Type
- string
- Description
Workspace the thread belongs to.
- Name
threadId
- Type
- string
- Description
ID of the thread to update.
- Name
participants
- Type
- string[]
- Description
Updated list of participants.
- Name
location
- Type
- string
- Description
Updated folder location for the thread (Inbox, Sent, Archive, Junk).
- Name
status
- Type
- string
- Description
Updated thread status (Read or Unread).
Optional attributes
- Name
subject
- Type
- string
- Description
Optional subject line to override.
- Name
teaser
- Type
- string
- Description
Optional teaser/preview content.
- Name
lastMessageAt
- Type
- timestamp (ISO string)
- Description
Optional updated timestamp of the last message.
Request
{
"userId": "user_123",
"workspaceId": "workspace_456",
"threadId": "thread_001",
"participants": ["john.doe@luella.ai", "ceo@startup.com"],
"location": "Archive",
"status": "Read",
"teaser": "Looking forward to your response",
"lastMessageAt": "2024-04-03T16:00:00.000Z"
}
Response
{
"threadId": "thread_001"
}
Delete a thread
Permanently deletes a thread and all its metadata.
Required attributes
- Name
userId
- Type
- string
- Description
ID of the user performing the deletion.
- Name
workspaceId
- Type
- string
- Description
Workspace the thread belongs to.
- Name
threadId
- Type
- string
- Description
ID of the thread to delete.
Request
{
"userId": "user_123",
"workspaceId": "workspace_456",
"threadId": "thread_001"
}
Response
{}