{
  "service": "missive",
  "displayName": "Missive",
  "categories": [
    "Communication",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "missive_pat-xxxxxxxx",
      "description": "Missive personal API token sent with the Authorization Bearer header. Create it from Missive Preferences > API: https://missiveapp.com/docs/developers/rest-api.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://missiveapp.com",
  "actions": [
    {
      "id": "missive.get_contact",
      "service": "missive",
      "name": "get_contact",
      "description": "Get one Missive contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Missive contact ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for fetching one Missive contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Missive contact ID."
              },
              "deleted": {
                "type": "boolean",
                "description": "Whether this contact is deleted."
              },
              "modified_at": {
                "type": "integer",
                "minimum": 0,
                "description": "The Unix timestamp when the contact was last modified."
              },
              "contact_book": {
                "type": "string",
                "description": "The contact book ID that contains this contact."
              },
              "first_name": {
                "type": "string",
                "description": "The contact's first name."
              },
              "last_name": {
                "type": "string",
                "description": "The contact's last name."
              },
              "middle_name": {
                "type": "string",
                "description": "The contact's middle name."
              },
              "file_as": {
                "type": "string",
                "description": "The display filing name for this contact."
              },
              "notes": {
                "type": "string",
                "description": "Notes stored on this contact."
              },
              "starred": {
                "type": "boolean",
                "description": "Whether the contact is starred."
              },
              "infos": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One contact info entry."
                },
                "description": "The contact info entries returned by Missive."
              },
              "memberships": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One contact membership entry."
                },
                "description": "The contact membership entries returned by Missive."
              }
            },
            "additionalProperties": true,
            "description": "One Missive contact."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive contact response."
      }
    },
    {
      "id": "missive.get_conversation",
      "service": "missive",
      "name": "get_conversation",
      "description": "Get one Missive conversation by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Missive conversation ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for fetching one Missive conversation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Missive conversation ID."
              },
              "created_at": {
                "type": "integer",
                "minimum": 0,
                "description": "The Unix timestamp when the conversation was created."
              },
              "subject": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The conversation subject."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "latest_message_subject": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The latest message subject."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "organization": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The Missive organization ID."
                      },
                      "name": {
                        "type": "string",
                        "description": "The organization name."
                      }
                    },
                    "additionalProperties": true,
                    "description": "One Missive organization."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "color": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The conversation color value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "authors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One author entry."
                },
                "description": "The message authors returned by Missive."
              },
              "external_authors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One external author entry."
                },
                "description": "The external authors returned by Missive."
              },
              "users": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One user access entry."
                },
                "description": "The users with access to the conversation."
              },
              "assignees": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One assignee entry."
                },
                "description": "The users assigned to the conversation."
              },
              "assignee_names": {
                "type": "string",
                "description": "The comma-separated assignee display names."
              },
              "assignee_emails": {
                "type": "string",
                "description": "The comma-separated assignee email addresses."
              },
              "shared_labels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One shared label entry."
                },
                "description": "The shared labels on the conversation."
              },
              "shared_label_names": {
                "type": "string",
                "description": "The comma-separated shared label names."
              },
              "team": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The Missive team ID."
                      },
                      "name": {
                        "type": "string",
                        "description": "The team name."
                      },
                      "organization": {
                        "type": "string",
                        "description": "The organization ID that owns the team."
                      },
                      "active_members": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "A user ID."
                        },
                        "description": "The active member user IDs on the team."
                      },
                      "observers": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "A user ID."
                        },
                        "description": "The observer user IDs on the team."
                      }
                    },
                    "additionalProperties": true,
                    "description": "One Missive team."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "messages_count": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of messages in the conversation."
              },
              "drafts_count": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of drafts in the conversation."
              },
              "send_later_messages_count": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of scheduled messages in the conversation."
              },
              "attachments_count": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of attachments in the conversation."
              },
              "tasks_count": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of tasks in the conversation."
              },
              "completed_tasks_count": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of completed tasks in the conversation."
              },
              "last_activity_at": {
                "type": "integer",
                "minimum": 0,
                "description": "The Unix timestamp of the conversation's most recent activity."
              },
              "closed_at": {
                "type": "integer",
                "minimum": 0,
                "description": "The Unix timestamp when the conversation was closed."
              },
              "web_url": {
                "type": "string",
                "description": "The URL that opens the conversation in the Missive web app.",
                "format": "uri"
              },
              "app_url": {
                "type": "string",
                "description": "The deep link that opens the conversation in the Missive app."
              }
            },
            "additionalProperties": true,
            "description": "One Missive conversation."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive conversation response."
      }
    },
    {
      "id": "missive.list_contact_books",
      "service": "missive",
      "name": "list_contact_books",
      "description": "List Missive contact books the authenticated user can access.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based offset used to paginate records."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for Missive list endpoints with offset pagination."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact_books": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Missive contact book."
            },
            "description": "The contact books returned by Missive."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive contact-book-list response."
      }
    },
    {
      "id": "missive.list_contacts",
      "service": "missive",
      "name": "list_contacts",
      "description": "List contacts from one Missive contact book with documented filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contact_book": {
            "type": "string",
            "minLength": 1,
            "description": "The contact book ID to list contacts from."
          },
          "order": {
            "type": "string",
            "enum": [
              "last_name",
              "last_modified"
            ],
            "description": "The ordering mode for returned contacts."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The maximum number of contacts to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based offset used to paginate contacts."
          },
          "modified_since": {
            "type": "integer",
            "minimum": 0,
            "description": "Only return contacts modified or created since this Unix timestamp."
          },
          "include_deleted": {
            "type": "boolean",
            "description": "Whether to include deleted contacts in modified_since results."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "The search text used to filter contacts."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact_book"
        ],
        "description": "Input payload for listing Missive contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Missive contact ID."
                },
                "deleted": {
                  "type": "boolean",
                  "description": "Whether this contact is deleted."
                },
                "modified_at": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The Unix timestamp when the contact was last modified."
                },
                "contact_book": {
                  "type": "string",
                  "description": "The contact book ID that contains this contact."
                },
                "first_name": {
                  "type": "string",
                  "description": "The contact's first name."
                },
                "last_name": {
                  "type": "string",
                  "description": "The contact's last name."
                },
                "middle_name": {
                  "type": "string",
                  "description": "The contact's middle name."
                },
                "file_as": {
                  "type": "string",
                  "description": "The display filing name for this contact."
                },
                "notes": {
                  "type": "string",
                  "description": "Notes stored on this contact."
                },
                "starred": {
                  "type": "boolean",
                  "description": "Whether the contact is starred."
                },
                "infos": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One contact info entry."
                  },
                  "description": "The contact info entries returned by Missive."
                },
                "memberships": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One contact membership entry."
                  },
                  "description": "The contact membership entries returned by Missive."
                }
              },
              "additionalProperties": true,
              "description": "One Missive contact."
            },
            "description": "The contacts returned by Missive."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive contact-list response."
      }
    },
    {
      "id": "missive.list_conversations",
      "service": "missive",
      "name": "list_conversations",
      "description": "List Missive conversations using a required mailbox, team, or shared-label filter.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "The maximum number of conversations to return."
          },
          "until": {
            "type": "integer",
            "minimum": 0,
            "description": "The last_activity_at Unix timestamp used to paginate conversations."
          },
          "inbox": {
            "type": "boolean",
            "description": "Whether to list conversations in the Inbox mailbox."
          },
          "all": {
            "type": "boolean",
            "description": "Whether to list conversations in the All mailbox."
          },
          "assigned": {
            "type": "boolean",
            "description": "Whether to list conversations assigned to the user."
          },
          "closed": {
            "type": "boolean",
            "description": "Whether to list conversations in Closed."
          },
          "snoozed": {
            "type": "boolean",
            "description": "Whether to list conversations in Snoozed."
          },
          "flagged": {
            "type": "boolean",
            "description": "Whether to list conversations in Starred."
          },
          "trashed": {
            "type": "boolean",
            "description": "Whether to list conversations in Trash."
          },
          "junked": {
            "type": "boolean",
            "description": "Whether to list conversations in Spam."
          },
          "drafts": {
            "type": "boolean",
            "description": "Whether to list conversations in Drafts."
          },
          "shared_label": {
            "type": "string",
            "minLength": 1,
            "description": "The shared label ID to list conversations from."
          },
          "team_inbox": {
            "type": "string",
            "minLength": 1,
            "description": "The team ID to list conversations in the team's Inbox."
          },
          "team_closed": {
            "type": "string",
            "minLength": 1,
            "description": "The team ID to list conversations in the team's Closed mailbox."
          },
          "team_all": {
            "type": "string",
            "minLength": 1,
            "description": "The team ID to list conversations in the team's All mailbox."
          },
          "organization": {
            "type": "string",
            "minLength": 1,
            "description": "The organization ID used to filter conversations shared with that organization."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "description": "Filter conversations by a specific contact email address."
          },
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "Filter conversations by a specific contact email domain."
          },
          "contact_organization": {
            "type": "string",
            "minLength": 1,
            "description": "Filter conversations by a contact organization or group ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing Missive conversations. At least one mailbox, shared_label, or team filter is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Missive conversation ID."
                },
                "created_at": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The Unix timestamp when the conversation was created."
                },
                "subject": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The conversation subject."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "latest_message_subject": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The latest message subject."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "organization": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The Missive organization ID."
                        },
                        "name": {
                          "type": "string",
                          "description": "The organization name."
                        }
                      },
                      "additionalProperties": true,
                      "description": "One Missive organization."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "color": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The conversation color value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "authors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One author entry."
                  },
                  "description": "The message authors returned by Missive."
                },
                "external_authors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One external author entry."
                  },
                  "description": "The external authors returned by Missive."
                },
                "users": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One user access entry."
                  },
                  "description": "The users with access to the conversation."
                },
                "assignees": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One assignee entry."
                  },
                  "description": "The users assigned to the conversation."
                },
                "assignee_names": {
                  "type": "string",
                  "description": "The comma-separated assignee display names."
                },
                "assignee_emails": {
                  "type": "string",
                  "description": "The comma-separated assignee email addresses."
                },
                "shared_labels": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One shared label entry."
                  },
                  "description": "The shared labels on the conversation."
                },
                "shared_label_names": {
                  "type": "string",
                  "description": "The comma-separated shared label names."
                },
                "team": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The Missive team ID."
                        },
                        "name": {
                          "type": "string",
                          "description": "The team name."
                        },
                        "organization": {
                          "type": "string",
                          "description": "The organization ID that owns the team."
                        },
                        "active_members": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A user ID."
                          },
                          "description": "The active member user IDs on the team."
                        },
                        "observers": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A user ID."
                          },
                          "description": "The observer user IDs on the team."
                        }
                      },
                      "additionalProperties": true,
                      "description": "One Missive team."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "messages_count": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of messages in the conversation."
                },
                "drafts_count": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of drafts in the conversation."
                },
                "send_later_messages_count": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of scheduled messages in the conversation."
                },
                "attachments_count": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of attachments in the conversation."
                },
                "tasks_count": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of tasks in the conversation."
                },
                "completed_tasks_count": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of completed tasks in the conversation."
                },
                "last_activity_at": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The Unix timestamp of the conversation's most recent activity."
                },
                "closed_at": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The Unix timestamp when the conversation was closed."
                },
                "web_url": {
                  "type": "string",
                  "description": "The URL that opens the conversation in the Missive web app.",
                  "format": "uri"
                },
                "app_url": {
                  "type": "string",
                  "description": "The deep link that opens the conversation in the Missive app."
                }
              },
              "additionalProperties": true,
              "description": "One Missive conversation."
            },
            "description": "The conversations returned by Missive."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive conversation-list response."
      }
    },
    {
      "id": "missive.list_organizations",
      "service": "missive",
      "name": "list_organizations",
      "description": "List organizations the authenticated Missive API token owner belongs to.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based offset used to paginate records."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for Missive list endpoints with offset pagination."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Missive organization ID."
                },
                "name": {
                  "type": "string",
                  "description": "The organization name."
                }
              },
              "additionalProperties": true,
              "description": "One Missive organization."
            },
            "description": "The organizations returned by Missive."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive organization-list response."
      }
    },
    {
      "id": "missive.list_teams",
      "service": "missive",
      "name": "list_teams",
      "description": "List teams visible to the authenticated Missive API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "teams": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Missive team ID."
                },
                "name": {
                  "type": "string",
                  "description": "The team name."
                },
                "organization": {
                  "type": "string",
                  "description": "The organization ID that owns the team."
                },
                "active_members": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A user ID."
                  },
                  "description": "The active member user IDs on the team."
                },
                "observers": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A user ID."
                  },
                  "description": "The observer user IDs on the team."
                }
              },
              "additionalProperties": true,
              "description": "One Missive team."
            },
            "description": "The teams returned by Missive."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive team-list response."
      }
    },
    {
      "id": "missive.list_users",
      "service": "missive",
      "name": "list_users",
      "description": "List users visible to the authenticated Missive API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Missive user ID."
                },
                "email": {
                  "type": "string",
                  "description": "The user's email address."
                },
                "display_name": {
                  "type": "string",
                  "description": "The user's display name."
                },
                "first_name": {
                  "type": "string",
                  "description": "The user's first name."
                },
                "last_name": {
                  "type": "string",
                  "description": "The user's last name."
                },
                "avatar_url": {
                  "type": "string",
                  "description": "The URL of the user's avatar image."
                },
                "me": {
                  "type": "boolean",
                  "description": "Whether this user is the authenticated token owner."
                }
              },
              "additionalProperties": true,
              "description": "One Missive user."
            },
            "description": "The users returned by Missive."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Missive user-list response."
      }
    }
  ]
}
