# 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.
