Portrait in Microsoft Teams
Copy for agent
The Portrait app for Microsoft Teams brings Easel, Portrait's AI equity analyst, into Teams. Chat with it one-to-one, or @mention it in a channel, and it answers with citations from SEC filings, earnings call transcripts, news, and consensus estimates.
Each Teams conversation is a persistent research session, and each person connects their own Portrait account once — so every question runs, and counts toward your research usage, as that analyst.
Install the app
Portrait is not listed in the public Teams store. Contact the team and we will send you the Portrait app package — a single .zip file.
For everyone, which is what most firms want. Someone holding a Teams administrator role opens the Teams admin center — admin.teams.microsoft.com, a separate site from Teams itself — and goes to Teams apps → Manage apps, then the Actions button → Upload new app, and picks the zip. Everyone in the organization then finds Portrait in Teams under Apps → Manage your apps → Built for your org and adds it from there once. Nobody else ever handles the file.
For one person, to try it first. In Teams, open Apps in the left rail, then Manage your apps at the bottom of that panel → Upload an app → Upload a custom app, and pick the zip. Portrait appears in your own app list and nobody else's. Some organizations do not permit this, in which case the option is simply missing and the route above is the one to take. If you pilot this way and install for everyone later, remove your own copy so you are not carrying two.
ℹ️ Using Portrait from Teams requires Easel access on your Portrait account. If Portrait replies that your account is not enabled for the Teams assistant yet, contact the team.
Connect your Portrait account
- Open a chat with Portrait and send anything at all.
- It replies with a Connect Portrait link.
- Sign in with your normal Portrait credentials — the same ones you use for the Portrait app, not your Microsoft account. The two are deliberately separate, and they do not need to match.
- You get a confirmation message in Teams. The link is one-time; every question from then on runs as your own Portrait account.
If your connection later expires or is revoked, the next message prompts you to reconnect.
Ask in a chat
Send your question. Portrait replies within a couple of seconds to say it is thinking, keeps that reply updated with what it is working on, and then replaces it with the finished answer.
Follow-up questions in the same chat keep their context — a chat is one continuous session. Send reset (or new) to end it and start fresh.
Send help any time for instructions and example questions. Two more commands round out the set:
feedbackfollowed by a note — "feedback the segment tables are great" — sends it straight to the Portrait team. Portrait echoes the note back so you can see what was recorded. Sendingfeedbackon its own just asks for the note.sign outdisconnects your Portrait account from Teams and ends your open sessions, so a later reconnect starts clean. Message Portrait again whenever you want to come back. This one works in a chat only — in a channel Portrait points you to a direct message, because a Teams bot cannot reply to one person privately in a channel.
A leading slash is fine on any of them: /help behaves the same as help. The commands are listed in the app's command menu too, which your administrator refreshes by installing a newer version of the app.
Ask in a channel
In a channel you must @mention Portrait — "@Portrait How do consensus revenue estimates for AMD compare to guidance from the latest earnings call?" Portrait replies in a thread, and a reply in that thread without a mention does not start a turn.
The message that mentions Portrait is all it sees. It does not read the surrounding thread, so "@Portrait summarize the above" will not work — paste the question, and anything it depends on, into the mention itself. Portrait asks for no permission to read your team's messages, and a team owner is never prompted to grant one.
Mentions in the same thread still continue the same session. Portrait remembers what you have already asked it there and what it answered, so you can follow up with "and how does that compare to last quarter?" without repeating yourself. What it cannot see is messages that were never addressed to it.
A thread runs as whoever started it. If you @mention Portrait in someone else's thread, it asks you to start your own thread or message it directly rather than running the question — so nobody's research usage is charged to the wrong account. help and feedback are the exceptions — both always answer, wherever they are sent.
Good to know
- Tables arrive as code blocks and headings as bold text. Teams cannot render markdown tables in a bot message, so tables are sent as preformatted text to keep the columns aligned. Wide tables read better in the Portrait app; links in an answer open the underlying document there.
- Portrait cannot read files you share in Teams. Upload the file in My Library instead and Portrait can work from it there.
- Charts arrive as images. When Easel builds a chart, it is posted into the conversation just after the answer, which also keeps a link to open the chart in the Portrait app.
- A conversation can be open in one place at a time. If Portrait says the conversation is open in the Portrait app — or that you have active sessions on another surface — close one there and ask again.
- Removing the app from your organization stops it immediately. Reinstalling and reconnecting works as before.
For questions about access, contact the team.