Inbox
Inbox handles messages and replies inside existing conversations.
Inbox is where you read and reply in existing conversations. Use it after an inbound reply, not to begin net-new outreach. The app screen is /dashboard/unibox, and a reply belongs to the existing thread rather than a new sequence enrollment.
Architect uses the inbox-replies skill to understand conversation context. It uses the unibox pack for the actual reads and reply action, while sequences remain responsible for outreach cadence.
Read thread context first
unibox.context.threads_list lists LinkedIn DM conversations newest first. It is free and synchronous. The result does not contain status or assignee because those are stored separately.
| Thread field | Meaning |
|---|---|
id | The provider conversation URN. |
contact_id | The linked contact identifier. |
unread_count | The number of unread messages. |
last_message_at and last_message_preview | The newest-message ordering information. |
unibox.context.thread_messages reads the selected thread newest first. Each message has an id, direction, body, and sent time. It does not return a sender profile, attachments, or triage classification.
Draft before sending
Read the complete returned thread before asking Architect to draft a reply. Check the recipient, the actual message history, and the sender identity in Inbox. A draft is a chance to correct tone or facts before the external action.
Send a thread reply
unibox.context.thread_reply_send is asynchronous and returns status, account_id, remaining_capacity, message, and provider_receipt after acceptance.
Use the full thread context
Inbox is for existing conversations, not net-new outreach. Start with unibox.context.threads_list to find the newest LinkedIn DM conversations, then read unibox.context.thread_messages for the selected thread. The message read is ordered newest first and returns message id, direction, body, and sent time.
Architect uses the inbox-replies skill to interpret the request and the unibox pack for the actual reads. The skill teaches how to reply in context, while the fetched capability schema governs the thread identifier and any send input. In the app, compare the returned messages with the selected conversation before asking for a draft.
The thread contract does not promise a sender profile, attachments, or triage classification. Use the returned conversation facts instead of inventing missing context. If a person, account, or related Record needs separate investigation, keep the thread read as the evidence for what was actually said.
Draft without delivery
Ask Architect to draft a reply without sending it when you need to review tone, facts, or the requested next step. A draft preserves the distinction between reading a LinkedIn conversation and taking a provider action. Check the recipient, message history, sender identity shown in Inbox, and draft text before you request live delivery.
Use Modes to understand the execution choice for a capability. A dry run validates and previews without business writes, provider spend, or outward actions when the contract supports it. Live is the only mode that can perform the reply action described by the fetched contract.
Inbox complements, but does not replace, a Sequence. A Sequence manages a paced outreach journey, while a reply belongs to an existing thread. Read Sequences and enrollment when the question is about an audience journey rather than a response to one person.
Check the send result
The reply-send capability is asynchronous. Its accepted result reports status, account id, remaining capacity, message, and provider receipt. Keep that response with the conversation, because it records the account context and the provider-facing result of the send request.
If the action returns a Run, inspect the Run instead of sending the reply a second time. A Run records completed and incomplete work and can have more event pages. The Inbox thread is the conversation view, while the Run is the execution record for work that was accepted.
A reply can reach a real person and there is no unsend. Treat the returned provider receipt as evidence of the provider request, then review the thread and Run if you need to determine the resulting state. Do not assume that a draft or a request receipt is equivalent to a delivered message.
When Inbox work fails
Search before selecting a capability and fetch its schema before running it. If thread data is incomplete, the contract does not promise sender profiles or attachments, so use the returned conversation facts rather than inferring them. Keep an unsent draft when the external send cannot proceed.
If sending cannot proceed, preserve the draft and resolve the missing connection or capacity issue in the relevant app settings before retrying. Fetch the current send contract again when its schema came from another turn. This avoids applying a stale input shape to an active conversation.