telephone, webrtc, sms, email, text):
channel_overrides and channel_properties live on a static_prompt agent config. They are consumed by the async messaging engine (SMS, email, text). Voice and WebRTC ignore channel_properties transport mechanics and fall back to the base config.channel_overrides
Each entry steers inference for one channel. Fields are merged with the base config at resolution time.
When
instructions_mode is append, the resolver concatenates base and override instructions separated by a blank line. If the base instructions are empty, the override is used as-is regardless of mode.
channel_properties
Each entry is a channel-exclusive block, discriminated by itschannel field. Every block shares enabled (default true) and body_template (default {{agent_response}}), then adds channel-specific fields.
EmailProperties (channel: "email")
For the full email-agent reference (domains, routing, and the fields above in context), see Configuring an email agent.
SmsProperties (channel: "sms")
TextProperties (channel: "text")
The first-party API text channel has no transport mechanics, so it carries only the shared fields.
How resolution works
When a message arrives on a channel,resolve_channel_config folds the base agent config with that channel’s override and property blocks into a single effective config:
If a channel has no override and no properties entry, the base config is returned unchanged. This keeps voice and WebRTC untouched when you add async-channel tuning.
Next steps
Configuring an email agent
Full reference for email-specific fields, routing, and domains.
Channels
How an agent connects to phone, web, email, text, and SMS.

