Training pack
Onboard a new hire
docs/howto/training/.On this page
Run by the manager/admin who owns onboarding.
Create the training workspace
Public signup page — no in-app “create workspace” exists
- Open the app's /signup page signed out (no invite token= in the link — that version accepts invitations). Fill workspace name, name, email, password — an address not already an Odly account (e.g. a training@ alias).
- You are now its org_admin. The workspace starts on the Free plan's 14-day trial: all features + managed AI, ~10 seats, 25 channels, ~1,000 messages. Run the cohort inside the trial — after it, Free caps bite: 2 seats (over-limit members get paused, not deleted — an admin chooses who stays), 1 channel (extras paused), 500 msgs/mo, no managed AI (BYO key), plan features (lead qualification, Jira sync, audit logs, SSO) off — and only 1 active department, so routing drills die too. A permanent training workspace needs a paid plan or a platform-team arrangement.
- Alternative: the platform team (global admin) can create one via the platform API — there's no console button for it.
- Connect a test mailbox: Settings → Integrations → Message Sources. Signup seeded all six departments but only Info starts active (the default/fallback) on a Free-plan signup — activate Support/Billing/etc. during the trial via the console or API, then link the source to the ones drills route between (Assign departments).
- Add one approved KB entry on your drill topic (feeds A1's suggestion).
- Run the before-day-1 checklists — trainee, trainer and admin — so nothing blocks day one.
- Invite the trainee: Users → Invite User → role Support - Manage tickets and messages → pick their departments → Send Invitation.
- Trainee accepts the email link — an existing Odly account works: same email → the invite adds a second membership (no duplicate account; refused only if no seat is free). With two memberships, the workspace switcher appears at the bottom of the sidebar — selection is per browser tab, and a banner names the workspace on Settings/admin screens.
The five-day plan
Manager and admin tracks run 2–3 days on their own drills
- Day 1 — quick start + cheat sheet + shadowing; drills A1–A3 (reply, note, resolve).
- Day 2 — A4–A9 (reopen, Not customer work, spam piles, suspicious, routing, Needs Routing).
- Day 3 — A10–A16 (tickets, merge, On-hold, SLA, leads, WhatsApp, handover).
- Day 4 — live inbox supervised (switch via the workspace switcher — it's per-tab, so keep training open in a second tab). No pre-send approval exists: trainee drafts as an Internal note for review, or the trainer reviews sent replies on the thread.
- Day 5 — quiz (≥16/20) + sign-off checklist; all green → invite them to the live workspace.
- Manager track — agent Day 1–2 material + M1–M5 (M1–M2 day 1, M3–M5 day 2, optional day-3 shadowing). Admin track — AD1–AD6 inside the training workspace (AD1–AD2, AD3–AD4, AD5–AD6 across the days).
Answer with a KB suggestion
Seed: approved KB entry on the topic + an outside mail asking it — the suggestion is likely, never guaranteed. Fallback: any thread whose AI/KB tab shows one; otherwise run A2.
support · a trial or paid workspace (managed AI) or a BYO provider key (drill AD3) — a bare post-trial Free workspace has no AI, so this drill can't run there · the trainer has created the KB entry and sent the sample mail · start on Messages.- Claim it — click Claim on its card, or open it and set Assigned to yourself in the header strip.
- Open the KB tab in the right panel and read the suggestion.
- Click Use in reply — it lands in the composer.
- Edit the wording if needed and check the composer is on Reply (not Internal note).
- Click SEND (or ⌘↵).
No suggestion → answer, ask, save
Seed: any mail on a topic with no KB entry — reliable.
support · any plan state · the trainer has sent the sample mail · start on the thread.- Switch the composer to Internal note and POST NOTE a question for a colleague (notes are team-only).
- Switch back to Reply, write the answer, SEND → the thread is now Pending, i.e. active.
- Click Resolve & save to KB so the answer feeds future suggestions. ⚠ That button only appears on an active thread — one the customer has written in (a seeded inbound mail counts). On a thread the customer never wrote in — unreviewed, e.g. an outbound-started one — the row offers only Resolve (there's no answer to capture), and the whole row is absent on filtered/spam/suspicious threads, resolved/closed ones, and threads already linked to a ticket. If it's absent: resolve normally with Resolve, then create the KB entry from the KB page.
Customer replies → then Resolve
Seed: trainer replies again from outside ("thanks, one more thing…") — reliable; send it after the trainee finishes A1/A2's reply.
support · any plan state · A1/A2 finished and the trainer's follow-up mail sent · start on Messages.- Find it in In Progress — the thread moves Pending → In Progress (customer replied last → your turn), and the card's dark spine shows a customer reply.
- Answer, SEND → back to Pending.
- When it's truly done, click Resolve.
Customer writes back after Resolved
Seed: one more outside reply on the resolved thread — reliable.
support · any plan state · A3 resolved and the trainer's re-open mail sent · start on Messages.- Find it back in Open — the thread reopens to Open on its own: resolved/closed conversations reopen on a new customer reply, resolution timestamps are cleared, and the first-response SLA cycle starts again. Answer as normal.
- Resolve again when done.
Newsletter → Not customer work
Seed: any newsletter/auto-mail — reliable.
support · any plan state · the trainer has sent the newsletter mail · start on the thread.- Open it, confirm it's not customer work.
- Click Not customer work (the quiet exit beside Resolve).
Spam: Resolve as spam + the confirm pile
Seed: obvious junk mail for resolve-as-spam (reliable); the “to confirm” half needs an AI-flagged item — use one already there or walk the controls on the Spam column without clicking.
support · any plan state · the trainer has sent the junk mail (and there's an item in the to-confirm pile, or you walk the controls) · start on Messages filtered to the Spam queue.- On the junk thread, click Resolve as spam → it moves to Spam (confirmed), not Resolved.
- Open list view, filter Queue → Spam — to confirm.
- On an unconfirmed item, choose Confirm — it is spam (real junk) or Approve — Move to Open (a false positive — returns it to the board).
Suspicious mark — review, don't click
Seed: trainer marks a thread ⋯ → Mark as suspicious — the mark is a manual action too, so this always works.
support · any plan state · the trainer has applied Mark as suspicious to a thread · start on the thread or the bell's Suspicious row.- Open it via the bell's Suspicious row or the Queue filter.
- Don't click links or open unexpected attachments — read, judge.
- Decide: Not Spam — Approve (safe — optionally teaches the filter via the two toggles), or leave/escalate it (e.g. Resolve & move to spam if it's really junk). Phishing/scam flags relabel the approve button Not a Threat — Approve.
Wrong department → Dept + Create rule
Seed: mail meant for another dept; the trainee must be a member of the target dept — agents can only route to depts they belong to.
support with membership in the target department · ≥2 departments active and linked to the source — a fresh workspace starts with only Info active (Free-plan seeding), activate the rest during the trial; on post-trial Free the budget is 1 active department, so this drill can't run then · the trainer has sent the off-department mail · start on the thread.- Click the Dept value in the header meta strip (tooltip: “Click to change department”).
- Pick the right department; optionally turn on Create rule so the engine learns the correction.
- Confirm — the thread moves dept.
Route from Needs Routing
Seed: can't be forced — use a marked thread if the queue is non-empty, else run the same skill on any thread via the Dept select (A8) and explain the difference.
support · needs-routing marks come from the AI router → trial/paid managed AI or a BYO key; ≥2 active departments like A8 (fresh workspaces start with only Info active) · manual routing itself works on every plan · start on Needs Routing.- Open Needs Routing in the Work nav — the nav item only appears when the queue is non-empty.
- Read the thread, pick its department in the row's Select department… picker, and route it.
Needs engineering → Create ticket
Seed: a bug-report mail — reliable; Push to Jira / Sync to Jira only if Jira is connected (a Pro+ feature, on during the trial — skip it otherwise).
support · tickets work on every plan incl. Free; the Push to Jira/Sync to Jira part needs Jira connected — a Pro+ feature (on during the trial, off on Free) · the trainer has sent the bug-report mail · start on the thread.- Open ⋯ More actions → Create ticket (it reads Create lead ticket on a lead thread).
- Fill the form — Title, Description, Priority, Assignee; if Jira is connected, tick Sync to Jira.
- Save — the ticket chips appear on the thread; a linked Jira ticket syncs comments roughly once a minute.
Duplicate threads → merge
Seed: two mails from the same outside address — reliable (merge needs same-channel conversations; up to 20).
support · any plan state · the trainer has sent the two duplicate mails from one address · start on the thread that should survive.- Open the thread to keep → ⋯ More actions → Merge with another thread….
- In the dialog, search by “Thread number, address or subject”.
- Confirm — the merged thread shows the “Same conversation” section with Unmerge if needed.
On-hold and back
Seed: any open thread + a later customer reply — reliable.
support · any plan state · an open thread + the trainer's release mail · start on the thread.- Set the status to On-hold → the card parks (amber badge).
- To return it manually, set it back to Open.
- Watch the customer's reply clear the park automatically → In Progress.
SLA at risk / breached
Seed: admin sets a 5-min first-response target (Settings → Workspace → SLA Thresholds), send a mail, wait — the flag goes At risk past 80% of target, Breached past it; restore the real target after.
support · any plan state · the admin has set the short first-response target and the trainer's mail has aged past 80% / past it · start on Messages or the SLA page.- Find the thread via the SLA flags/sort on the board.
- Answer it first — SLA risk means answer before older but safe threads.
Hot lead
Seed: buying-intent mail + trainer ⋯ → Mark as lead (AI lead detection itself is a plan feature; the manual mark works regardless).
support · Mark as lead works on every plan — it's a manual action; only AI lead detection and the Lead tab's qualification fields are a plan feature (trial/paid, off on bare Free) · the trainer has sent the buying-intent mail · start on the thread.- Review the Lead tab's captured fields.
- ⋯ More actions → Create lead ticket.
- Reply fast; reassign to sales via Assigned if needed.
WhatsApp outside 24h
Only if WhatsApp is connected in the training workspace — needs a real WhatsApp thread quiet >24h; skip otherwise (not part of a minimal training setup).
support · a WhatsApp source connected · a WhatsApp thread older than 24h · start on the thread.- Open the WhatsApp thread, start a reply.
- Pick an approved template, fill its parameters, send.
End-of-shift handover
Seed: any active thread + a colleague (the trainer) to take it — reliable.
support · any plan state · an active thread + the trainer online to receive it · start on the thread.- Write an Internal note summarizing where it stands → POST NOTE.
- Change Assigned in the header meta strip to the next agent — the customer sees nothing.
Rebalance workload
Seed: 3–4 mails, all assigned to one member — reliable (assignment is a normal action).
moderator · any plan state · the trainer has seeded 3–4 mails all assigned to one member · start on Statistics.- Open Statistics → Team Performance and read the Open backlog column.
- Open a heavy agent's threads, pick one, and change Assigned in the header meta strip to the idle agent — with an internal note for context.
Approve / reject KB entries
Seed: the agent trainee runs A2 (Resolve & save to KB) once or twice → pending entries appear (some may auto-approve — a couple of captures usually leaves one pending).
moderator · any plan state · pending entries exist · start on Knowledge Base.- Open Knowledge Base, filter to Pending.
- Read an entry; click Approve if it's good, Reject if not (rejected entries delete after 90 days).
moderator/org_admin (MANAGE_KNOWLEDGE_BASE), not support.Needs Routing + Engine Activity
Seed: can't be forced — use whatever is in the queue, or walk the page even when empty; if no suggestions yet, review the recent auto-actions.
moderator · needs-routing marks and engine suggestions are AI output → trial/paid managed AI or a BYO key; ≥2 active departments (fresh workspaces start with only Info active — activate more during the trial). On bare post-trial Free, run the manual routing part and review Engine Activity's recent auto-actions · start on Needs Routing.- Open Needs Routing, route or re-check the listed threads.
- Open Settings → AI → Engine Activity, review pending suggestions — Accept or Decline each.
Review SLA breaches
Seed: if nothing has breached, an admin sets a short target (Settings → Workspace → SLA Thresholds) and lets one training mail breach — or use history.
moderator · any plan state · an admin has set a short target and let a mail breach (or existing breaches) · start on Statistics or the SLA page.- Open Statistics, find the SLA numbers for the period.
- Filter the inbox to breached/at-risk threads and read one end to end.
Create and apply labels
Seed: none needed — labels are creatable on demand by moderator+.
moderator (labels need MANAGE_LABELS — support can't do this drill) · any plan state · no setup · start on Settings → Workspace → Labels.- In Settings → Workspace → Labels, create a label (name + color).
- Open a conversation and apply it via the header's label picker.
- Filter the board by that label.
Invite a user with the right role
Seed: a spare email address for the invitee.
org_admin · a workspace within its seat limit (post-trial Free allows 2 users — the invite is refused past it) · a spare email address · start on Users.- Open Users → Invite User.
- Enter the email, set Role to Support - Manage tickets and messages.
- Pick their Departments, click Send Invitation.
associate (read-only), support, moderator, org_admin (the dialog offers it only to Platform Admins — the note reads “Org admins cannot invite other org admins”).Connect a mailbox source + departments
Seed: credentials for a test mailbox (a Gmail account for the OAuth source, or IMAP details).
org_admin · a plan within its channel limit (trial allows plenty; Free allows 1) · credentials for a test mailbox · start on Settings → Integrations → Message Sources.- Open Settings → Integrations → Message Sources, add/connect the source, run its Test.
- Assign the source to a department so inbound mail routes there.
- Send a mail and confirm it lands in the inbox.
Configure an AI provider
Seed: an API key for a provider — needed on Free; during the 14-day trial managed AI is already on, so explain that difference first.
org_admin · needed on Free (the trial already has managed AI) · an API key for a provider · start on Settings → Integrations → AI Providers.- Open Settings → Integrations → AI Providers.
- Add the provider's key and save.
Write a routing rule and test it
Seed: two active departments + a planned keyword (e.g. “invoice” → Billing).
org_admin · ≥2 active departments · a planned keyword · start on Settings → Rules.- Open Settings → Rules and add a rule (field, Value, department, score).
- Send a mail containing the keyword; watch it land routed.
- Check Engine Activity to see the engine's own suggestions vs your rule.
Security — require 2FA
Seed: none.
org_admin · any plan state · no setup · start on Settings → Workspace → Authentication.- Enable Require two-factor authentication and Save changes.
- Explain: users without 2FA are prompted to set it up at next login.
Find an action in Audit Logs
Seed: perform a couple of auditable actions first (invite a user, edit a routing rule); audit logs are an Enterprise feature — on during the trial, off on Free (if the trial has ended, run this earlier or on a workspace with the feature).
org_admin (or moderator — VIEW_AUDIT_LOGS) · audit logs are an Enterprise plan feature · the trainer has performed a couple of auditable actions · start on Audit Logs.- Open Audit Logs.
- Filter/search for the action you just made (who, what, when).
Ready for the live workspace when the trainee can, unaided
Tick each, then move them over — invite to live, deactivate in training
- Claim, reply with/without a suggestion, and send.
- Read the board — five statuses, triage columns, thread marks.
- Use Internal note / POST NOTE vs SEND correctly.
- Pick the right exit: Resolve · Resolve & save to KB · Not customer work · Resolve as spam.
- Reassign with a note; park and release On-hold.
- Create a ticket from ⋯ More actions.
- Say what a customer reply does to Pending, On-hold, Resolved.
- Pass the quiz: ≥ 16/20.
Answer before opening — out loud or in writing. Q16–Q20 are for manager/admin tracks; agent trainees answer Q1–Q15. Target: ≥ 16/20.
Self-check quiz
Twenty “what would you do?” questions for the last day of onboarding.
?1 · The KB tab shows a suggestion for this question — which button uses it?
?2 · You sent the reply — which status and what does it mean?
?3 · The customer replies — what happens?
?4 · A newsletter arrived — which exit and why?
?5 · Obvious junk — which action, where does it land?
?6 · A suspicious-flagged thread — first move, and what never?
?7 · Thread is in the wrong department — where's the control, what's the catch?
?8 · Where do unplaceable conversations go and who routes them?
?9 · Engineering bug — where's the ticket button?
?10 · Same customer, two threads?
?11 · Blocked waiting on a colleague — which status?
?12 · Amber “At risk” badge then red — meaning? When does the clock stop?
?13 · Resolved thread gets a new customer reply — who reopens it?
?14 · End of shift, thread half-done — two actions?
?15 · WhatsApp thread quiet 30 hours — can you just reply?
?16 · (manager) One agent's backlog is double — where do you check?
?17 · (manager) An agent saved to KB — is it live? Who decides?
?18 · (manager) Where do you review engine proposals?
?19 · (admin) Second workspace for training — where, what cost?
?20 · (admin) Force 2FA for everyone — where, and the plan catch?
Scoring: 18–20 ready · 14–17 review the weak chapters and retry the missed questions · <14 rerun the corresponding drills with the trainer.