[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"documentation:page:\u002Fdocumentation\u002Faccount\u002Fnotifications":3,"documentation:nav":263},{"id":4,"title":5,"body":6,"category":253,"description":254,"extension":255,"meta":256,"navigation":257,"order":241,"path":258,"seo":259,"stem":260,"updated":261,"__hash__":262},"documentation\u002Fdocumentation\u002Faccount\u002Fnotifications.md","Notifications",{"type":7,"value":8,"toc":239},"minimark",[9,18,23,28,31,68,75,78,82,85,110,114,118,132,135,139,142,172,180,184,187],[10,11,12,13,17],"p",{},"Joely notifies through three channels: in-app (real time), Discord DMs, and email. There are ",[14,15,16],"strong",{},"no ticket reply emails",": conversation notifications go through the app and Discord only.",[19,20,22],"h2",{"id":21},"staff-dashboard","Staff dashboard",[24,25,27],"h3",{"id":26},"the-notification-bell","The notification bell",[10,29,30],{},"The dashboard bell aggregates, per project:",[32,33,34,46,52,62],"ul",{},[35,36,37,40,41,45],"li",{},[14,38,39],{},"Unread replies"," on tickets you can access (all tickets with ",[42,43],"permission-label",{"permission":44},"tickets.view_all",", otherwise the tickets assigned to you)",[35,47,48,51],{},[14,49,50],{},"@Mentions"," of you or a group you belong to",[35,53,54,57,58,61],{},[14,55,56],{},"Pending AI drafts"," waiting for review (only with the ",[42,59],{"permission":60},"ai.approve"," permission)",[35,63,64,67],{},[14,65,66],{},"Background job"," outcomes (web imports, knowledge saves, documentation re-syncs)",[10,69,70,71,74],{},"Everything updates in real time. Unread counts clear as you read the thread; mention badges clear when you open the ticket. Closing a background job entry — with its ✕ or with ",[14,72,73],{},"Clear jobs"," — dismisses it for good, for everyone on the project.",[10,76,77],{},"The project switcher in the header shows the same total as the bell next to the active project. Other projects in the list show their own count of tickets needing attention (unread replies, @mentions, and pending AI drafts — background jobs are not included for inactive projects).",[24,79,81],{"id":80},"discord-dms-for-staff","Discord DMs for staff",[10,83,84],{},"Team members can receive a Discord DM when a new message lands on a ticket. Requirements and defaults:",[32,86,87,90,101,104,107],{},[35,88,89],{},"Your Discord account must be linked to your Joely account.",[35,91,92,93,96,97,100],{},"By default you are notified for ",[14,94,95],{},"customer messages"," on ",[14,98,99],{},"tickets assigned to you",". In your notification preferences you can also include staff messages, widen the scope to every ticket you can access, or opt out per project.",[35,102,103],{},"Internal notes also DM the other staff who can access the ticket (on by default, with its own toggle in your preferences); they are never sent to customers. Pending AI drafts and AI auto-replies never trigger staff DMs.",[35,105,106],{},"A DM is skipped when you already have the ticket open, since you receive the message in real time on the page.",[35,108,109],{},"The DM is shown in your account's language (English, French, German, Italian, or Spanish), defaulting to English. The message you wrote keeps its original language.",[19,111,113],{"id":112},"customer-portal","Customer portal",[24,115,117],{"id":116},"notification-bells","Notification bells",[32,119,120,129],{},[35,121,122,123,128],{},"On a project's portal, the bell shows tickets with unread replies, @mentions, and pending ",[124,125,127],"a",{"href":126},"\u002Fdocumentation\u002Fcsat","CSAT surveys",".",[35,130,131],{},"On the portal home (multi-store view), a global bell aggregates the same three things across every project the customer has joined.",[10,133,134],{},"A reply is \"unread\" for a customer when it is a public staff or AI message they have not seen yet; internal notes never count.",[24,136,138],{"id":137},"discord-dms-for-customers","Discord DMs for customers",[10,140,141],{},"Customers who link their Discord account from the portal get a DM for every public reply on tickets they created or participate in:",[32,143,144,147,154,157,160,163,166,169],{},[35,145,146],{},"The DM contains a preview of the message and a link back to the portal. Replies from Discord are not supported: customers reply on the portal.",[35,148,149,150,153],{},"One exception is interactive: when the AI asks \"Are you talking about ",[14,151,152],{},"this script","?\", the DM carries Yes\u002FNo buttons and the customer can answer directly from Discord (the question and buttons are shown in the customer's saved language). Answering \"Yes\" links the script and triggers the AI reply; \"No\" posts the script selector on the portal.",[35,155,156],{},"AI-generated replies include a disclaimer noting the answer comes from an AI.",[35,158,159],{},"Notifications can be turned off per project from the portal, and are never sent for internal notes or to participants who left the ticket.",[35,161,162],{},"No DM is sent while the customer has the ticket open on the portal, since the reply already appears there in real time.",[35,164,165],{},"The DM is shown in the customer's saved language (English, French, German, Italian, or Spanish), defaulting to English; only the notification wording is translated, not the staff member's message.",[35,167,168],{},"If a staff member deletes a message, the corresponding DM is deleted too.",[35,170,171],{},"If a customer's Discord privacy settings block DMs, staff see the delivery failure on the ticket; the customer must allow DMs from server members to fix it.",[10,173,174,175,179],{},"See ",[124,176,178],{"href":177},"\u002Fdocumentation\u002Fintegrations\u002Fdiscord","Discord integration"," for bot setup.",[19,181,183],{"id":182},"emails","Emails",[10,185,186],{},"Joely sends transactional emails only:",[188,189,190,203],"table",{},[191,192,193],"thead",{},[194,195,196,200],"tr",{},[197,198,199],"th",{},"Email",[197,201,202],{},"Trigger",[204,205,206,215,223,231],"tbody",{},[194,207,208,212],{},[209,210,211],"td",{},"Project invitation",[209,213,214],{},"A team invitation sent to your address",[194,216,217,220],{},[209,218,219],{},"Email verification",[209,221,222],{},"An email address change request",[194,224,225,228],{},[209,226,227],{},"Password reset",[209,229,230],{},"A forgot-password request",[194,232,233,236],{},[209,234,235],{},"One-time login code",[209,237,238],{},"2FA email fallback",{"title":240,"searchDepth":241,"depth":241,"links":242},"",2,[243,248,252],{"id":21,"depth":241,"text":22,"children":244},[245,247],{"id":26,"depth":246,"text":27},3,{"id":80,"depth":246,"text":81},{"id":112,"depth":241,"text":113,"children":249},[250,251],{"id":116,"depth":246,"text":117},{"id":137,"depth":246,"text":138},{"id":182,"depth":241,"text":183},"account","What the staff and portal notification bells aggregate, Discord DM notifications for both sides, and which emails Joely sends.","md",{},true,"\u002Fdocumentation\u002Faccount\u002Fnotifications",{"title":5,"description":254},"documentation\u002Faccount\u002Fnotifications","2026-07-22","CPtHfRyrjkgXQ4fA9B5T5A6nEVPkIlpVJn8P0gNUNIA",[264,267,270,274,278,280,284,288,292,296,297,300,301,304,308,311,314,317,320,324,327],{"title":113,"path":265,"category":266,"order":266},"\u002Fdocumentation\u002Fportal\u002Foverview",null,{"title":268,"path":269,"category":266,"order":266},"Ticket lifecycle","\u002Fdocumentation\u002Ftickets\u002Flifecycle",{"title":271,"path":272,"category":253,"order":273},"Account & security","\u002Fdocumentation\u002Faccount\u002Fsecurity",1,{"title":275,"path":276,"category":277,"order":273},"AI assistant","\u002Fdocumentation\u002Fai\u002Fassistant","ai",{"title":127,"path":126,"category":279,"order":273},"csat",{"title":281,"path":282,"category":283,"order":273},"Getting started","\u002Fdocumentation\u002Fgetting-started","getting-started",{"title":285,"path":286,"category":287,"order":273},"Tebex integration","\u002Fdocumentation\u002Fintegrations\u002Ftebex","integrations",{"title":289,"path":290,"category":291,"order":273},"Roles & permissions","\u002Fdocumentation\u002Fteam\u002Froles-permissions","team",{"title":293,"path":294,"category":295,"order":273},"Ticket statuses","\u002Fdocumentation\u002Ftickets\u002Fstatuses","tickets",{"title":5,"path":258,"category":253,"order":241},{"title":298,"path":299,"category":277,"order":241},"AI knowledge base","\u002Fdocumentation\u002Fai\u002Fknowledge",{"title":178,"path":177,"category":287,"order":241},{"title":302,"path":303,"category":283,"order":241},"Plans & limits","\u002Fdocumentation\u002Fplans-limits",{"title":305,"path":306,"category":307,"order":241},"Portal customization","\u002Fdocumentation\u002Fportal\u002Fbranding","portal",{"title":309,"path":310,"category":291,"order":241},"Members & invitations","\u002Fdocumentation\u002Fteam\u002Fmembers-invitations",{"title":312,"path":313,"category":277,"order":246},"Writing AI-ready documentation","\u002Fdocumentation\u002Fai\u002Fwriting-ai-ready-docs",{"title":315,"path":316,"category":287,"order":246},"GitHub integration","\u002Fdocumentation\u002Fintegrations\u002Fgithub",{"title":318,"path":319,"category":295,"order":246},"Messages & conversation","\u002Fdocumentation\u002Ftickets\u002Fmessages",{"title":321,"path":322,"category":287,"order":323},"Tebex keys & security","\u002Fdocumentation\u002Fintegrations\u002Ftebex-keys",4,{"title":325,"path":326,"category":295,"order":323},"Configuring the ticket form","\u002Fdocumentation\u002Ftickets\u002Fconfiguration",{"title":328,"path":329,"category":287,"order":330},"Self-hosted Tebex Bridge","\u002Fdocumentation\u002Fintegrations\u002Ftebex-bridge",5]