Manage Inbox
manage_inboxInput Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The operation to perform. One of: - 'list_labels': List available labels (Gmail) or categories (Outlook). - 'apply_label': Apply a label/category to emails. Creates if it doesn't exist. Requires email_ids and label_name. - 'remove_label': Remove a label/category from emails. Requires email_ids and label_name. - 'archive': Archive emails (removes from inbox, keeps in account). Requires email_ids. - 'mark_read': Mark emails as read. Requires email_ids. - 'unsubscribe': Unsubscribe from a mailing list via List-Unsubscribe header. Requires email_ids (one email). ALWAYS confirm with the user before calling this. - 'search_by_label': Search emails by label (Gmail) or category (Outlook). Requires label_name. Returns matching emails directly from the provider API. | |
| mailbox | No | Email address of a connected mailbox. Optional — when not given and email_ids are present, the mailbox is inferred from the email row's connected_email. When neither is available and the user has multiple mailboxes, ask which to use. | |
| provider | No | Which email account to use ('outlook' or 'gmail'). Only needed if the user has both connected and no email_ids are provided. | |
| email_ids | No | List of email IDs from search_emails results. | |
| label_name | No | Label name for apply_label, remove_label, or search_by_label actions. | |
| as_teammate | No | Act on a consented teammate's inbox instead of your own — pass their email. Every action (label, archive, mark read, unsubscribe) runs against their mailbox. Gated on that teammate's act-on-behalf setting (stricter than conversation sharing); a teammate who hasn't granted it is rejected. Omit for your own inbox. | |
| max_results | No | Maximum number of emails to return for search_by_label (default 20, max 50). | |
| exclusive_labels | No | For apply_label only. A set of mutually exclusive labels (e.g. inbox organization categories). When provided, applying a label automatically removes any other exclusive_labels from older messages in the same thread. This keeps one label per thread. |