When a visitor is signed in to your Power Pages site, you already know a lot about them. You know their name, their email, and whatever else lives in their record. But the Copilot Studio agent does not know any of this on its own. By default, the agent starts every chat as a blank slate, even when the person is logged in. Passing the signed-in user context from the page to the agent fixes that. It hands the agent the details it needs to make the conversation personal and smart. In this guide I will show you how.
Why Context Matters So Much
An agent that knows who it is talking to can do far more than one that does not. It can greet the person by name, skip questions it already has answers to, and look up the right records without asking. Without context, the agent has to ask for everything, even things the site already knows. That feels clumsy and slow.
Passing context is the difference between “Please enter your name” and “Hi Alex, how can I help?” The second one feels like real service. It shows the visitor that the system recognizes them, which builds trust and saves everyone time.
The Big Idea
Here is the core concept. When the page loads the chat, you send a few pieces of information to the agent along with it. The agent has slots ready to receive these values, and once they arrive, any topic in the agent can use them. So the page does the telling, the agent does the listening, and from then on the agent knows the user.
You decide what to send. It might be the user’s name, their email, an account ID, or even the current page. Whatever you pass, the agent can put it to work to make replies more useful.
Step One: Prepare the Agent to Receive Context
In Copilot Studio, you set up the agent so it can accept values from outside the chat. You do this in the Conversation Start system topic, which runs at the very beginning of every conversation. There you add a Question node but leave the question blank, because you are not asking the visitor anything. The node is just a container for an incoming value.
You set the variable to be global, so every topic can reach it, and you mark it so that external sources are allowed to set its value. You repeat this for each piece of context you want to receive. Give each variable a clear name, like userName or userEmail, so you can use them easily later.
Step Two: Send the Context From Power Pages
On the page side, you read the signed-in user’s details and pass them to the agent when the chat starts. Power Pages knows who the logged-in user is, and it can read their fields through Liquid. You take those values and hand them to the agent as the context variables you prepared. Because the user is already signed in, this happens quietly in the background with no extra effort from the visitor.
The moment the chat opens, the agent now holds the user’s name and any other detail you sent. The visitor did not type a thing, yet the agent already knows them.
Step Three: Put the Context to Work
With the values in hand, you can use them throughout the conversation. The greeting can use the name. A support topic can use the email instead of asking for it. A topic that looks up orders can use an account ID to pull the right records. You can even branch the conversation based on context, offering different paths to different kinds of users.
This is where the payoff shows up. Every place you would have asked the visitor for something you already know, you can now skip. The conversation gets shorter, smoother, and far more personal.
Keep It Safe and Sensible
Passing user details means handling personal data, so be thoughtful. Only send the pieces the agent actually needs. There is no reason to pass sensitive information the conversation will never use. The less you send, the safer you are.
Make sure this only runs for signed-in users, since anonymous visitors have no details to pass. And always respect your table permissions, so the agent only works with data the user is allowed to see. Done right, passing context makes people feel recognized, not watched.
Test With Different Users
To check your work, sign in as one test user and open the chat. Confirm the agent picks up the right name and other details. Then sign in as a different user and make sure the agent uses their values, not the first user’s. This catches cases where old values stick around when they should not.
Also test as a signed-out visitor to confirm the agent still works without context and never shows a blank where a name should be. A small fallback, like a friendly default greeting, keeps things smooth for everyone.
Wrapping Up
Passing the signed-in user context from Power Pages to your Copilot Studio agent unlocks a personal, efficient chat. You prepare the agent with global variables in the Conversation Start topic, send the user’s details from the page when the chat loads, and use those details to greet people and skip questions you already have answers to. Keep the data minimal and protected, test with different users, and your agent will start every conversation already knowing who it is helping.