Connection
- Authentication: API key (API token).
Missive → Settings → API → Create a new token. Copy the token (it starts with missive_pat-). Missive tokens are personal and have no scopes: the agents will see every account, shared inbox and contact book the token owner can access, so create it from a user whose access fits what the agents need. API tokens require a Missive plan that includes API access (see missiveapp.com/pricing).See Missive’s documentation.
Read actions (12)
| Action | Description |
|---|---|
get_contact | Fetch one contact by id (names, infos, memberships). A deleted contact answers 404. |
get_conversation | Fetch one conversation by id (subject, assignees, team, shared labels, counts, web_url). A merged conversation answers with its new id. |
get_message | Fetch one message by id: headers, HTML body and attachment metadata (signed download URLs). |
list_contact_books | List the contact books the token owner can access (id, name, sharing). A contact book id is required to list or create contacts. |
list_contacts | List or search the contacts of a contact book. contact_book (id from list_contact_books) is required. Optional: search (matched against names, e-mails, phones, organizations, notes…), order (“last_name” default, or “last_modified”), modified_since (Unix seconds), include_deleted (boolean, with modified_since), limit 1-200 (default 50), offset. |
list_conversation_comments | List the internal comments of a conversation, newest first. limit 1-10 (default 10). To paginate, pass until = the created_at (Unix seconds) of the oldest comment of the previous page. |
list_conversation_messages | List the messages of a conversation (drafts excluded), newest first. limit 1-10 (default 10). To paginate, pass until = the delivered_at (Unix seconds) of the oldest message of the previous page. Use get_message for the full HTML body. |
list_conversations | List conversations visible to the token owner, newest activity first. At least ONE mailbox filter is required: inbox, all, assigned, closed, snoozed, flagged, trashed, junked or drafts (each: literal true), or shared_label / team_inbox / team_closed / team_all (each: a label or team id string from list_shared_labels / list_teams). Optional: organization (id string), and at most one contact filter among email (address string), domain (e.g. “example.com”) and contact_organization (id string). limit 1-50 (default 25). To paginate, pass until = the last_activity_at (Unix seconds) of the oldest conversation of the previous page. |
list_organizations | List the organizations the token owner belongs to (id, name). Optional: limit 1-200 (default 50), offset. |
list_shared_labels | List shared labels (id, name, full path, organization). Optional: organization (id), limit 1-200 (default 50), offset. |
list_teams | List teams (id, name, organization, members). Optional: organization (id), limit 1-200 (default 50), offset. |
list_users | List users of the token owner’s organizations (id, name, email; me: true marks the token owner). Optional: organization (id), limit 1-200 (default 50), offset. |
Write actions (3)
| Action | Description |
|---|---|
create_contact | Create one contact. contact_book: contact book id string (required, from list_contact_books). Optional strings: first_name, last_name, middle_name, prefix, suffix, nickname, notes, gender; starred: boolean. infos: ARRAY of objects, each with kind and label — {“kind”: “email”, “value”: address, “label”: “home” | “work” | “personal” | “other”}, {“kind”: “phone_number”, “value”: string, “label”: “main” | “mobile” | “home” | “work” | “home_fax” | “work_fax” | “other_fax” | “pager” | “other”}, {“kind”: “twitter”, “value”: “@handle”, “label”: “work” | “personal” | “other”}, {“kind”: “facebook”, “name”: string, “label”: “work” | “personal” | “other”}, {“kind”: “url”, “value”: URL, “label”: “homepage” | “profile” | “blog” | “work” | “personal” | “other”}, {“kind”: “physical_address”, “label”: “work” | “home” | “other”, street?, extended_address?, city?, region?, postal_code?, po_box?, country?}, {“kind”: “custom”, “value”: string, “label”: “other”, “custom_label”?: string}; custom_label is also allowed with label “other”. memberships: ARRAY of {“group”: {“kind”: “organization” | “group”, “name”: string}, “title”?, “department”?, “location”?, “description”? (these four only for an organization)}. |
create_draft | Create a draft (default) or send a message. send: boolean, false by default = the draft stays in Missive for a human to review; true = sent immediately (cannot be combined with send_at). from_field: ONE object, never a string — e-mail {“address”: string matching one of your Missive aliases, “name”?: string} or SMS/WhatsApp {“phone_number”: ”+” and digits matching one of your connected numbers, “type”?: “twilio” | “signalwire” | “twilio_whatsapp” | “whatsapp”}. to_fields: ARRAY of objects, never strings — e-mail [{“address”: string, “name”?: string}] or SMS/WhatsApp exactly one [{“phone_number”: “+33612345678”}]. Optional: cc_fields / bcc_fields (arrays of {“address”, “name”?}), subject (string; for a reply use “Re: <original subject>”), body (string, HTML or text), conversation (conversation id string, to reply in an existing conversation) or references (array of Message-ID strings), send_at (integer Unix seconds, schedules the send), auto_followup (boolean, needs send_at: discarded if someone replies), team (team id), force_team (boolean), organization (organization id — required with add_users / add_assignees / remove_assignees), add_users / add_assignees / remove_assignees (arrays of user id strings), add_shared_labels / remove_shared_labels (arrays of shared label id strings), conversation_subject (string), conversation_color (hex like “#ff0000” or “good” | “warning” | “danger”), add_to_inbox, add_to_team_inbox (needs team), close, quote_previous_message, add_default_signature (booleans). |
create_post | Add a post — an internal note visible to the team in the conversation, never sent to the customer — to an existing conversation (Missive has no endpoint to create a comment). conversation: conversation id string (required). notification: object {“title”: string, “body”: string} (required, used for the notification). Plus text (plain string) or markdown (Markdown string): at least one, max 8000 characters. Optional: username (string, author name shown instead of the token owner). |
Permissions
Every action above must be explicitly granted to an agent before it can be used. See Permissions for the grant model and Security for how credentials are protected.Last reviewed against the provider API: September 2026.