Product Guide
The whole of Odly, in one place
On this page
2 · The four roles
Every person has one role. Each rung adds to the one below it. The handbook uses the friendly names; the app shows the system name.
org_adminmoderatorsupportassociate3 · The life of a message
Every conversation moves through these states. You set some; the system sets others as things happen.
4 · How the learning engine works
The engine writes new rules by watching how your team works. The loop below shows routing — the mature, fully-automated domain — but the same loop runs for other domains too (spam, detection, and more). Correcting the app isn't just fixing one message; it's training the system.
5 · Message → Ticket → Jira
Most conversations are just answered and resolved. Promote one to a ticket only when it needs tracking — and to Jira only when engineering owns it.
6 · Your department map
The six departments in your workspace and the kind of mail each owns — with the real categories configured in Odly.
Supportdefault
- Technical Issue
- How-To Question
- Setup & Configuration
- Feature Request
Sales
- Demo Request
- Pricing Inquiry
- Product Question
- Purchase Intent
- Enterprise Inquiry
Billing
- Billing Question
- Invoice & Receipt
- Payment Issue
- Refund Request
- Subscription Changes
HR
- Employee Onboarding
- Leave & Time Off
- Payroll & Benefits
- Performance & Development
- Employee Relations
- Policy & Compliance
Info
- Information Request
- Account Management (org-wide)
Marketing
- Brand Collaboration
- Influencer & UGC Outreach
- Marketing Internship
- Press & Media Inquiry
- Sponsorship & Partnership
7 · The inbox at a glance
Where you spend your day. Everything on a conversation card tells you something — here's the anatomy.
8 · Working a conversation
Open a message and you get the full thread, AI help in the tabs, a composer, and the action buttons.
Four realistic journeys that stitch the individual tasks below into a full story — follow the timeline and see how a conversation moves through its statuses and across the team.
A stuck customer gets unblocked
Support · from first email to a saved KB answer
- A customer emails “can't log in after resetting my password.” It's auto-routed to Support and lands in the inbox as open.
- You click + Claim to own it, open the KB tab, and see a suggested answer about reset links expiring. → Task 1
- You click Use, tweak the wording, and Send (⌘↵). Status moves to awaiting response.
- The customer replies “that worked, thanks!” → client replied.
- Since this will come up again, you click Resolve & Save to KB → resolved, and the answer now powers future AI suggestions. → Task 7
A hot lead comes in
Sales · from a chat message to a tracked opportunity
- A visitor asks via the chat widget: “interested in the Enterprise plan for ~40 seats.” The AI auto-marks it a Lead and routes it to Sales.
- You open the Lead tab and check the captured name, company, and interest — fixing anything the AI missed. → Task 5
- You click Create Lead Ticket so it's tracked through the pipeline, and reply fast with next steps.
- Because it's a large deal, you add an internal Note and reassign it to a senior rep via the assignee avatar. → Task 6
- Your manager watches enterprise leads under Statistics (Overview, Team Performance, Messages, SLA) and steps in if one stalls.
A refund request, handled cleanly
Billing · agent + manager, with an audit trail
- An email “please refund last month's charge” routes to Billing.
- You verify the account and the charge — without promising a refund yet. You keep your reasoning in an internal Note.
- You click Create Ticket (→ Task 2), set its priority to high, and escalate for approval — captured in the ticket, your notes, and the audit trail.
- Your manager reviews and tags the conversation with a Refund pending label (applying labels is a manager / admin action), then approves.
- Once approved, you reply confirming the refund and click Resolve & Save to KB (or Close for a one-off).
Mail nobody could place teaches the system
Routing + learning · agent today, admin later, automatic tomorrow
- An ambiguous email arrives that the router can't confidently place, so it's marked needs routing.
- In the Needs Routing queue you read it, pick Billing, and click Route. → Task 3
- You (and teammates) keep routing similar mail the same way. The learning engine notices the pattern.
- An admin opens Engine Activity, sees the proposed rule with its evidence, and clicks Accept. → Task 9
- From now on, that kind of mail auto-routes to Billing — it never hits Needs Routing again.
Answer & resolve a customer message
The core loop — you'll do this dozens of times a day.
- In the Inbox, open the conversation. If it's unassigned, click + Claim to take ownership.
- Read the thread. Open the KB tab for a suggested answer (the AI tab shows the analysis — category, priority, summary).
- Click Use on a good suggestion — it drops into the composer as an editable draft.
- Edit it to fit the customer, then click Send (or press ⌘↵).
- When it's solved: if the answer is reusable, click Resolve & Save to KB; otherwise Close.
Turn a message into a ticket
When it needs tracking, ownership, or engineering.
- In the conversation's action strip, click Create Ticket — it's pre-filled from the message.
- Set the Title and Priority; optionally add a Category and Assignee. AI Enhance can polish the description.
- To involve engineering, tick Sync to Jira (or Push to Jira later). Synced tickets are then edited in Jira, not Odly.
- Track it in the ticket's Comments tab — tick Internal for team-only notes — and add files in Attachments.
Route a message from Needs Routing
When the router couldn't decide a department.
- Open Needs Routing from the left menu.
- Click a row to read the message if you're unsure where it belongs.
- Pick the correct department from the dropdown.
- Click Route — it moves to that department's queue. If it's junk, click Spam instead.
Handle spam & suspicious mail
When a message is flagged Suspicious or Filtered.
- Open the flagged conversation and read it. (Suspicious and Filtered are two forms of the filtered / spam status from §3.)
- If it's legitimate, click Not Spam — Approve to move it into the active inbox.
- If it's genuine junk, click Move to Spam.
- If it's phishing or a scam, don't just dismiss it — approve only if safe, and escalate the threat to a manager.
Handle a sales lead
When a message shows buying interest (or is auto-marked Lead).
- If it isn't flagged already, open the More menu and choose Mark as Lead.
- Open the Lead tab and check the captured details (name, email, company…). Edit anything the AI missed.
- Click Create Lead Ticket to track it through the pipeline.
- Reply fast with clear next steps — speed wins deals.
Hand off to a teammate
When someone else should take it, or you need input.
- Switch the composer to Note mode and write the context — this is internal only, never sent to the customer.
- Reassign by clicking the assignee avatar on the conversation and picking a teammate.
- If it belongs to another team, change the department from the conversation header.
Grow & tidy the knowledge base
Everyone saves; admins review & approve what's captured (managers can view).
Where: Knowledge Base (left menu)
- Anyone: when resolving, choose Resolve & Save to KB to capture the question & answer.
- Open Knowledge Base and filter to Pending.
- View each entry, then Approve the good ones, Edit the almost-good, or Hide the noise.
Tune a routing rule
When mail keeps landing in the wrong department.
Where: Settings → Rules → Routing Rules
- Open the routing rules and filter by All / Manual / Learned.
- Create or open a rule: pick the target department and a type (subject contains, body contains, sender domain, …).
- Set the value / pattern and example text, then adjust the weight (higher wins when several rules match).
- Toggle Enabled — and disable a Learned rule that's grown too broad.
Review the learning engine's suggestions
Approve or reject what the engine proposes across its domains.
Where: Settings → AI → Engine Activity (and Learning Trust)
- Open Engine Activity to see proposals grouped by domain (routing, spam, detection, …).
- For each, check the summary, confidence, and evidence count.
- Click Accept to apply it, or Decline (optionally with a reason).
- For a routing conflict, expand the evidence and Edit one rule to tighten it, or Merge the two.
- Set how boldly it acts under Learning Trust — Manual, Balanced, or Aggressive.
Connect a mailbox (or other channel)
When adding a source that feeds the inbox.
Where: Settings → Integrations (the on-screen tab)
- On the Integrations tab, pick a message-source card — Email, Gmail, Telegram, or Slack. (The same screen holds the Jira card used in Task 2.)
- Email (IMAP/SMTP): enter host, port, address, password, and TLS. Gmail: use the OAuth sign-in instead.
- Choose the search criteria and lookback window, then assign the department(s).
- Save — new mail now flows into the inbox. (Telegram/Slack use a bot token; Slack is event-driven, no polling.)
Invite a teammate
When adding a new person to your organization.
Where: Users (left menu)
- Open Users and click Invite User.
- Enter their email and pick the organization.
- Choose a role — Agent (
support), Manager (moderator), read-only (associate), or Admin (org_admin). - Assign their department(s) and send — they'll get an email to set a password.
Set up AI for your organization
To enable suggested replies, analysis, and auto-reply.
Where: Settings → AI
- Open Settings → AI, pick your provider, and paste that provider's API key on its card (Odly is bring-your-own-key). Providers: OpenAI, Anthropic, DeepSeek, Perplexity, Qwen, AWS Bedrock, Ollama, or a Custom OpenAI-compatible endpoint.
- Choose the model for that provider.
- Review the prompts & model settings the AI uses for analysis and drafting.
- Configure Lead qualification (which fields to collect) and Auto-reply (whether AI may draft/send, and its guardrails).
- The same tab governs the learning engine — set the Trust Mode and review proposals (see Task 9).
Set your SLA targets
Define the response and resolution times the team is held to.
Where: Settings → Organization → SLA Thresholds
- Open SLA Thresholds.
- For Ticket SLA, set a first-response (minutes) and resolution (hours) target for each priority — Critical, High, Medium, Low.
- For Message SLA, set a first-response target per channel — Email, Telegram, Slack, Chat/Widget, Other.
- Save — targets apply to new tickets and messages and drive the SLA breach / at risk flags.
Add a department
When you need a new team queue (e.g. a new HR or Marketing desk).
Where: set up during onboarding — no self-serve screen yet
- Decide the essentials: the department name, and which mail, sources, and people belong to it.
- Odly has no self-serve “Departments” form today — contact your Odly onboarding / platform contact to create it.
- Once it exists, link message sources to it and add routing rules & skills that target it.
- Grant the right users access to the department (see Task 11).
- Heads-up: if you try to add a source with no departments yet, the integration card shows “No active departments. Create one before adding a source.”
Restore a deleted message
When a conversation was removed and needs to come back.
Where: Deleted Messages (left menu · admin only)
- Open Deleted Messages — it lists everything soft-deleted from the inbox.
- Find the conversation and click Restore to return it to the active inbox in its previous state.
- To remove it for good, use Delete permanently — this can't be undone.