Announcements
you did the right thing by creating a Global variable (Global.UserId) with "external sources can set values" and a “Set context variables” topic (which doesn’t need to be invoked). The missing link is: Copilot Studio will not auto-populate Global.UserId unless you explicitly push it into the bot’s conversation payload when the session starts.
Global.UserId
That’s why you’re only seeing System.Activity.ChannelData (technical session info like widget/session IDs, locale, channel, etc.) that data comes directly from Omnichannel/ACS, not from your custom injection.
What’s Happening Global variable is defined correctly External sources can set values But no value is ever assigned at runtime because Omnichannel chat widget (or ACS Web Chat) hasn’t been told to push UserId into the bot session. Result: Bot sees it as null/empty until agent handoff, because only at escalation does Omnichannel enrich the transcript with CRM session context.
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
Jump in, show your community spirit, and win prizes!
Expanding mentorship, skilling, and AI innovation
These are the community rock stars!
Stay up to date on forum activity by subscribing.
Abhilash Warrier 51 Super User 2026 Season 1
Muhammad Shahzad Sh... 51 Most Valuable Professional
Nagaraju_Matta 50