# Missive

**What is Missive?**

Missive is a shared inbox and collaboration app that unifies email, SMS, and WhatsApp in one place so teams can manage customer conversations together, assign threads, and keep everything in a single inbox.

***

**Missive actions**

* **On Email Received** (trigger) — Start a workflow when a new email arrives in Missive; optionally filter by sender, subject, or content.
* **List Conversations** — Fetch conversations in a time range with filters, up to 500.
* **List Conversation Messages** — Retrieve messages in a conversation, up to 100.
* **List Conversation Comments** — Retrieve comments in a conversation, up to 100.
* **List Conversation Posts** — Retrieve posts in a conversation, up to 100.
* **Get Conversation** — Load full details of one conversation by ID or selection.
* **Get Message(s) by ID** — Load full details of one or list of messages by ID.
* **Create Post** — Add an internal post/comment to a conversation.
* **Create Draft** — Create an email/SMS/WhatsApp draft (not sent), optionally with a scheduled send time.
* **Send Message** — Send an email, SMS, or WhatsApp message immediately.

***

#### 1. On Email Received (trigger)

**Description:** Starts a workflow when a new email is received in Missive. Optional filters (organization, sender, subject, or body) limit which emails trigger the workflow.

**Required inputs:** None (trigger has no inputs; it fires on incoming email).

**Output:** `message_id`, `conversation_id`, `from_email`, `from_name`, `subject`, `body`, `received_at`.

**Limits:** API timeout 30 seconds; webhook filters are optional.

#### 2. List Conversations

**Description:** Returns conversations from the current time back to a given Unix timestamp, with optional mailbox/team filters. Pagination is automatic; up to 500 conversations are returned.

**Required inputs:**

* **until** (Required): Unix timestamp as a string. Fetches conversations from now back to this time. (Tip: use a LLM to convert natural language to Unix timestamp, noting the timezone)
* **At least one filter** (Required): One of `inbox`, `all_mailbox`, `assigned`, `closed`, `snoozed`, `flagged`, `trashed`, `junked`, `drafts`, or a team/shared-label filter (`shared_label`, `team_inbox`, `team_closed`, `team_all` with ID).

**Output:** `conversations` (array of conversation objects), `count`, `has_more`.

**Limits:** maximum 500 conversations per action; 30s timeout.

#### 3. Get Conversation

**Description:** Returns a single conversation by ID (full details: subject, last\_activity\_at, assignees, etc.).

**Required inputs:**

* **conversation\_id** (Required): The Missive conversation ID (select from dropdown or enter).

**Output:** `conversation` (single conversation object).

**Limits:** 30s timeout.

#### 4. Get Message(s) by ID

**Description:** Returns one or more messages by their Missive message IDs. Accepts comma-separated IDs; requests are chunked automatically.

**Required inputs:**

* **message\_ids** (Required): Comma-separated list of message IDs (e.g. `id1, id2, id3`).

**Output:** `messages` (array of message objects, in the same order as input IDs; missing IDs are omitted).

**Limits:** 30s timeout.

#### 5. List Conversation Messages

**Description:** Returns messages in a conversation from the current time back to a given Unix timestamp.

**Required inputs:**

* **conversation\_id** (Required): The conversation to list messages from.
* **until** (Required): Unix timestamp as a string. Fetches messages from now back to this time. (Tip: use a LLM to convert natural language to Unix timestamp, noting the timezone)

**Output:** `messages` (array), `count`, `has_more`.

**Limits:** maximum 100 messages per action; 30s timeout.

#### 6. List Conversation Comments

**Description:** Returns internal comments in a conversation from the current time back to a given Unix timestamp.

**Required inputs:**

* **conversation\_id** (Required): The conversation to list comments from.
* **until** (Required): Unix timestamp as a string. Fetches comments from now back to this time. (Tip: use a LLM to convert natural language to Unix timestamp, noting the timezone)

**Output:** `comments` (array), `count`, `has_more`.

**Limits:** maximum 100 comments per action; 30s timeout.

#### 7. List Conversation Posts

**Description:** Returns internal posts (notes) in a conversation from the current time back to a given Unix timestamp.

**Required inputs:**

* **conversation\_id** (Required): The conversation to list posts from.
* **until** (Required): Unix timestamp as a string. Fetches posts from now back to this time. (Tip: use a LLM to convert natural language to Unix timestamp, noting the timezone)

**Output:** `posts` (array), `count`, `has_more`.

**Limits:** maximum 100 posts per action; 30s timeout.

#### 8. Create Post

**Description:** Creates an internal post in a Missive conversation (or starts a new conversation). Used for notes, bot replies, or rich notifications.

**Required inputs:**

* **notification\_title** (Required): Title for the notification.
* **notification\_body** (Required): Body text for the notification.
* **At least one of:** **text**, **markdown**, or **attachments** (Required). The main post content must be provided in one of these forms.

**Output:** `conversation_id`, `post_id`.

**Limits:** 30s timeout. Attachments follow Missive’s rich-block format ([see API docs](https://missiveapp.com/docs/developers/rest-api)).

#### 9. Create Draft

**Description:** Creates a draft message (email, SMS, or WhatsApp) without sending. Optionally set a scheduled send time.

**Required inputs:**

* **from\_type** (Required): `email` or `sms_whatsapp`.
* **from\_field** (Required): JSON object. Email: `{"address":"...","name":"..."}`. SMS/WhatsApp: `{"phone_number":"+123...","type":"whatsapp"}`.
* **to\_fields** (Required): JSON array of recipients. Email: `[{"address":"...","name":"..."}]`. SMS/WhatsApp: `[{"phone_number":"+123..."}]` (one recipient).

**Output:** `draft_id`, `conversation_id` (if linked to a conversation).

**Limits:** 25 attachments per draft; 30s timeout.

#### 10. Send Message

**Description:** Sends a message immediately via email, SMS, or WhatsApp.

**Required inputs:**

* **from\_type** (Required): `email` or `sms_whatsapp`.
* **from\_field** (Required): JSON object. Email: `{"address":"...","name":"..."}`. SMS/WhatsApp: `{"phone_number":"+123...","type":"whatsapp"}`.
* **to\_fields** (Required): JSON array of recipients. Email: `[{"address":"...","name":"..."}]`. SMS/WhatsApp: `[{"phone_number":"+123..."}]` (one recipient).

**Output:** `message_id`, `conversation_id` (if sent in a conversation).

**Limits:** 25 attachments per message; 30s timeout.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stackai.com/workflow-builder/apps/missive.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
