> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Missive

The Missive connector lets your AI agent act in each user's Missive account. Each user connects their own Missive access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 38 tools.

**Authentication:** Bearer Token
**Categories:** Communication, Collaboration, Productivity
**Tools:** 38: 21 read, 14 write, 3 destructive
**Users sign in with:** Access token
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=MISSIVE)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Missive connection

   In **AgentKit > Connections**, create a Missive connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'missive'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Missive:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'missive_list_contact_books',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "missive"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Missive:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="missive_list_contact_books",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Missive credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'missive_get_analytics_report',
  toolInput: {
    report_id: '<report_id>',
  },
  connector: 'missive',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="missive_get_analytics_report",
    tool_input={
        "report_id": "<report_id>",
    },
    connection_name="missive",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `missive_get_analytics_report`

Get Analytics Report · Read-only

Fetch the data of a Missive analytics report created earlier.
Returns the report as JSON; an empty 404 means the report is not ready yet, has expired (60 seconds after completion) or does not exist, so retry every 5 seconds.
Use missive_get_analytics_report after missive_create_analytics_report; wait about 5 seconds before the first call.
Requires the report ID returned by missive_create_analytics_report.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `report_id` (`string`, required): ID of the report returned by missive_create_analytics_report. Example: 8441d4a0-a0ad-4f0f-aa9c-1cc881057e42

Example input: `{"report_id":"<report_id>"}`

### `missive_get_contact`

Get Contact · Read-only

Fetch a single Missive contact by ID.
Returns the contact with name fields, notes, starred flag, infos, memberships and modified_at. A deleted contact returns 404.
Use missive_get_contact when you know the contact ID; use missive_list_contacts to search.
Requires a contact ID from missive_list_contacts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): ID of the contact to fetch. Example: ee31f156-db95-4158-923f-b26450e0dbf7

Example input: `{"contact_id":"<contact_id>"}`

### `missive_get_conversation`

Get Conversation · Read-only

Fetch a single Missive conversation by ID.
Returns the conversation with subject, authors, users and assignees, shared labels, team, message, draft, attachment and task counts, last_activity_at and web and app URLs.
Use missive_get_conversation when you already know the conversation ID; use missive_list_conversations to browse. If the conversation was merged, the returned id may differ from the one requested.
Requires a conversation ID, which missive_list_conversations returns.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of the conversation to fetch. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc

Example input: `{"conversation_id":"<conversation_id>"}`

### `missive_get_message`

Get Message · Read-only

Fetch one Missive message by ID, including its headers, full HTML body and attachments.
Returns the message with type, subject, from and to fields, body, attachments with signed download URLs and references.
Use missive_get_message to read a message body; use missive_list_conversation_messages to find message IDs, which omit the body.
Requires a message ID from missive_list_conversation_messages or missive_list_messages.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): ID of the message to fetch. Example: a2c3f1e4-5b6d-4c7e-8f90-1a2b3c4d5e6f

Example input: `{"message_id":"<message_id>"}`

### `missive_get_response`

Get Response · Read-only

Fetch a single Missive canned response by ID.
Returns the response with title, HTML body, subject, scope, shared labels, default recipients and attachments.
Use missive_get_response when you know the response ID; use missive_list_responses to browse.
Requires a response ID from missive_list_responses.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `response_id` (`string`, required): ID of the response to fetch. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b

Example input: `{"response_id":"<response_id>"}`

### `missive_get_task`

Get Task · Read-only

Fetch a single Missive task by ID.
Returns the task with title, description, state, due date, assignees as full user objects and the team.
Use missive_get_task when you know the task ID; use missive_list_tasks to search.
Requires a task ID from missive_list_tasks.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`string`, required): ID of the task to fetch. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b

Example input: `{"task_id":"<task_id>"}`

### `missive_list_contact_books`

List Contact Books · Read-only

List the Missive contact books the token owner can access.
Returns each contact book's id, name, owning user, organization, sharing settings and import status.
Use missive_list_contact_books to find the contact book ID that missive_list_contacts and missive_create_contact need.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50

Example input: `{}`

### `missive_list_contact_groups`

List Contact Groups · Read-only

List the groups or organizations that contacts in a Missive contact book can belong to.
Returns each group's id and name.
Use missive_list_contact_groups to look up group or organization IDs, for example to filter conversations by contact_organization.
Requires a contact book ID from missive_list_contact_books and a kind.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_book` (`string`, required): ID of the contact book to list groups from. Example: 551b8675-11e9-49c3-aac0-01fb8510d862
- `kind` (`string`, required): Which kind of group to list: organization for companies, or group for label-like groupings. One of: `group`, `organization`.
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50

Example input: `{"contact_book":"<contact_book>","kind":"group"}`

### `missive_list_contacts`

List Contacts · Read-only

List or search the contacts in a Missive contact book.
Returns contacts with id, name fields, notes, starred flag, infos (emails, phones, addresses) and memberships.
Use missive_list_contacts to browse, sync or search a contact book; use missive_get_contact to fetch one contact by ID.
Requires a contact book ID from missive_list_contact_books.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_book` (`string`, required): ID of the contact book to list contacts from. Example: 551b8675-11e9-49c3-aac0-01fb8510d862
- `include_deleted` (`boolean`, optional): Set to true to include deleted contacts in modified_since results; deleted contacts only return id, deleted and modified_at. Example: true
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `modified_since` (`integer`, optional): Unix timestamp. Returns only contacts created or modified since then. Example: 1556137749
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50
- `order` (`string`, optional): Sort order. last_name (the default) sorts by last name; last_modified returns the most recently updated first. One of: `last_name`, `last_modified`.
- `search` (`string`, optional): Text to match against all contact fields: name, email, phone, organization, custom fields and notes. Example: lehoux

Example input: `{"contact_book":"<contact_book>"}`

### `missive_list_conversation_comments`

List Conversation Comments · Read-only

List comments in a Missive conversation, newest first.
Returns comments with id, body, created_at, mentions, author, any attachment and the linked task.
Use missive_list_conversation_comments to read the internal team discussion; use missive_list_conversation_messages for external messages.
Requires a conversation ID from missive_list_conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of the conversation whose comments to list. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 10; the maximum is 10. Example: 10
- `until` (`integer`, optional): Unix timestamp used to paginate. Pass the created_at of the oldest comment from the previous page to get the next (older) page. Example: 1692371867

Example input: `{"conversation_id":"<conversation_id>"}`

### `missive_list_conversation_drafts`

List Conversation Drafts · Read-only

List draft messages in a Missive conversation, newest first.
Returns draft messages in the same shape as messages, with id, preview, recipients, subject and attachments.
Use missive_list_conversation_drafts to see unsent drafts; use missive_list_conversation_messages for delivered messages.
Requires a conversation ID from missive_list_conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of the conversation whose draft messages to list. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 10; the maximum is 10. Example: 10
- `until` (`integer`, optional): Unix timestamp used to paginate. Pass the delivered_at of the oldest draft from the previous page to get the next (older) page. Example: 1692371867

Example input: `{"conversation_id":"<conversation_id>"}`

### `missive_list_conversation_messages`

List Conversation Messages · Read-only

List messages in a Missive conversation, newest first.
Returns messages with id, type, preview, delivered_at, from and to fields, subject, attachments and references (no body; use missive_get_message for the full body).
Use missive_list_conversation_messages to read a conversation's sent and received messages; use missive_list_conversation_comments for internal comments.
Requires a conversation ID from missive_list_conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of the conversation whose messages to list. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 10; the maximum is 10. Example: 10
- `until` (`integer`, optional): Unix timestamp used to paginate. Pass the delivered_at of the oldest message from the previous page to get the next (older) page. Example: 1692371867

Example input: `{"conversation_id":"<conversation_id>"}`

### `missive_list_conversation_posts`

List Conversation Posts · Read-only

List posts in a Missive conversation, newest first.
Returns posts with id, created_at, username, text or markdown, notification, attachments and references.
Use missive_list_conversation_posts to see integration posts; use missive_list_conversation_comments for human comments.
Requires a conversation ID from missive_list_conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of the conversation whose posts to list. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 10; the maximum is 10. Example: 10
- `until` (`integer`, optional): Unix timestamp used to paginate. Pass the created_at of the oldest post from the previous page to get the next (older) page. Example: 1692371867

Example input: `{"conversation_id":"<conversation_id>"}`

### `missive_list_conversations`

List Conversations · Read-only

List conversations in a Missive mailbox, shared label or team inbox, newest activity first.
Returns conversation id, subject, authors, assignees, shared labels, team, message and task counts, last_activity_at and web_url.
Use missive_list_conversations to browse or filter by mailbox, label, team or contact; use missive_get_conversation to fetch one conversation by ID.
Requires at least one mailbox filter (inbox, all, assigned, closed, snoozed, flagged, trashed, junked, drafts, shared_label, team_inbox, team_closed or team_all).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `all` (`boolean`, optional): Set to true to list conversations in the All mailbox.
- `assigned` (`boolean`, optional): Set to true to list conversations assigned to the token owner.
- `closed` (`boolean`, optional): Set to true to list conversations in Closed.
- `contact_organization` (`string`, optional): Contact organization or contact group UUID. Returns conversations with contacts in that organization or group. Mutually exclusive with email and domain. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `domain` (`string`, optional): Email domain without the at sign. Returns conversations with contacts from that domain in the From, To, Cc, Bcc or Reply-To headers. Mutually exclusive with email and contact_organization. Example: example.com
- `drafts` (`boolean`, optional): Set to true to list conversations in Drafts.
- `email` (`string`, optional): Email address. Returns conversations where this address appears in the From, To, Cc, Bcc or Reply-To headers. Mutually exclusive with domain and contact_organization. Example: user@example.com
- `flagged` (`boolean`, optional): Set to true to list starred (flagged) conversations.
- `inbox` (`boolean`, optional): Set to true to list conversations in the Inbox. One mailbox filter is required.
- `junked` (`boolean`, optional): Set to true to list conversations in Spam (Missive's UI calls it Spam; some email providers call it Junk).
- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 25; the maximum is 50. Example: 25
- `organization` (`string`, optional): Organization ID. Restricts results to conversations shared with that organization. Not useful together with shared_label or the team_* filters. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `shared_label` (`string`, optional): Shared label ID. Lists the conversations that carry this shared label. Find IDs with missive_list_shared_labels. Example: 9825718b-3407-40b8-800d-a27361c86102
- `snoozed` (`boolean`, optional): Set to true to list conversations in Snoozed.
- `team_all` (`string`, optional): Team ID. Lists conversations in that team's All mailbox. Example: 0e24f298-965d-4475-9220-b32636a1e2c3
- `team_closed` (`string`, optional): Team ID. Lists conversations in that team's Closed mailbox. Example: 0e24f298-965d-4475-9220-b32636a1e2c3
- `team_inbox` (`string`, optional): Team ID. Lists conversations in that team's Inbox. Find IDs with missive_list_teams. Example: 0e24f298-965d-4475-9220-b32636a1e2c3
- `trashed` (`boolean`, optional): Set to true to list conversations in Trash.
- `until` (`integer`, optional): Unix timestamp used to paginate. Pass the last_activity_at of the oldest conversation from the previous page to get the next (older) page. Example: 1692371867

Example input: `{}`

### `missive_list_messages`

List Messages by Email Message-ID · Read-only

Find Missive messages that match an email Message-ID header.
Returns up to the 10 latest matching messages with headers, body and attachments in the same shape as missive_get_message.
Use missive_list_messages when you have an email Message-ID from outside Missive; use missive_list_conversation_messages to browse a conversation.
Requires the Message-ID header value of the email.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email_message_id` (`string`, required): The Message-ID header value of an email. Example: <CAE1234abcd@mail.gmail.com>

Example input: `{"email_message_id":"<email_message_id>"}`

### `missive_list_organizations`

List Organizations · Read-only

List the Missive organizations the token owner belongs to.
Returns each organization's id and name.
Use missive_list_organizations to find the organization ID that many other Missive tools take.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50

Example input: `{}`

### `missive_list_responses`

List Responses · Read-only

List the canned responses (reply templates) the token owner can use in Missive.
Returns each response's id, title, HTML body, subject, scope, shared labels, default recipients and attachments.
Use missive_list_responses to browse templates; use missive_get_response to fetch one by ID.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50
- `organization` (`string`, optional): Organization ID to restrict results to. Leave empty to include every organization you belong to. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92

Example input: `{}`

### `missive_list_shared_labels`

List Shared Labels · Read-only

List the shared labels in the Missive organizations the token owner can access.
Returns each label's id, name, full path with parent names, organization, color, parent and sharing settings.
Use missive_list_shared_labels to find label IDs for filtering conversations or labeling them; use missive_create_shared_label to add one.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50
- `organization` (`string`, optional): Organization ID to restrict results to. Leave empty to include every organization you belong to. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92

Example input: `{}`

### `missive_list_tasks`

List Tasks · Read-only

List Missive tasks the token owner can access, most recent activity first, with optional filters.
Returns tasks with id, title, description, state, assignees, team and due date.
Use missive_list_tasks to browse or filter tasks; use missive_get_task to fetch one task by ID.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `assignee` (`string`, optional): Only tasks assigned to this user ID. Example: 1ce8117e-ae42-4304-b953-c81656da4bd1
- `conversation` (`string`, optional): Only subtasks of this parent conversation ID. Example: a5d2aa1c-3828-4f90-bbd8-3dffaadda97e
- `limit` (`integer`, optional): Number of tasks to return, from 2 to 50. Example: 10
- `organization` (`string`, optional): Organization ID to restrict results to. Leave empty to include every organization you belong to. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `state` (`string`, optional): Only tasks in this state: todo, in_progress or closed. One of: `todo`, `in_progress`, `closed`.
- `team` (`string`, optional): Only tasks for this team ID. Example: 0e24f298-965d-4475-9220-b32636a1e2c3
- `type` (`string`, optional): Task type: task for standalone tasks, conversation for tasked conversations, or all. One of: `task`, `conversation`, `all`.
- `until` (`integer`, optional): Unix timestamp used to paginate: returns tasks whose last_activity_at is before this value. Example: 1692371867

Example input: `{}`

### `missive_list_teams`

List Teams · Read-only

List the teams in the Missive organizations the token owner can access.
Returns each team's id, name, organization, active members, observers and inbox settings.
Use missive_list_teams to find team IDs for conversation, draft and task tools; use missive_list_users to find user IDs.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50
- `organization` (`string`, optional): Organization ID to restrict results to. Leave empty to include every organization you belong to. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92

Example input: `{}`

### `missive_list_users`

List Users · Read-only

List the users in the Missive organizations the token owner belongs to.
Returns each user's id, name, email and avatar_url, with me set to true for the token owner.
Use missive_list_users to find the user IDs needed to assign conversations and tasks; use missive_list_teams for team IDs.
No prerequisites.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
- `offset` (`integer`, optional): Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50
- `organization` (`string`, optional): Organization ID to restrict results to. Leave empty to include every organization you belong to. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92

Example input: `{}`

### `missive_create_analytics_report`

Create Analytics Report · Write

Start generating a Missive analytics report for a time period, with optional team, user, label and account filters.
Returns the report id; the data is fetched afterwards with missive_get_analytics_report, usually 5 seconds later.
Use missive_create_analytics_report first, then missive_get_analytics_report with the returned id. Requires a Productive or Business plan, and filters require a Business plan.
Requires an organization ID plus start and end Unix timestamps.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `end` (`integer`, required): End of the report period as a Unix timestamp. Example: 1692371867
- `organization` (`string`, required): ID of the organization to report on. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `start` (`integer`, required): Start of the report period as a Unix timestamp. Example: 1691812800
- `account_types` (`array`, optional): Account types to include (Business plan): custom, email, instagram, live_chat, messenger, sms or whatsapp. Example: ["email", "sms"]
- `accounts` (`array`, optional): Account IDs to include (Business plan). Example: ["716be7a6-fd40-45a2-bfcb-43b9ed38d1f0"]
- `shared_labels` (`array`, optional): Shared label IDs to include (Business plan). Example: ["bca0bb8f-8b2f-45f8-a59a-333de84f0184"]
- `teams` (`array`, optional): Team IDs to include (Business plan). Example: ["0e24f298-965d-4475-9220-b32636a1e2c3"]
- `time_zone` (`string`, optional): IANA time zone used to bucket the report. Example: America/Montreal
- `users` (`array`, optional): User IDs to include (Business plan). Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]

Example input: `{"end":1692371867,"organization":"<organization>","start":1691812800}`

### `missive_create_contact`

Create Contact · Write

Create a contact in a Missive contact book.
Returns the newly created contact with its id, name fields, infos and memberships.
Use missive_create_contact to add a new person; use missive_update_contact to change an existing contact.
Requires a contact book ID from missive_list_contact_books.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contact_book` (`string`, required): ID of the contact book to add the contact to. Example: 551b8675-11e9-49c3-aac0-01fb8510d862
- `file_as` (`string`, optional): Name the contact is filed under. Example: Missive
- `first_name` (`string`, optional): Contact's first name. Example: Philippe
- `gender` (`string`, optional): Gender of the contact. Example: Male
- `infos` (`array`, optional): Contact details such as emails, phone numbers and addresses. Each item needs a kind (email, phone_number, twitter, facebook, physical_address, url or custom) and a label, plus a value (or name for facebook, or street, city and similar fields for physical_address). On update, send the full list because omitted items are deleted. Example: [{"kind": "email", "label": "work", "value": "phil@missiveapp.com"}]
- `last_name` (`string`, optional): Contact's last name. Example: Lehoux
- `memberships` (`array`, optional): Links to organizations or groups. Each item has a group object with kind (organization or group) and name, and for organizations may also have title, department, location and description. On update, send the full list because omitted items are deleted. Example: [{"title": "CEO", "group": {"kind": "organization", "name": "Missive"}}]
- `middle_name` (`string`, optional): Contact's middle name. Example: Antoine
- `nickname` (`string`, optional): Nickname. Example: Phil
- `notes` (`string`, optional): Free-form notes about the contact. Example: Cool prospect!
- `prefix` (`string`, optional): Name prefix. Example: Mr.
- `starred` (`boolean`, optional): Set to true to star the contact. Example: true
- `suffix` (`string`, optional): Name suffix. Example: Jr.

Example input: `{"contact_book":"<contact_book>"}`

### `missive_create_draft`

Create Draft · Write

Create an unsent draft email, SMS, WhatsApp, Messenger, Instagram or custom-channel message in Missive, in a new conversation or as a reply to an existing one.
Returns the created draft along with the conversation it was placed in; nothing is delivered to the recipient.
Use missive_create_draft to prepare a message for review or to schedule it with send_at; use missive_send_message to deliver immediately.
Requires a from_field and to_fields for the chosen channel, plus a body; reply by passing conversation or references.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `account` (`string`, optional): Account ID for custom channels, Missive Live Chat, Messenger and Instagram. Find it in the channel settings or under Settings > API > Resource IDs in Missive. Example: fbf74c47-d0a0-4d77-bf2c-1b6f6d2e8a3c
- `add_assignees` (`array`, optional): User IDs to assign to the conversation; existing assignees stay assigned. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `add_default_signature` (`boolean`, optional): Set to true to append the sending alias's signature to the body. Email only, and only when the from_field alias has a signature. Example: true
- `add_shared_labels` (`array`, optional): Shared label IDs to apply to the conversation. Requires organization. Find label IDs with missive_list_shared_labels. Example: ["9825718b-3407-40b8-800d-a27361c86102"]
- `add_to_inbox` (`boolean`, optional): Set to true to move the conversation to the Inbox for everyone who has access to it. Example: true
- `add_to_team_inbox` (`boolean`, optional): Set to true to move the conversation to the team inbox. The team field is required when this is true. Example: true
- `add_users` (`array`, optional): User IDs to give access to the conversation. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `attachments` (`array`, optional): Files to attach, up to 25. Each item needs base64_data (base64-encoded file contents) and filename. The whole request must stay under 10 MB. Example: [{"base64_data": "iVBORw0KGgo...", "filename": "logo.png"}]
- `auto_followup` (`boolean`, optional): Set to true to discard the scheduled draft if someone replies in the conversation. Requires send_at. Example: false
- `bcc_fields` (`array`, optional): Bcc recipients, each an object with address and optional name. Email only. Example: [{"address": "archive@acme.com"}]
- `body` (`string`, optional): Body of the message as HTML or plain text. Plain paragraph tags do not add spacing in Missive; use <div> blocks with line breaks for spacing. Example: <div>Hi Paul,</div><div><br></div><div>Thanks for signing up!</div>
- `cc_fields` (`array`, optional): Cc recipients, each an object with address and optional name. Email only. Example: [{"address": "boss@acme.com", "name": "Boss"}]
- `close` (`boolean`, optional): Set to true to close the conversation for everyone who has access to it. Example: true
- `conversation` (`string`, optional): ID of an existing conversation to add the draft to. Use instead of references when you know the ID. Example: 5bb24363-69e5-48ed-80a9-feee988bc953
- `conversation_color` (`string`, optional): Conversation color: a HEX code or one of good, warning or danger. Example: good
- `conversation_subject` (`string`, optional): Subject for the conversation when a new one is created. Example: New user!
- `external_response_id` (`string`, optional): WhatsApp only: Twilio or Meta ID of the message template to use when starting a conversation with someone you have not talked to in the last 24 hours. Example: 2222222222222222
- `external_response_variables` (`object`, optional): WhatsApp only: values for the template placeholders, keyed by placeholder number as strings. Provide a body that matches the interpolated template. Example: {"1": "Philippe", "2": "Order 123"}
- `force_team` (`boolean`, optional): Set to true to move the conversation to the given team even if it is already linked to another team. Example: true
- `from_field` (`object`, optional): Sender. For email an object with address (must match one of your Missive email aliases) and name. For SMS and WhatsApp an object with phone_number matching one of your account numbers, plus an optional type (signalwire, twilio, twilio_whatsapp or whatsapp). For custom channels an object with id, username and name. Example: {"address": "me@acme.com", "name": "Me"}
- `organization` (`string`, optional): ID of the Missive organization the conversation belongs to. Required whenever add_users, add_assignees, remove_assignees or add_shared_labels is used. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `quote_previous_message` (`boolean`, optional): Set to true to include a quoted copy of the last message in the conversation. Be careful: this can leak the previous message's content to the new recipients. Example: false
- `references` (`array`, optional): Message-ID strings used to append the draft to an existing conversation. The first matching conversation is used; if none match a new conversation is created. Example: ["<some-reference-123>"]
- `remove_assignees` (`array`, optional): User IDs to remove from the conversation's assignees. Requires organization. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `remove_shared_labels` (`array`, optional): Shared label IDs to remove from the conversation. Example: ["e4aae78f-e932-40a2-9ece-ed764aa85790"]
- `send_at` (`integer`, optional): Unix timestamp at which to send the draft later. Leave empty to leave the draft unsent in Missive. Example: 1684540565
- `subject` (`string`, optional): Subject of the email. For replies set it to "Re: <original subject>" so the recipient's mail client threads it correctly. Example: Welcome aboard
- `team` (`string`, optional): ID of the team to link the conversation to. Ignored if the conversation already belongs to a team unless force_team is true. Required when add_to_team_inbox is true. Find it with missive_list_teams. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `to_fields` (`array`, optional): Recipients. For email each item has address and optional name. For SMS and WhatsApp one item with phone_number in +digits format. For Messenger and Instagram one item with id. For custom channels and Missive Live Chat items with id, username and name. Example: [{"address": "paul@acme.com", "name": "Paul"}]

Example input: `{}`

### `missive_create_post`

Create Post · Write

Add a post to a Missive conversation, or start a new conversation with one, optionally closing it, assigning users or changing labels at the same time.
Returns the post id and the conversation id it was added to.
Use missive_create_post for automations that should leave a visible trace in the conversation; use missive_update_conversation for silent state changes and missive_create_draft to send messages.
Requires a notification object, plus at least one of text, markdown or attachments.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `notification` (`object`, required): Object with title and body strings, used to render the notification for this post. Example: {"title": "New signup", "body": "Paul signed up"}
- `add_assignees` (`array`, optional): User IDs to assign to the conversation; existing assignees stay assigned. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `add_shared_labels` (`array`, optional): Shared label IDs to apply to the conversation. Requires organization. Find label IDs with missive_list_shared_labels. Example: ["9825718b-3407-40b8-800d-a27361c86102"]
- `add_to_inbox` (`boolean`, optional): Set to true to move the conversation to the Inbox for everyone who has access to it. Example: true
- `add_to_team_inbox` (`boolean`, optional): Set to true to move the conversation to the team inbox. The team field is required when this is true. Example: true
- `add_users` (`array`, optional): User IDs to give access to the conversation. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `attachments` (`array`, optional): Attachments: formatted blocks (color, pretext, author_name, title, title_link, text, markdown, image_url, timestamp, footer, fields) or files with base64_data and filename. The whole request must stay under 10 MB. Example: [{"title": "Plan", "text": "Pro", "color": "good"}]
- `close` (`boolean`, optional): Set to true to close the conversation for everyone who has access to it. Example: true
- `conversation` (`string`, optional): ID of an existing conversation to add the post to. Use instead of references when you know the ID. Example: 5bb24363-69e5-48ed-80a9-feee988bc953
- `conversation_color` (`string`, optional): Conversation color: a HEX code or one of good, warning or danger. Example: good
- `conversation_icon` (`string`, optional): Image URL used as the icon in the conversation list. Example: https://example.com/icon.png
- `conversation_subject` (`string`, optional): Subject for the conversation when a new one is created. Example: New user!
- `force_team` (`boolean`, optional): Set to true to move the conversation to the given team even if it is already linked to another team. Example: true
- `markdown` (`string`, optional): Markdown content of the post, up to 8000 characters. At least one of text, markdown or attachments is required. Example: Paul signed up for the **Pro** plan.
- `organization` (`string`, optional): ID of the Missive organization the conversation belongs to. Required whenever add_users, add_assignees, remove_assignees or add_shared_labels is used. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `references` (`array`, optional): Message-ID strings used to append the post to an existing conversation. The first matching conversation is used; if none match a new conversation is created. Example: ["<some-reference-123>"]
- `remove_assignees` (`array`, optional): User IDs to remove from the conversation's assignees. Requires organization. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `remove_shared_labels` (`array`, optional): Shared label IDs to remove from the conversation. Example: ["e4aae78f-e932-40a2-9ece-ed764aa85790"]
- `reopen` (`boolean`, optional): Set to true to keep a closed conversation closed when this post is added, instead of reopening it. Example: true
- `team` (`string`, optional): ID of the team to link the conversation to. Ignored if the conversation already belongs to a team unless force_team is true. Required when add_to_team_inbox is true. Find it with missive_list_teams. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `text` (`string`, optional): Plain-text content of the post, up to 8000 characters. At least one of text, markdown or attachments is required. Example: Paul signed up for the Pro plan.
- `username` (`string`, optional): Name shown as the post author instead of the token owner's name. Example: Billing Bot
- `username_icon` (`string`, optional): Image URL shown as the post author's avatar. Example: https://example.com/bot.png

Example input: `{"notification":{"title":"New signup","body":"Paul signed up"}}`

### `missive_create_response`

Create Response · Write

Create a canned response (reply template) in Missive, shared with an organization or personal to one user.
Returns the created response with its id and fields.
Use missive_create_response to add a template; use missive_update_response to change an existing one.
Requires either an organization ID or a user ID (not both).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attachments` (`array`, optional): Files to attach, each with base64_data and filename, and an optional temporary id for inline images referenced by data-missive-attachment-id in the body. The whole request must stay under 10 MB. On update, send every attachment to keep. Example: [{"base64_data": "iVBORw0KGgo...", "filename": "logo.png"}]
- `bcc_fields` (`array`, optional): Default Bcc recipients, each with address and optional name. Example: [{"address": "archive@example.com"}]
- `body` (`string`, optional): HTML content of the response. Example: Hello!

- `cc_fields` (`array`, optional): Default Cc recipients, each with address and optional name. Example: [{"address": "manager@example.com"}]
- `external_id` (`string`, optional): Identifier from another system, for syncing. When set, external_source is required. Example: template-001
- `external_source` (`string`, optional): Name of the system the external_id comes from. Required with external_id. Example: knowledge-base
- `organization` (`string`, optional): Organization ID for a shared response. Provide either organization or user, not both. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `share_with_team` (`string`, optional): Team ID to share the response with. Requires organization. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `shared_labels` (`array`, optional): Shared label IDs to attach to the response. Requires organization. Example: ["9825718b-3407-40b8-800d-a27361c86102"]
- `subject` (`string`, optional): Subject line of the response, up to 500 characters. Example: Welcome!
- `title` (`string`, optional): Title of the canned response, up to 500 characters. Example: Welcome email template
- `to_fields` (`array`, optional): Default To recipients, each with address and optional name. Example: [{"address": "support@example.com", "name": "Support"}]
- `user` (`string`, optional): User ID for a personal response. Provide either user or organization, not both. Example: a41a00fd-453d-49d7-a487-9765c35a3b70

Example input: `{}`

### `missive_create_shared_label`

Create Shared Label · Write

Create a shared label in a Missive organization.
Returns the new label with its id, name, organization, color, parent and sharing settings.
Use missive_create_shared_label to add a label; use missive_update_shared_label to change an existing one.
Requires a name and an organization ID from missive_list_organizations.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the label. Example: Follow up
- `organization` (`string`, required): ID of the organization the label belongs to. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `color` (`string`, optional): HEX color code of the label. Example: #430098
- `parent` (`string`, optional): ID of a parent shared label, to nest this label under it. Example: 9b45a00f-d353-4c89-a487-2465c35c3e91
- `share_with_organization` (`boolean`, optional): Set to true to give everyone in the organization access to the conversations in this label. Example: true
- `share_with_team` (`string`, optional): Team ID to share the label with. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `share_with_users` (`array`, optional): User IDs to share the label with; they get access to all conversations in the label. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `visibility` (`string`, optional): Who can use the label: organization (everyone) or delegates (only admins and auto-shared users). Example: organization. One of: `organization`, `delegates`.

Example input: `{"name":"<name>","organization":"<organization>"}`

### `missive_create_task`

Create Task · Write

Create a Missive task, either standalone or as a subtask inside a conversation.
Returns the created task with id, title, state, assignees, team and due date.
Use missive_create_task to add work items; use missive_update_task to change an existing task. Tasks created through the API appear in the Tasks view, not the Inbox.
Requires a title; standalone tasks also need a team or assignees, and organization is required whenever team, assignees or add_users is used.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `title` (`string`, required): Task title, up to 1000 characters. Example: Review pull request
- `add_to_inbox` (`boolean`, optional): Set to true to move the parent conversation to the Inbox for everyone with access (subtasks only). Example: true
- `add_users` (`array`, optional): User IDs to add to the parent conversation (subtasks only). Requires organization. Example: ["74f91030-39b8-4627-9835-9cfbce9d67c1"]
- `assignees` (`array`, optional): User IDs responsible for the task. Standalone tasks need either assignees or a team. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `conversation` (`string`, optional): Parent conversation ID. Required when subtask is true unless references is used. Example: a5d2aa1c-3828-4f90-bbd8-3dffaadda97e
- `conversation_subject` (`string`, optional): Subject for the parent conversation when it is created from references. Example: New feature request
- `description` (`string`, optional): Longer description of the task, up to 10000 characters. Example: Please review PR #123
- `due_at` (`integer`, optional): Unix timestamp of the due date. Example: 1692371867
- `organization` (`string`, optional): Organization ID. Required when team, assignees or add_users is used. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `references` (`array`, optional): Message-ID strings used to find or create the parent conversation for a subtask, as an alternative to conversation. Example: ["<some-reference-123>"]
- `state` (`string`, optional): Task state: todo, in_progress or closed. New tasks default to todo. One of: `todo`, `in_progress`, `closed`.
- `subtask` (`boolean`, optional): Set to true to create the task as a subtask of a conversation; requires conversation or references. Example: true
- `team` (`string`, optional): Team ID the task belongs to. Standalone tasks need either a team or assignees. Example: 0e24f298-965d-4475-9220-b32636a1e2c3

Example input: `{"title":"<title>"}`

### `missive_merge_conversations`

Merge Conversations · Write

Merge one Missive conversation into another so all its messages, comments and entries move to the target.
Returns the surviving conversation object; its id may differ from the target when Missive swaps the two.
Use missive_merge_conversations to combine duplicate threads; use missive_update_conversation for ordinary state changes. The source conversation is marked as replaced and the merge cannot be undone from the API.
Requires the source conversation ID and the target conversation ID.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`string`, required): ID of the source conversation that will be merged away. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
- `target` (`string`, required): ID of the destination conversation that survives the merge. Example: 3fa4bcf5-e57e-47a4-9422-de2cce5f802e
- `subject` (`string`, optional): New subject for the merged conversation. Leave empty to keep the existing subject. Example: Combined thread

Example input: `{"conversation_id":"<conversation_id>","target":"<target>"}`

### `missive_send_message`

Send Message · Write

Send an email, SMS, WhatsApp, Messenger, Instagram or custom-channel message through Missive immediately, as a new conversation or a reply.
Returns the created message and conversation; the message is delivered to the recipients right away and outgoing rules run.
Use missive_send_message to deliver now; use missive_create_draft to prepare a message without sending it.
Requires a from_field and to_fields for the chosen channel, plus a body; reply by passing conversation or references.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `account` (`string`, optional): Account ID for custom channels, Missive Live Chat, Messenger and Instagram. Find it in the channel settings or under Settings > API > Resource IDs in Missive. Example: fbf74c47-d0a0-4d77-bf2c-1b6f6d2e8a3c
- `add_assignees` (`array`, optional): User IDs to assign to the conversation; existing assignees stay assigned. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `add_default_signature` (`boolean`, optional): Set to true to append the sending alias's signature to the body. Email only, and only when the from_field alias has a signature. Example: true
- `add_shared_labels` (`array`, optional): Shared label IDs to apply to the conversation. Requires organization. Find label IDs with missive_list_shared_labels. Example: ["9825718b-3407-40b8-800d-a27361c86102"]
- `add_to_inbox` (`boolean`, optional): Set to true to move the conversation to the Inbox for everyone who has access to it. Example: true
- `add_to_team_inbox` (`boolean`, optional): Set to true to move the conversation to the team inbox. The team field is required when this is true. Example: true
- `add_users` (`array`, optional): User IDs to give access to the conversation. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `attachments` (`array`, optional): Files to attach, up to 25. Each item needs base64_data (base64-encoded file contents) and filename. The whole request must stay under 10 MB. Example: [{"base64_data": "iVBORw0KGgo...", "filename": "logo.png"}]
- `bcc_fields` (`array`, optional): Bcc recipients, each an object with address and optional name. Email only. Example: [{"address": "archive@acme.com"}]
- `body` (`string`, optional): Body of the message as HTML or plain text. Plain paragraph tags do not add spacing in Missive; use <div> blocks with line breaks for spacing. Example: <div>Hi Paul,</div><div><br></div><div>Thanks for signing up!</div>
- `cc_fields` (`array`, optional): Cc recipients, each an object with address and optional name. Email only. Example: [{"address": "boss@acme.com", "name": "Boss"}]
- `close` (`boolean`, optional): Set to true to close the conversation for everyone who has access to it. Example: true
- `conversation` (`string`, optional): ID of an existing conversation to add the draft to. Use instead of references when you know the ID. Example: 5bb24363-69e5-48ed-80a9-feee988bc953
- `conversation_color` (`string`, optional): Conversation color: a HEX code or one of good, warning or danger. Example: good
- `conversation_subject` (`string`, optional): Subject for the conversation when a new one is created. Example: New user!
- `external_response_id` (`string`, optional): WhatsApp only: Twilio or Meta ID of the message template to use when starting a conversation with someone you have not talked to in the last 24 hours. Example: 2222222222222222
- `external_response_variables` (`object`, optional): WhatsApp only: values for the template placeholders, keyed by placeholder number as strings. Provide a body that matches the interpolated template. Example: {"1": "Philippe", "2": "Order 123"}
- `force_team` (`boolean`, optional): Set to true to move the conversation to the given team even if it is already linked to another team. Example: true
- `from_field` (`object`, optional): Sender. For email an object with address (must match one of your Missive email aliases) and name. For SMS and WhatsApp an object with phone_number matching one of your account numbers, plus an optional type (signalwire, twilio, twilio_whatsapp or whatsapp). For custom channels an object with id, username and name. Example: {"address": "me@acme.com", "name": "Me"}
- `organization` (`string`, optional): ID of the Missive organization the conversation belongs to. Required whenever add_users, add_assignees, remove_assignees or add_shared_labels is used. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `quote_previous_message` (`boolean`, optional): Set to true to include a quoted copy of the last message in the conversation. Be careful: this can leak the previous message's content to the new recipients. Example: false
- `references` (`array`, optional): Message-ID strings used to append the draft to an existing conversation. The first matching conversation is used; if none match a new conversation is created. Example: ["<some-reference-123>"]
- `remove_assignees` (`array`, optional): User IDs to remove from the conversation's assignees. Requires organization. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `remove_shared_labels` (`array`, optional): Shared label IDs to remove from the conversation. Example: ["e4aae78f-e932-40a2-9ece-ed764aa85790"]
- `subject` (`string`, optional): Subject of the email. For replies set it to "Re: <original subject>" so the recipient's mail client threads it correctly. Example: Welcome aboard
- `team` (`string`, optional): ID of the team to link the conversation to. Ignored if the conversation already belongs to a team unless force_team is true. Required when add_to_team_inbox is true. Find it with missive_list_teams. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `to_fields` (`array`, optional): Recipients. For email each item has address and optional name. For SMS and WhatsApp one item with phone_number in +digits format. For Messenger and Instagram one item with id. For custom channels and Missive Live Chat items with id, username and name. Example: [{"address": "paul@acme.com", "name": "Paul"}]

Example input: `{}`

### `missive_update_contact`

Update Contact · Write

Update an existing Missive contact; only the fields you pass are changed.
Returns the updated contact with its infos and memberships. When infos or memberships are passed, items left out of the list are deleted.
Use missive_update_contact to edit a contact; use missive_create_contact to add a new one.
Requires a contact ID from missive_list_contacts.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): ID of the contact to update. Example: ee31f156-db95-4158-923f-b26450e0dbf7
- `contact_book` (`string`, optional): ID of the contact book to move the contact to. Leave empty to keep it where it is. Example: 551b8675-11e9-49c3-aac0-01fb8510d862
- `file_as` (`string`, optional): Name the contact is filed under. Example: Missive
- `first_name` (`string`, optional): Contact's first name. Example: Philippe
- `gender` (`string`, optional): Gender of the contact. Example: Male
- `infos` (`array`, optional): Contact details such as emails, phone numbers and addresses. Each item needs a kind (email, phone_number, twitter, facebook, physical_address, url or custom) and a label, plus a value (or name for facebook, or street, city and similar fields for physical_address). On update, send the full list because omitted items are deleted. Example: [{"kind": "email", "label": "work", "value": "phil@missiveapp.com"}]
- `last_name` (`string`, optional): Contact's last name. Example: Lehoux
- `memberships` (`array`, optional): Links to organizations or groups. Each item has a group object with kind (organization or group) and name, and for organizations may also have title, department, location and description. On update, send the full list because omitted items are deleted. Example: [{"title": "CEO", "group": {"kind": "organization", "name": "Missive"}}]
- `middle_name` (`string`, optional): Contact's middle name. Example: Antoine
- `nickname` (`string`, optional): Nickname. Example: Phil
- `notes` (`string`, optional): Free-form notes about the contact. Example: Cool prospect!
- `prefix` (`string`, optional): Name prefix. Example: Mr.
- `starred` (`boolean`, optional): Set to true to star the contact. Example: true
- `suffix` (`string`, optional): Name suffix. Example: Jr.

Example input: `{"contact_id":"<contact_id>"}`

### `missive_update_conversation`

Update Conversation · Write

Update a Missive conversation silently without adding a post: rename, recolor, close, reopen, move to an inbox, assign users or change labels and team.
Returns the updated conversation object with its current id, subject, assignees, shared labels and team.
Use missive_update_conversation to change state with no visible trace; use missive_create_post when the change should leave a visible note in the conversation.
Requires a conversation ID; organization is also required when adding users, assignees or labels.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of the conversation to update. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
- `add_assignees` (`array`, optional): User IDs to assign to the conversation; existing assignees stay assigned. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `add_shared_labels` (`array`, optional): Shared label IDs to apply to the conversation. Requires organization. Find label IDs with missive_list_shared_labels. Example: ["9825718b-3407-40b8-800d-a27361c86102"]
- `add_to_inbox` (`boolean`, optional): Set to true to move the conversation to the Inbox for everyone who has access to it. Example: true
- `add_to_team_inbox` (`boolean`, optional): Set to true to move the conversation to the team inbox. The team field is required when this is true. Example: true
- `add_users` (`array`, optional): User IDs to give access to the conversation. Requires organization. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `close` (`boolean`, optional): Set to true to close the conversation for everyone who has access to it. Example: true
- `color` (`string`, optional): Conversation color: a HEX code or one of good, warning or danger. Example: danger
- `force_team` (`boolean`, optional): Set to true to move the conversation to the given team even if it is already linked to another team. Example: true
- `organization` (`string`, optional): ID of the Missive organization the conversation belongs to. Required whenever add_users, add_assignees, remove_assignees or add_shared_labels is used. Find it with missive_list_organizations. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `remove_assignees` (`array`, optional): User IDs to remove from the conversation's assignees. Requires organization. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `remove_shared_labels` (`array`, optional): Shared label IDs to remove from the conversation. Example: ["e4aae78f-e932-40a2-9ece-ed764aa85790"]
- `reopen` (`boolean`, optional): Set to true to reopen the conversation for everyone who has access to it. Example: true
- `subject` (`string`, optional): New subject for the conversation. Example: Refund approved
- `team` (`string`, optional): ID of the team to link the conversation to. Ignored if the conversation already belongs to a team unless force_team is true. Required when add_to_team_inbox is true. Find it with missive_list_teams. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419

Example input: `{"conversation_id":"<conversation_id>"}`

### `missive_update_response`

Update Response · Write

Update an existing Missive canned response; only the fields you pass are changed.
Returns the updated response. When attachments are passed, any attachment left out is removed. Responses created by external integrations cannot be updated.
Use missive_update_response to edit a template; use missive_create_response to add a new one.
Requires a response ID from missive_list_responses.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `response_id` (`string`, required): ID of the response to update. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b
- `attachments` (`array`, optional): Files to attach, each with base64_data and filename, and an optional temporary id for inline images referenced by data-missive-attachment-id in the body. The whole request must stay under 10 MB. On update, send every attachment to keep. Example: [{"base64_data": "iVBORw0KGgo...", "filename": "logo.png"}]
- `bcc_fields` (`array`, optional): Default Bcc recipients, each with address and optional name. Example: [{"address": "archive@example.com"}]
- `body` (`string`, optional): HTML content of the response. Example: Hello!

- `cc_fields` (`array`, optional): Default Cc recipients, each with address and optional name. Example: [{"address": "manager@example.com"}]
- `external_id` (`string`, optional): Identifier from another system, for syncing. When set, external_source is required. Example: template-001
- `external_source` (`string`, optional): Name of the system the external_id comes from. Required with external_id. Example: knowledge-base
- `organization` (`string`, optional): Organization ID for a shared response. Provide either organization or user, not both. Example: 0d9bab85-a74f-4ece-9142-0f9b9f36ff92
- `share_with_team` (`string`, optional): Team ID to share the response with. Requires organization. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `shared_labels` (`array`, optional): Shared label IDs to attach to the response. Requires organization. Example: ["9825718b-3407-40b8-800d-a27361c86102"]
- `subject` (`string`, optional): Subject line of the response, up to 500 characters. Example: Welcome!
- `title` (`string`, optional): Title of the canned response, up to 500 characters. Example: Welcome email template
- `to_fields` (`array`, optional): Default To recipients, each with address and optional name. Example: [{"address": "support@example.com", "name": "Support"}]
- `user` (`string`, optional): User ID for a personal response. Provide either user or organization, not both. Example: a41a00fd-453d-49d7-a487-9765c35a3b70

Example input: `{"response_id":"<response_id>"}`

### `missive_update_shared_label`

Update Shared Label · Write

Update an existing Missive shared label; only the fields you pass are changed.
Returns the updated label. Everyone can change name, color and parent; only organization admins and owners can change visibility and sharing.
Use missive_update_shared_label to rename, recolor or reshare a label; use missive_create_shared_label to add a new one.
Requires a label ID from missive_list_shared_labels.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `label_id` (`string`, required): ID of the shared label to update. Example: ee31f156-db95-4158-923f-b26450e0dbf7
- `color` (`string`, optional): HEX color code of the label. Example: #430098
- `name` (`string`, optional): New name of the label. Example: Follow up
- `parent` (`string`, optional): ID of a parent shared label, to nest this label under it. Example: 9b45a00f-d353-4c89-a487-2465c35c3e91
- `share_with_organization` (`boolean`, optional): Set to true to give everyone in the organization access to the conversations in this label. Example: true
- `share_with_team` (`string`, optional): Team ID to share the label with. Example: 646bb7f1-2066-40be-b8f6-bacb8b3b7419
- `share_with_users` (`array`, optional): User IDs to share the label with; they get access to all conversations in the label. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `visibility` (`string`, optional): Who can use the label: organization (everyone) or delegates (only admins and auto-shared users). Example: organization. One of: `organization`, `delegates`.

Example input: `{"label_id":"<label_id>"}`

### `missive_update_task`

Update Task · Write

Update an existing Missive task; only the fields you pass are changed.
Returns the updated task with id, title, description, state, assignees, team and due date.
Use missive_update_task to rename, reassign, reschedule or close a task; use missive_create_task to add a new one.
Requires a task ID from missive_list_tasks.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`string`, required): ID of the task to update. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b
- `assignees` (`array`, optional): User IDs responsible for the task. Standalone tasks need either assignees or a team. Find user IDs with missive_list_users. Example: ["1ce8117e-ae42-4304-b953-c81656da4bd1"]
- `description` (`string`, optional): Longer description of the task, up to 10000 characters. Example: Please review PR #123
- `due_at` (`integer`, optional): Unix timestamp of the due date. Example: 1692371867
- `state` (`string`, optional): Task state: todo, in_progress or closed. New tasks default to todo. One of: `todo`, `in_progress`, `closed`.
- `team` (`string`, optional): Team ID the task belongs to. Standalone tasks need either a team or assignees. Example: 0e24f298-965d-4475-9220-b32636a1e2c3
- `title` (`string`, optional): New task title, up to 1000 characters. Example: Updated task title

Example input: `{"task_id":"<task_id>"}`

### `missive_delete_draft`

Delete Draft · Destructive

Delete an unsent draft from a Missive conversation.
Returns an empty success response once the draft is removed.
Use missive_delete_draft to discard a draft created by missive_create_draft; use missive_list_conversation_drafts to find draft IDs.
Requires the draft ID returned when the draft was created.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `draft_id` (`string`, required): ID of the draft to delete. Example: 5ad4a3f2-7c1e-4b9a-8d2f-3e4f5a6b7c8d

Example input: `{"draft_id":"<draft_id>"}`

### `missive_delete_post`

Delete Post · Destructive

Delete a post from a Missive conversation.
Returns an empty success response once the post is removed.
Use missive_delete_post to remove a post created by missive_create_post; use missive_list_conversation_posts to find post IDs. For shared conversations the token must belong to an organization admin or owner.
Requires the post ID returned when the post was created.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `post_id` (`string`, required): ID of the post to delete. Example: 7be5b4a3-8d2f-4c0b-9e3a-4f5a6b7c8d9e

Example input: `{"post_id":"<post_id>"}`

### `missive_delete_response`

Delete Response · Destructive

Delete a Missive canned response.
Returns an empty success response once the response is removed. Responses created by external integrations cannot be deleted, and in organizations with restricted response management only admins and owners can delete.
Use missive_delete_response to remove a template; use missive_list_responses to find response IDs.
Requires a response ID from missive_list_responses.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `response_id` (`string`, required): ID of the response to delete. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b

Example input: `{"response_id":"<response_id>"}`

## Related

Other Communication connectors ([all 73](/agentkit/connectors/?category=communication)):

- [Crisp](/agentkit/connectors/crisp/): Scalekit connector, API key, 50 tools
- [Gmail](/agentkit/connectors/gmail/): Scalekit connector, OAuth, 48 tools
- [Google Calendar](/agentkit/connectors/googlecalendar/): Scalekit connector, OAuth, 30 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
