diff --git a/src/auto-reply/reply/dispatch-from-config.ts b/src/auto-reply/reply/dispatch-from-config.ts index 1a968581cf6..f60d357ee3d 100644 --- a/src/auto-reply/reply/dispatch-from-config.ts +++ b/src/auto-reply/reply/dispatch-from-config.ts @@ -215,8 +215,14 @@ export async function dispatchReplyFromConfig(params: { const surfaceChannel = normalizeMessageChannel(ctx.Surface); // Prefer provider channel because surface may carry origin metadata in relayed flows. const currentSurface = providerChannel ?? surfaceChannel; + const isInternalWebchatTurn = + currentSurface === INTERNAL_MESSAGE_CHANNEL && + (surfaceChannel === INTERNAL_MESSAGE_CHANNEL || !surfaceChannel); const shouldRouteToOriginating = Boolean( - isRoutableChannel(originatingChannel) && originatingTo && originatingChannel !== currentSurface, + !isInternalWebchatTurn && + isRoutableChannel(originatingChannel) && + originatingTo && + originatingChannel !== currentSurface, ); const shouldSuppressTyping = shouldRouteToOriginating || originatingChannel === INTERNAL_MESSAGE_CHANNEL;