Tone Detection
Set up Tone Detection so a role is pinged when a customer sounds angry, frustrated, upset, or confused, and understand the Enterprise sentiment journey
Tone Detection reads the emotional tone of a customer's messages in a ticket and, for the tones you choose, pings a role with a 🎭 Tone Alert card in your logs channel. It runs until a staff member replies, then stops. This page is for the admin who wants the team warned before a conversation goes wrong. The related Sentiment Analysis feature, which records how a customer's mood changed over a whole ticket, is covered at the end.
Tone Detection is available on Pro and Enterprise and needs Enable AI Features on the General tab plus a logs channel. The Customer Sentiment Journey is a separate Enterprise feature. Upgrade your plan
Setup
Open the Conversation tab
Go to Dashboard → Bots → your bot → Servers → the server → AI & Knowledge → AI Features → Conversation and find Tone Detection.
Enable it
Click Edit and switch on Enable Tone Detection.
Add tone actions
Click Add Action, choose a tone, choose Ping Role, and select the role. Repeat for each tone you want alerts for. Tones without an action are ignored.
Set timing and save
Choose an Analysis Mode and a Delay Before Analysis, then click Save All.
Settings
| Setting | Values | Default | What it does |
|---|---|---|---|
| Enable Tone Detection | On, Off | Off | Master switch for this feature |
| Analysis Mode | First Message Only, First 5 Messages, Smart Detection | Smart Detection | First Message Only analyses the first customer message at once. First 5 Messages waits for up to five messages and judges the overall tone. Smart Detection picks its moment and waits if staff reply quickly |
| Delay Before Analysis (seconds) | 30 to 300 | 30 | The context window: the bot waits this long after the customer's last message, and the timer resets when they send another |
| Tone Actions | One row per tone: Ping Role with a role, or Do Nothing | None | What to do when each tone is detected |
Tones
| Tone | Typical signs |
|---|---|
| Angry | Capital letters, profanity, threats |
| Frustrated | Repeated complaints, impatience |
| Upset | Disappointment, sadness |
| Confused | Uncertainty, repeated questions |
| Happy | Thanks, positive words |
| Neutral | Plain factual messages |
What happens
- A customer sends a message in a ticket.
- The bot waits Delay Before Analysis seconds after their last message and reads the messages allowed by the Analysis Mode.
- The AI classifies the tone.
- If that tone has a Ping Role action, a 🎭 Tone Alert card is posted to the logs channel. It mentions the role and shows
AI detected Frustrated tone in ticket #ticket-0412, then Detected Tone, Confidence, User, and AI Analysis with the reasoning. - Once a staff member replies in the ticket, analysis stops for that ticket to respect the customer's privacy.
The customer sees nothing. The card goes to the logs channel only.
Worked example
A moderation team wants to know about angry customers immediately and about confused ones so a patient helper can step in.
| Tone | Action |
|---|---|
| Angry | Ping Role: @Senior Support |
| Frustrated | Ping Role: @Senior Support |
| Confused | Ping Role: @Helpers |
| Upset, Happy, Neutral | No action |
With Smart Detection and a 45-second delay, a customer who writes this is the THIRD time I've asked followed 20 seconds later by nobody answers here is analysed once, 45 seconds after the second message, and @Senior Support is pinged with a Frustrated alert.
Sentiment journey (Enterprise)
On Enterprise, the Conversation tab also shows a Sentiment Analysis card. It is on by default and records how the customer's mood changed across the ticket.
- The analysis runs automatically when a ticket is closed and needs at least 3 customer messages.
- Open the ticket in the dashboard and choose the Sentiment tab to see the Customer Sentiment Journey. A ticket that is still open shows
Sentiment analysis runs automatically when a ticket is closed; a short ticket shows how many customer messages it has and the minimum required. - The history is stored on the ticket and follows your ticket retention policy.
Limits and gotchas
Alerts need a logs channel. Without one the analysis still runs but no alert is posted; run /setup to choose a logs channel.
- The minimum delay is 30 seconds. Entering a lower value is rounded up when you save.
- A tone with Do Nothing produces no card, so add Ping Role actions only for the tones you want to hear about.
- Tone Detection alerts staff; it does not change priority or escalate the ticket. Use Priority Detection for priority.
Privacy
Message content is analysed only to classify tone and, on Enterprise, to build the sentiment journey. Analysis stops once staff reply. Data is not shared with third parties or used for anything else.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No alerts at all | The feature or the AI master switch is off, no tone has a Ping Role action, or no logs channel is configured | Check both switches, add actions, and set a logs channel with /setup |
| The alert shows Unknown Role in the dashboard | The role was deleted in Discord | Edit the action and pick a current role |
| Alerts arrive after staff already replied | The analysis started before the reply | Shorten Delay Before Analysis or use First Message Only |
| Too many alerts | Neutral or Happy have a Ping Role action, or the delay is short | Remove those actions and use Smart Detection |
| No sentiment journey on a ticket | The ticket is still open, has fewer than 3 customer messages, or the owner's plan is not Enterprise | Wait for the close, or check the plan |
Common questions
Which plan do I need? Pro or Enterprise for Tone Detection. The sentiment journey on the ticket page needs Enterprise.
Does the customer see the alert? No. Alerts go to the logs channel, which customers cannot see.
Can I alert different roles for different tones? Yes. Add one action per tone, each with its own role.
Why did the alerts stop mid-ticket? Analysis stops once a staff member replies in the ticket. That is by design.
Can it escalate or change priority? No. It only pings. Pair it with Priority Detection or Auto-Route for those actions.
Where is the sentiment journey? Open the ticket in the dashboard and choose the Sentiment tab. It fills in after the ticket closes.
Join our Discord server for support
Was this page helpful?
Last updated on