Add a "lingo" label to any Jira ticket. An AI agent analyzes the issue, classifies it against ISO 5060, checks your engine config, and suggests specific glossary items, instructions, or brand voice changes. Approve with one click.
Works with Jira Cloud and Jira Service Management.
The Problem#
Product teams with active localization programs receive a constant stream of feedback. Translation bugs, missing locale support, formatting issues, cultural mismatches.
The triage step - deciding what's a real localization issue, what to do about it, and which engine to update - consumes more time than the fix itself.
A team processing 100+ localization-related tickets per week can easily spend 15-20 hours just categorizing and routing them. Most tickets need a glossary entry, an instruction update, or a brand voice adjustment. These take seconds in the dashboard but minutes of human judgment to identify.
How It Works#
Connect your Jira project to your Lingo.dev organization. When someone adds a "lingo" label to any ticket, five things happen automatically:
Webhook triggers
Jira notifies Lingo.dev. A triage job appears in your Jobs dashboard.
AI researches the issue
An agent reads the ticket - summary, description, comments. It loads the ISO 5060 translation quality framework, checks locale-specific norms, and reviews your engine's existing glossary, instructions, and brand voice. It won't suggest items that already exist.
Structured decision
The agent classifies the error (category + severity) and produces atomic suggestions. One glossary item per suggestion. One instruction per suggestion. If the ticket isn't localization-related, it's auto-closed with a Jira comment.
Human review
All suggestions appear simultaneously. Each has a type-specific button - "Add glossary item", "Add instruction", "Create task". Approve or dismiss each independently. All approvals are collected first, then all approved changes execute together.
Automatic execution
Approved suggestions execute immediately. A focused agent resolves the correct engine, validates the operation, and applies the change. Glossary suggestion becomes a real glossary entry. Instruction suggestion becomes a real locale instruction.
Jira comments close the loop#
When triage completes, a comment is posted back to the Jira ticket with the reasoning, a link to the job details, and a "Provided by Lingo.dev Localization Intelligence" signature. The person who added the label sees the result directly in Jira without opening the dashboard.
Comment authorship
Comments are posted as the user who connected the Jira integration (OAuth limitation). If you want comments attributed to a neutral account, connect Jira using a shared service account.
Typical Scenarios#
Missing translations#
Ticket: "Spanish translations missing on checkout page - 'Place Order' button shows English for es-MX users"
Triage result: ISO 5060 accuracy issue, major severity. The agent finds your production engine and suggests:
- Add glossary item: "Place Order" -> "Realizar pedido" (en -> es-MX)
- Add glossary item: "Shipping Address" -> "Direccion de envio" (en -> es-MX)
One click each. Glossary entries created in your engine.
Locale formatting issues#
Ticket: "Korean date format shows MM/DD instead of YYYY.MM.DD in the dashboard"
Triage result: ISO 5060 locale conventions, major severity. Suggests:
- Add instruction for ko-KR: "Display dates in YYYY.MM.DD format, times in 24-hour format"
Non-localization tickets#
Ticket: "API rate limiting returns 429 errors during peak hours"
Triage result: Not localization-related. A comment is posted to the Jira ticket automatically explaining why. No human review needed.
Text expansion / layout issues#
Ticket: "German compound words overflow sidebar navigation buttons"
Triage result: ISO 5060 design and markup. Suggests a Jira task for the CSS fix (code changes are coming in a future version) plus an instruction about character budget awareness for German.
Multi-locale tickets#
Ticket: "Dashboard untranslated for pt-BR, es-MX, and ja-JP users"
Triage result: The agent produces separate glossary items for each locale mentioned. Each is its own suggestion, reviewed independently.
What the AI Can and Can't Do#
| Can do | Can't do (yet) |
|---|---|
| Suggest specific glossary items with translations | Fix code or modify translation files directly |
| Create locale-specific instructions | Create pull requests with code changes |
| Update brand voice entries | Transition Jira issue status |
| Create Jira tasks for developer work | Auto-merge changes without approval |
| Classify issues using ISO 5060 | |
| Read existing engine config to avoid duplicates |
Code-level fixes
For issues that require code changes (RTL CSS, new locale files, encoding), the agent creates a Jira task with a detailed description. Direct code fixes via pull requests are coming in a future version.
Lifecycle Management#
The workflow tracks every state change:
| Event | What happens |
|---|---|
| Label added | Job created, triage runs, suggestions appear |
| Label removed | Active job cancelled, event logged |
| Label re-added | Same job reopened with full history, new triage runs |
| Issue closed | Active job cancelled, event logged |
| Issue deleted | Active job cancelled, event logged |
One job per Jira issue. Full audit trail. If you remove and re-add the label, the same job reopens with all previous events preserved and a fresh triage runs on top.
Suggestion Types#
Each suggestion maps to a single operation:
| Suggestion | What it does | Button |
|---|---|---|
| Add glossary item | Creates a term mapping | "Add glossary item" |
| Update glossary item | Changes an existing translation | "Update glossary item" |
| Delete glossary item | Removes a term mapping | "Delete glossary item" |
| Add instruction | Creates a locale instruction | "Add instruction" |
| Update instruction | Changes an existing instruction | "Update instruction" |
| Add brand voice | Creates brand voice for a locale | "Add brand voice" |
| Update brand voice | Changes existing brand voice | "Update brand voice" |
| Create Jira task | Creates a ticket for developer work | "Create task" |
| Close issue | Posts a comment explaining why | "Close issue" |
Engine changes are preferred
The agent prioritizes engine configuration (glossary, instructions, brand voice) over Jira tasks. Tasks are suggested only for developer code changes - RTL CSS fixes, new locale files, encoding issues.
Best Practices#
Label generously. Add "lingo" to anything that might be localization-related. The AI filters out irrelevant tickets automatically and posts a comment explaining why. False positives cost nothing.
Add context before labeling. The more detail in the ticket description and comments, the better the triage. Mention the affected locale, the expected vs actual text, and where in the UI the issue appears.
Review each suggestion individually. The AI suggests specific translations based on context, but you know your product's terminology best. Approve the ones that are right, dismiss the ones that aren't.
Check your engine config first. The agent reads your existing glossary and instructions before suggesting changes. If your engine already has good coverage for a locale, the suggestions will be more targeted.
Create Jira tasks selectively. When the agent suggests a Jira task, you pick the target project from a dropdown before approving. Choose the project where the relevant team works.
Setup#
Connect Jira
Go to Settings and click Connect under Jira (Atlassian App). Authorize on Atlassian.
Each Jira site can only connect to one Lingo.dev organization. If you see "Jira site already connected", disconnect it from the other org first.
Add the label
Add the label lingo to any ticket. Case-insensitive - "Lingo", "LINGO", and "lingo" all work. Triage starts within seconds.
Review in the dashboard
Open Jobs in your sidebar. Triage jobs show real-time status. Click into a job for the full timeline and suggestions.
Webhook maintenance
Jira webhooks auto-refresh weekly. If webhooks stop firing, reconnect Jira in Settings to re-register them.
ISO 5060 Classification#
Every relevant ticket is classified using ISO 5060:2024:
| Category | Covers |
|---|---|
| Terminology | Inconsistent or incorrect terms |
| Accuracy | Mistranslation, omission, untranslated content |
| Linguistic conventions | Grammar, spelling, punctuation, encoding |
| Style | Register, phrasing, inconsistency |
| Locale conventions | Date, number, currency formatting |
| Audience appropriateness | Cultural references, inclusivity |
| Design and markup | Layout, truncation, text expansion, RTL |
Three severity levels: critical (unusable), major (affects comprehension), minor (cosmetic).
Coming Soon#
We're working on the next version of Jira triage:
- Auto-apply engine changes - configurable per organization. When enabled, glossary items, instructions, and brand voice suggestions execute automatically without waiting for human approval. Review becomes optional, not blocking.
- Pull request creation - for issues that require code changes, the agent will create PRs directly in connected GitHub repositories instead of creating Jira tasks.
- Bulk triage - label multiple tickets at once and review all suggestions in a single batch view.
