Mailyard derives Postmark's message stream from the connection's Purpose (Marketing → broadcast, otherwise outbound). That covers Postmark's two default streams, but users who create custom streams (e.g. newsletter, digest) can't reach them: the backend already honors config['stream'] (Manager::connection_config()), but no UI field sets it.
Proposal
- Postmark-only optional field in the connection editor: label "Message Stream ID (optional)", placeholder
auto.
- Hint: "Leave empty to use Postmark's default stream for this connection's purpose — transactional → outbound, Marketing → broadcast. Enter a stream ID only if you send through a custom stream."
- Show the manual stream on the connection row (like the MKT/TXN chip) so routing stays visible.
- Zero backend changes:
connection_config() only derives when stream is empty, and sanitize_config() already persists the key. Pure providers.js/editor addition + admin rebuild.
- v2 idea (separate): fetch the server's streams via Postmark's message-streams API and render a dropdown (Auto + real list).
Safety: a wrong ID fails loudly at the Postmark API, and since 1.0.2 the connection Test exercises the exact stream real mail uses, so a bad ID is caught in one click.
Mailyard derives Postmark's message stream from the connection's Purpose (Marketing →
broadcast, otherwiseoutbound). That covers Postmark's two default streams, but users who create custom streams (e.g.newsletter,digest) can't reach them: the backend already honorsconfig['stream'](Manager::connection_config()), but no UI field sets it.Proposal
auto.connection_config()only derives whenstreamis empty, andsanitize_config()already persists the key. Pureproviders.js/editor addition + admin rebuild.Safety: a wrong ID fails loudly at the Postmark API, and since 1.0.2 the connection Test exercises the exact stream real mail uses, so a bad ID is caught in one click.