Concept
Channels do not all deliver startup content the same way. Some support proactiveON_START messages. Some suppress startup payloads and allow ON_START only for side effects such as setting values or delegating. A good channel-specific welcome separates the authored conversation welcome from launcher text, placeholder text, and channel-native connection messages.
In ABL, use startup context and ON_START BRANCHES to vary the welcome content. Use channel configuration for launcher copy that appears outside the conversation transcript.
Minimal working example
How it works
The runtime copies the channel name intochannel_name, evaluates branches in order, and selects the first matching response. The voice branch includes a VOICE payload. The non-voice branch includes markdown.
Common variations
Keep launcher copy separate
ON_START response is conversation content.
Verification
Start sessions for each target channel. Confirm the conversation transcript receives the ABL welcome only on channels that support proactive startup delivery. For suppressed channels, confirmON_START side effects still run and traces include dsl_on_start_skipped.
Common mistakes
Troubleshooting
If a welcome appears twice in web chat, check whether the SDK launcher message and ABLON_START response say the same thing. If a voice greeting is too long, move details into the next turn and keep startup speech short.
Production readiness checklist
- Test each deployed channel separately.
- Keep launcher copy and conversation copy distinct.
- Use
VOICEpayloads for voice-specific phrasing. - Provide text fallback for rich content.
- Verify suppression behavior for async channels.