# Outbound restrictions for Agent Accounts

Source: https://developer.nylas.com/docs/changelogs/2026-04-17-outbound-rules/

You can now put guardrails on what your Agent Accounts send. Rules — previously an inbound-only feature — run on outbound mail as well, so an autonomous agent can't email recipients you don't want it to reach. Block sends to a competitor domain, prevent outreach to anything but a vetted allow-list, archive sent copies from specific vendors, or star every reply the agent produces. Everything the agent would have sent to a blocked recipient is rejected before it leaves Nylas, so no message is delivered and no sent copy is stored.

## Added

- **`trigger: outbound` on Rules** — Rules now evaluate on sends as well as on received mail. Set `trigger: "outbound"` when you create a rule to run it before the message is submitted to the email provider. An outbound rule with a `block` action rejects the send with HTTP 403 — nothing is delivered and no sent copy is stored. Non-blocking actions (`mark_as_spam`, `archive`, `mark_as_read`, `mark_as_starred`, `assign_to_folder`, `trash`) apply to the stored sent copy after a successful send. Inbound and outbound rules are isolated, so stored sent copies aren't re-evaluated against inbound rules. Outbound evaluation is application-scoped for Agent Account sends today, while policy linkage controls inbound rule evaluation. See [Policies, Rules, and Lists](/docs/v3/agent-accounts/policies-rules-lists/#outbound-rules) and the [Rules API reference](/docs/reference/api/rules/create-rule/).

- **Recipient-based conditions** — Three new condition fields for outbound rules: `recipient.address`, `recipient.domain`, and `recipient.tld`. They match against any recipient on the send, including To, CC, BCC, and SMTP envelope recipients, which makes them useful for DLP rules that need to catch hidden recipients too. `is_not` only matches when no recipient matches the value. The existing operators (`is`, `is_not`, `contains`, `in_list`) all work, and `in_list` references the same List resources used by inbound rules — so one managed allow-list or deny-list can cover both sides.

- **`outbound.type` condition** — A new field that classifies the send as `compose` (a brand-new message) or `reply` (a reply on an existing thread). A send is classified as `reply` when the API request includes `reply_to_message_id`, or when the raw MIME contains `In-Reply-To` or `References` headers. Only `is` and `is_not` are valid operators on this field; `contains` and `in_list` are rejected. Values are normalized to lowercase on write. Useful for rules like "only let the agent respond to threads it's already part of" or "star every outbound reply."

> **Info:** 
> **Beta.** The Rules API, including the new outbound trigger and condition fields, remains in beta alongside Agent Accounts. Shapes and semantics may change before general availability.