Skip to content
Skip to main content

Outbound restrictions for Agent Accounts

Agent AccountsEmail

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.

  • 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 (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. See Policies, Rules, and Lists and the Rules API reference.

  • 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.”