channel_properties under the email key and do not change what the agent says, only how the reply is delivered.
To steer what the agent says on email (instructions, greeting, tool budget), use channel_overrides instead — see Per-channel configuration.
EmailProperties reference
Every field is optional; omit a field to take its default. The full block lives atchannel_properties.email.
How the body is assembled
The renderer reuses the real delivery path, so the order is fixed:signature is also rendered from Markdown.
subject_template only applies once a thread exists — that is, when there is a prior inbound message to reply to. For the first message of a brand-new thread, the original subject is kept as-is, or default_subject is used for an agent-initiated send with no subject.Reply and close behavior
cc_reply_policy, require_dmarc_pass, and auto_close_on_conclusion feed the reply-eligibility decision on every inbound message:
When the agent is a direct
To recipient, it replies regardless of cc_reply_policy. Any uncertainty defaults to replying and not closing. For more on threading, recipients, and gating, see Threading and replies.
Per-channel overrides
channel_properties governs delivery; channel_overrides governs the model. The email override block (channel_overrides.email) accepts:
See Per-channel configuration for the override model in full.
Preview the rendered email
POST /core/messaging/preview runs the real renderer against a sample agent response and returns exactly what would be delivered — subject, HTML, and plaintext — without sending anything. The agent editor uses this for the live preview.
Requires either the agents:read or agents:manage scope.
Request body
Response
text and sms channels, subject and html are null and only plaintext is populated.
Per-channel configuration
Steer instructions, greeting, and tool budget per channel.
Threading and replies
How threads, recipients, and the reply gate work.

