Inbox
The Inbox is where your team reads every conversation an agent has with customers, on every channel. Use it to follow what the agent is saying, to see exactly why it gave a reply, and to take a conversation over when a customer needs a person.
Each agent has its own Inbox. Open an agent and choose Inbox in the sidebar.
What you see
The Inbox has two panes:
- The list on the left: one row per person, with their latest conversation.
- The conversation on the right: the full thread of the row you picked, with the actions for it in the header.
On a narrow screen the two panes take turns: pick a row to open the conversation, then use Back to return to the list.
One row per person
The list groups conversations by the person they are with. A customer who wrote to you five times shows up once, with their newest conversation. When a person has more than one conversation, a session picker appears in the conversation header: Latest is the newest, and older sessions are listed by date with their status and the start of their last message.
Each row shows:
| Part | What it means |
|---|---|
| Initials and name | The customer's name, or Visitor when the channel gave no name (website chat visitors are unnamed until your team names them). For Test panel chats it shows the teammate who ran the test, or You. |
| Channel icon | Where the conversation happens: Web widget, Telegram, API or Test panel. |
| Test chip | A conversation from the Test panel. Nothing in it reached a real customer. |
| Time | How long ago the last message arrived. |
| Preview | The start of the last message. A message with only files shows the file names. |
| Status line | asked for a person (or the agent's reason for the handoff), taken over by a teammate, or resolved. A dot marks a conversation that needs you. |
The list shows up to 100 people at a time, newest first. Older people are still there: search for them.
What the Inbox leaves out
Two kinds of conversations never show in the Inbox, because each has its own view:
- Tests the Copilot runs while it builds your agent.
- The task runs of automations. See Automations.
A conversation also stays out of the list until someone has written in it. A widget visitor who pressed New conversation but never typed, or an API session with no messages yet, has nothing to show.
Filters
Tabs at the top of the list narrow it down:
| Tab | Shows |
|---|---|
| All | Every conversation, newest first. This is the default. |
| Needs you | Conversations where the agent asked for a person and nobody has taken over yet. Resolved conversations drop out. The tab shows a count. |
| Taken over | Conversations a teammate is answering right now. Resolved conversations drop out. |
| Approvals | Actions waiting for your team's decision. The tab shows a count. See Approvals. |
| Team calls | Questions other agents asked this agent. The tab appears once this agent has been asked at least once. See Agent teams. |
The badge next to Inbox in the sidebar adds up Needs you and pending Approvals, so you can see from anywhere in Peki that something is waiting.
Search
The search box (Search conversations…) finds conversations by the customer's name or by the text of the last message. It ignores upper and lower case and works inside the current tab. Search is not available in the Approvals and Team calls tabs.
Conversation statuses
Every conversation has two independent states: whether it is open or resolved, and who is answering it.
| State | Meaning |
|---|---|
| Open | The conversation is ongoing. New conversations start open. |
| Resolved | Someone on your team pressed Resolve. |
| No handoff | The agent answers. |
| Requested | The agent asked for a person. It keeps helping the customer until someone takes over. Listed under Needs you. |
| Taken over | A teammate is answering. The agent stays silent until the conversation is handed back. Listed under Taken over. |
What resolving does
Resolve closes the conversation:
- Any handoff is cleared, so the conversation leaves Needs you and Taken over.
- A reply the agent was still writing is dropped.
- On Telegram, if the agent wrote the last message, the customer is asked "Was this conversation helpful?" with 👍 and 👎 buttons.
- For a real customer conversation, it fires the Peki event Conversation resolved, which your automations can react to. See Triggers.
On the website chat and Telegram, a resolved conversation ends the customer's session. If the same customer writes again, a new conversation starts and appears under the same person in the list. In an API session the conversation itself continues: it opens again and the thread shows The customer wrote again · reopened.
Resolve conversations once the customer's question is settled. It keeps Needs you short, it gives the next message a fresh start, and on Telegram it asks the customer for feedback that shows up in Analytics.
Reading a conversation
The thread shows every message in order:
- Customer messages on the left, with any files they sent. Photos show as thumbnails, documents as chips you can open or download. See Files and attachments.
- Agent replies on the right, labelled AI.
- Team replies on the right, labelled with the teammate's name and Team.
- Events in the middle, as small pills with the time: Handoff requested, a teammate took over, handed back or resolved, the customer wrote again, an action was sent for approval or decided.
The header shows the person's name, the channel (and their Telegram username if they have one), the session picker when there is more than one session, and Customer details, which opens the customer profile. Records the agent saved from this conversation show just under the header. See Records.
A reply that could not be produced shows The agent couldn't answer. Check the model and try again. A reply that was dropped because a person took over or the conversation was resolved shows the same way.
Watching a reply as it is written
While the agent works on a reply, you see it live:
- Thinking while the model reasons. The reasoning stays open until the answer starts, then folds away under Reasoning.
- Each tool call with its state: running, then a check mark or a cross and how long it took.
- The text, word by word, as the agent writes it.
Once the reply is saved, the steps stay on it, folded, so you can open them later.
Why did the agent say that?
Every agent reply has a Why? link. It opens the trace of that reply: what it was built from.
| Line | What it tells you |
|---|---|
| Used skill | Each skill the agent loaded for this reply. |
| Called | Each tool or Function call, with its result status (or the error) and how many milliseconds it took. |
| Read | Each Knowledge passage the agent was given, by source and passage number. |
| Files | Each file the model was given, and how: as an image, as text it read, or as a note only (for example "not shown to this model"). |
| Prompt blocks: | The instruction blocks that were active for this reply. Blocks with conditions (channel, business hours, customer tags) only show when they applied. |
| Tokens and time | Total tokens used and how long the reply took, in seconds. |
| Reasoning | The model's reasoning, when the model produced any. |
Use Why? when a reply surprises you. It usually shows the cause straight away: a block that didn't apply, a tool that failed, or a Knowledge passage that was missing or wrong. Then fix the agent in Instructions, Tools or Knowledge, and check the fix in the Test panel.
When the agent asked other agents for help, the reply shows Asked: with each agent's name. Click a name to open that team call in place.
Answering yourself
To write to a customer you take the conversation over first, so the agent and a person never answer at the same time. Until you do, the composer shows Take over to reply yourself. When a teammate has it, it shows "name is replying in this conversation."
The full flow, including handing back, is in Human handoff.
Live updates
You don't need to refresh the Inbox:
| What | How often |
|---|---|
| The list | Every 4 seconds. |
| The open conversation | Every 3 seconds, and every fraction of a second while a reply is being written. |
| Counts on the tabs and the sidebar badge | Every 8 seconds. |
| A reply being written | Streamed live as it happens. If the connection drops, it reconnects on its own. |
New conversations, handoff requests and team replies from your colleagues appear without any action from you.
Who can do what
| Role | In the Inbox |
|---|---|
| Viewer | Read conversations, traces and customer profiles. |
| Operator | Everything a Viewer can, plus take over, reply, send files, hand back, resolve and edit customer profiles. |
| Editor, Admin, Owner | The same as an Operator in the Inbox. |
See Members and roles.
Troubleshooting
| What you see | Why, and what to do |
|---|---|
| A conversation you expect is missing | Check the tab: Needs you and Taken over hide resolved conversations. Switch to All, or search by name. Conversations nobody wrote in yet are not listed. |
| The agent's test from the Copilot isn't here | By design. Copilot tests and automation runs have their own views. |
| "name has already taken over" | A teammate took the conversation a moment before you. Ask them to hand it back if you need it. |
| Take over the conversation to reply | You tried to reply without taking over, or a teammate took it from you after a hand back. Take it over again. |
| The customer's name shows as Visitor | Website chat visitors have no name. Open Customer details and give them one. |