Missive

Learn how to use the Missive node in StackAI to trigger workflows on incoming email and automate your team inbox with detailed input, configuration, and output examples.

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 docsarrow-up-right).

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.

Last updated

Was this helpful?