DEV Community

Cover image for Build a Multilingual Service Desk with ToolJet MCP and Jev
Athulya R for ToolJet

Posted on Originally published at blog.tooljet.com

Build a Multilingual Service Desk with ToolJet MCP and Jev

Introduction

Hotel shared-services teams need a multilingual service desk that turns voice complaints and requests into readable work for agents in Lisbon. This build shows how you build a multilingual service desk with ToolJet MCP for that job, and an agent generated this as a structured ToolJet application, with data, queries and interface together, that the team keeps running. By the end, you see how transcripts, translations, glossary checks and queue routing sit in one workflow for English and Portuguese agents. You also see how voice signals guide triage and how back-translation keeps replies readable for the sender. That matters when the same request arrives in several languages and still needs one clear queue.

Incoming queue (build a multilingual service desk with ToolJet MCP)

Incoming queue: tickets sorted by urgency with voice signals and translation confidence, and a sectioned preview with Jev triage, the highlighted translation and the original audio.

Ticket workspace (build a multilingual service desk with ToolJet MCP)

Ticket workspace: list on the left, original and English translation side by side with uncertain spans and glossary mangles highlighted, plus the reply, back-translation and Jev check boxes.

Insights & glossary (build a multilingual service desk with ToolJet MCP)

Insights & glossary: donut by language, treemap by property, dot chart by issue type, translations to audit and the editable glossary.

How to Triage Voice Requests

Convert voice complaints and requests into triaged tickets by transcribing the audio, translating it into English, flagging uncertain spans and glossary terms, then routing each item by queue and urgency. A coding agent can build this as a working app by running the prompt through ToolJet MCP.

  1. Capture the voice message and language
  2. Transcribe the audio and translate it
  3. Flag uncertain spans and glossary mismatches
  4. Route the ticket by queue and urgency
  5. Draft the reply and check meaning
  6. Release the response after review

How the Queue and Jev Work

The ticket screen is a queue on the left and a conversation workspace on the right, so you move from triage to reply without leaving the record. Jev, TypeSafe's decision model. It reads the current ticket state through the TypeSafe datasource, weighs measured voice signals as cues rather than emotion labels, and returns queue, urgency, escalate, language, meaning match, glossary kept and tone. Urgency and tone are scored, meaning match is treated as a percentage, and the ticket card separately shows translation confidence. The original audio stays playable, uncertain translation spans are highlighted in amber, and glossary mangles are marked in coral. You also see the English reply, the back-translation and the check section together before Send unlocks, while leads can reassign and reviewers can add audit notes.

  • Voice messages land with transcript, translation and playable audio
  • Uncertain spans and glossary mangles are highlighted in the ticket view
  • Jev returns queue, urgency, escalate, language, meaning match, glossary kept and tone
  • Send stays locked until meaning and glossary checks pass
  • Role-aware views let agents, leads and reviewers share one desk

Set Up ToolJet MCP and the TypeSafe Datasource

ToolJet MCP connects your coding agent to your ToolJet workspace, so the agent can create the tables, queries and components for you. Set it up with the ToolJet MCP overview and the ToolJet MCP repository. Then add the TypeSafe datasource to the workspace and name it typesafe, which is the name the build prompt refers to.

  • At build time: ToolJet MCP lets the agent create the app in your workspace.
  • At run time: the app calls Jev, TypeSafe's decision model, through the typesafe datasource and shows its typed answers next to the record.

Why the Prompt Is Condensed

The build took several passes, and the requirements are now consolidated into one prompt that could have been used from the start. You can reproduce the same app in a single shot from the prompt below, without reconstructing the iterations yourself.

Build a polished internal app called Multilingual Service Desk in ToolJet for a hotel group shared-services team in Lisbon working in English and Portuguese.

Keep it to 3 pages: Incoming Queue, showing open tickets with role, scope, counts of uncertain translations and glossary issues, filters, urgency sorting, preview, audio and triage actions; Ticket, showing the conversation, translation highlights, reply fields, the Jev check section, and Send locked until meaning reaches 70 percent and glossary terms are kept; Insights and Glossary, showing language and property visuals, a translations-to-audit list, and an editable glossary.

Use 4 ToolJet DB tables: msd_tickets, msd_replies, msd_glossary and msd_audits. Seed the voice tickets, and keep transcripts, translations and voice measurements as upstream outputs.

For triage, ask for queue, urgency, escalate and language. For reply checks, ask for meaning match, glossary terms kept and tone, and store score outputs as plus 1.

Create groups for Agents, Team Leads and Quality Reviewers. Agents see assigned tickets, leads and reviewers see every language, and workspace admins count as both.

How MCP Builds the Full App

The ToolJet MCP documentation explains the build pattern, and ToolJet MCP works through the whole application, not just the screen, so the data model, pages, components, queries and wiring land together as one structured ToolJet application rather than a codebase to operate yourself. Enterprise app building does not stop at the interface, because data connectivity, workflows, permissions and ongoing change still sit on the runtime where supported, and the path stays open from AI generation to visual editing to code when a case needs it.

The Pixel Height Issue We Fixed

The first pass made every button and input look collapsed because the layout used grid rows where the design expected pixel heights. Switching those measurements to pixels restored the intended spacing and let the page render normally across the workspace.

What Data Tables Power the Desk

The app ended up with four tables. msd_tickets stores each voice message with its transcript, English translation, uncertainty flags, voice signals, triage fields and status, msd_replies stores sent replies with back-translations and the reply check result, msd_glossary stores protected property terms, and msd_audits stores reviewer verdicts and notes.

Page Components What they cover
Incoming queue 9 Urgency-sorted voice tickets with filters and a preview of triage, translation and audio.
Ticket 18 Read, listen, reply, check the back-translation with Jev, reassign and audit.
Insights & glossary 11 Volumes by language, property and issue type, translations to audit and the glossary.

What the Results Table Shows

The results table captures the page render checks, the Jev triage save, the reply check and send test, and the glossary highlighting verification.

Metric Result
Pages 3
ToolJet DB tables 4
Queries 16
Components 38
Code files to maintain 0
Repair cycles 1

Multilingual Service Desk component tree generated by ToolJet MCP
The components ToolJet MCP created, in the ToolJet inspector

Who Uses the Service Desk

Hotel groups and serviced-apartment operators running a central support desk, and any multi-site business (retail chains, facilities management, airlines' ground operations) where frontline staff report issues by voice in many languages and a central team must triage and answer them reliably.

Who Can Access the Workspace

Three custom groups were created: Service Desk - Agents, Team Leads and Quality Reviewers. Agents see only tickets assigned to them; Team Leads see every language and can reassign tickets and edit the glossary; Quality Reviewers see every ticket and can log audit verdicts against the original. Workspace admins act as both lead and reviewer. These rules are applied in the app's views and controls, not as server-side query permissions, and the groups have no members yet.

Customising ToolJet Apps: Branding, Themes, Modules and Custom Code

A Multilingual Service Desk app should look like your company's own tool and handle logic no standard component covers, and ToolJet supports both: white-label branding and app themes for the look, and modules, custom components and JavaScript or Python code for behaviour.

The terracotta ticket layout and signal chips could become a reusable module for other shared-services teams that want the same branded desk across properties.

The same app window in four steps: a standard ToolJet app, then white-labelled and themed in your colours, then built from reusable modules, then extended with custom React, RunJS and RunPy code

Customising ToolJet Apps: Branding, Themes, Modules and Custom Code

Branding, App Themes and Reusable Modules

  • White labelling: replace the logo, favicon, page title and login page so ToolJet appears as your own product.
  • App themes: define themes once per workspace and apply them across apps; editing a theme updates every app that uses it.
  • Modules: bundle components, queries and logic into reusable blocks with inputs and outputs, and updates reflect in every app that uses the module.

Custom Components, Component Libraries and Code

  • Custom Component: write a React component inside an app, pass it data and let it trigger queries.
  • Custom Component Libraries: developers write React components locally, declare properties, events and actions with @tooljet/custom-component-sdk, and publish with @tooljet/cli using tooljet library init, dev and publish. Each publish is an immutable library version, builders drag components from the Custom tab and pin a version per app, and admins can delete libraries.
  • JavaScript and Python code: run custom logic in RunJS and RunPy queries, adding external JavaScript libraries or Python packages through micropip.

This lets the Multilingual Service Desk app match your brand today and grow with your own components tomorrow. White labelling, app themes and modules are available from the Team plan on the ToolJet pricing page, and Custom Component Libraries are a paid-plan feature.

Enterprise Features for Your Multilingual Service Desk

A multilingual service desk handles voice messages, translations and audit notes from guests and staff. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.

  • SSO and SCIM: sign in with SAML, OIDC or LDAP, and provision users automatically
  • Role-based access control: scope permissions to the app, the data source, and each query
  • Audit logs: track every login, edit, and approval decision for compliance review
  • Air-gapped deployment: self-host on Docker or Kubernetes so your data stays in your network
  • Multiplayer editing: several builders work on the same app, with versioning and Git sync
  • ToolJet AI inside your own deployment: run the AI features in your tenancy rather than a shared service

You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a ticket is escalated, post a Slack message to the lead, send a Gmail message to the support inbox, and write the decision back to msd_audits.

Final Takeaways

This multilingual service desk shows how a hotel support team turns voice complaints and requests into one readable queue, keeps the original audio close, and uses translation flags, glossary checks and reply review to reduce back-and-forth. Jev adds triage and reply checking without pulling the agent away from the ticket, so the workflow stays centered on the conversation. The result is a structured ToolJet application that the team can keep editing as properties, terms and queues change. If you need a multilingual service desk from one prompt and want the result to stay editable, this pattern is worth copying.

Try ToolJet MCP

Build a multilingual service desk with ToolJet MCP, then request a ToolJet demo for your hotel support data.

FAQs

What is ToolJet MCP for a multilingual service desk?

ToolJet MCP turns the prompt into a structured ToolJet application. It gives you a live multilingual service desk, with the data connections, workflows, and access control needed for the build.

Does Jev decide ticket routing by itself?

No. Jev runs through the existing TypeSafe datasource on the current ticket state, and the agent still reviews the queue, urgency, and reply check before Send unlocks.

What does Jev return for each ticket?

Jev returns queue, urgency, escalate, and language for each ticket. It also returns meaning match, glossary kept, and tone for the reply check, with translation confidence and voice cues shown beside those results.

Can I reproduce a multilingual service desk from the prompt?

Yes. Use the prompt as the single build spec, and ToolJet MCP turns it into the queue, ticket, and insights pages in one pass.

Do I need to write code for Multilingual Service Desk?

No. You can build the desk from the generated pages and then adjust the layout, queries, and checks in the editor when the process changes.

Can several people use the same service desk at once?

Yes. Agents, team leads, and quality reviewers work from role-aware views against the same ticket data, so each group sees the tickets and audit trail it needs.

Can I use existing ToolJet DB tables and the TypeSafe datasource?

Yes. The desk reads tickets, replies, glossary entries, and audits from ToolJet DB, and it uses the TypeSafe datasource for triage and reply checks.

Top comments (1)

Collapse
 
aditya__exe profile image
Aditya Joshi •

🔥