Customers
Every person who writes to your agent gets a customer profile. It holds what Peki knows about them (their channel, name, language, when they were first and last seen) and what your team adds: a name, tags and notes. With Customer profile turned on, the agent sees the name, tags and notes too, so it can greet returning customers and follow your team's notes.
How customers are identified
A customer is one person on one channel. Peki recognises them by an identifier the channel gives it:
| Channel | How the person is recognised | Name Peki starts with |
|---|---|---|
| Website chat | A random visitor id kept in the visitor's browser. Peki stores only a fingerprint (hash) of it. | None. They show as Visitor until your team names them. |
| Telegram | The Telegram chat id. | Their Telegram first and last name, or their username. Their @username is kept as Handle, and their Telegram app language as Language. |
| API | The customer.id your app sends when it starts a session. | The customer.name your app sends, if any. |
A profile is created the first time a person writes, and Last message is updated every time they write again.
Things to know:
- Profiles belong to the workspace, not to one agent. If the same Telegram user writes to two of your bots, they are one customer, with the same tags and notes for both agents.
- The same person on two channels is two customers. Someone who chats on your website and then on Telegram has two profiles. Peki has no way to know they are the same person.
- Website chat recognition lives in the browser. If the visitor clears site data, switches browser or device, or browses in a private window, they come back as a new visitor. If their browser blocks storage entirely, every page load is a new visitor.
- Your team's name wins. The name a channel gives is only a first guess. Once your team renames someone, new messages never overwrite it.
To recognise signed-in users of your own app across devices, run the chat through the Sessions API and send your own user id as customer.id. The website chat widget can't receive your user's identity. See API overview.
The customer panel
In the Inbox, open a conversation and click Customer details in the header. The Customer panel opens beside the conversation (or over it on a narrow screen).
| Field | What it is | Who can change it |
|---|---|---|
| Name | How your team and the agent call the person. 1 to 80 characters. | Operator and up |
| Channel | Where this profile comes from. | Read only |
| Handle | Their Telegram username, when they have one. | Read only |
| Language | Their Telegram app language. | Read only |
| First seen | When they first wrote. | Read only |
| Last message | When they last wrote. | Read only |
| Conversations | How many conversations they have had (up to 50 are counted). | Read only |
| Tags | Short labels, for example vip, wholesale, insurance-patient. | Operator and up |
| Notes | Free text for your team and the agent: preferences, past issues, agreements. Up to 2,000 characters. | Operator and up |
Press Save to keep your changes. Viewers see the panel read only.
Tags
- Type a tag and press Return or a comma to add it. Click the × on a tag to remove it.
- Tags are saved in lower case, without duplicates. Each tag is up to 30 characters; a customer can have up to 20.
- Tags show on the customer's rows in the Inbox list.
Tags are more than labels. Instruction blocks can apply only to customers with a given tag, so a vip customer can get a different tone, or a wholesale customer different prices. See Instructions. In the Test panel, you can pretend customer tags to try those blocks.
Notes
Write notes as you would for a colleague taking over the next shift:
Prefers WhatsApp-style short answers. Order #4821 arrived damaged on 3 March,
replacement sent. Don't offer the 10% code again, already used.
Personal identifiers in notes, such as phone numbers or ID numbers, reach the AI model only as placeholders when the personal data guardrail is on. See Guardrails and privacy.
What the agent sees
Turn this on in Instructions → Memory → Customer profile (on by default). On every reply, the agent then gets a short "Customer" section with:
- the customer's Name,
- their Tags,
- your team's Notes.
Nothing is added when none of these are known. The other fields of the panel (channel, handle, language, dates) are not given to the agent.
The name is also available in your instructions as the {{customer.name}} variable. See Variables and secrets. When the personal data guardrail protects names (it does by default), the model gets a placeholder instead of the real name, and the customer still sees their real name in replies.
Memory across sessions
A session is one conversation with a customer. The agent's memory works like this:
| What | Within one conversation | Across conversations |
|---|---|---|
| Earlier messages | The agent sees the last 5, 10, 20 or 50 messages of the current conversation, as set in Instructions → Memory (20 by default; off answers every message on its own). | Not carried over. A new conversation starts with an empty history. |
| Customer profile | Name, tags and notes, if Customer profile is on. | Carried over: the profile belongs to the person, not the conversation. |
So the customer profile is how the agent "remembers" a returning customer. If something should carry over to the next conversation, put it in the notes or a tag.
When a new conversation starts
| Channel | A new conversation starts when |
|---|---|
| Website chat | The visitor presses New conversation, or the last conversation was resolved, or it has been quiet longer than the agent's setting. |
| Telegram | The person sends /new, or the last conversation was resolved, or it has been quiet longer than the agent's setting. |
| API | Your app starts a session. Sessions never end by time. |
The quiet time is set in Instructions → Memory → Start a new session after:
| Option | Meaning |
|---|---|
| 1 hour of quiet | A message after one hour of silence starts a new conversation. |
| 24 hours of quiet | The default. |
| 7 days of quiet | Good for slow, long-running cases. |
| Never (only when resolved) | A conversation continues until your team resolves it. |
Older conversations of the same person stay in the Inbox under their row, in the session picker.
Deleting customer data
What you can do today:
- Clear what your team added. Remove the tags and notes and rename the customer, then Save.
- Delete the agent. In the agent's settings, deleting an agent removes all of its conversations, messages, files and records, and every customer who talked only to that agent. Customers who also talked to another of your agents are kept, for that agent. Admins and owners can do this.
- Delete the workspace. Removes everything in it, including every customer. Owners only. See Workspace settings.
There is no button yet to delete a single customer or a single conversation. If you receive a request to erase one person's data (for example under GDPR or KVKK), contact Peki support.
See Data and privacy for how customer data is stored and protected.