Content
- Introduction
- Creating smart ticket categories
- Viewing smart ticket categories in the app
- Designing smart tickets
- Creating it yourself with an AI assistant
- Important notes
Introduction
The smart ticket extends the features of the "structured ticket" in issue management to further optimize the workflow. It enables:
- Highlighted display of categories
- Creation of complex JSON schemas with chained answers
→ Makes it easier to capture detailed information and reduces follow-up questions to residents.
Creating smart ticket categories
To use this feature, you need the permissions "Platform settings | Manage settings" and "Issue management | Manage tickets (Team member)".
-
Open the micro-app settings:
- In platform settings, navigate to Micro-apps.
- Select the "Service Center" micro-app.
-
Add a new category:
- Click "Add category".
- Enter a unique name for the new category.
-
Define the category as structured and as a smart ticket:
- Check "This is a structured category".
- To turn the "structured ticket" into a "smart ticket", enable the "Smart ticket" field on the newly created category.
Viewing smart ticket categories in the app
After clicking "New request" in the app, the smart ticket categories you created are highlighted at the top and can be selected directly. Under "More categories", the remaining categories are available in a dropdown list.
Designing smart tickets
In addition to standard text fields, "smart tickets" can also include dropdown lists. These can be chained and combined with text fields, letting residents provide specific information.
Creating it yourself with an AI assistant
You can also have an AI assistant (e.g. ChatGPT or Claude) generate the field chaining as a JSON schema for you. Copy the following prompt and paste it into a conversation with your AI assistant. The assistant will then ask you the key questions — including about the chaining you want — and, at the end, give you both the JSON schema and the matching translations, ready to paste directly into the "JSON schema" and "Translations" tabs.
You are an assistant helping an Allthings customer create a JSON schema for a "structured ticket" (optionally a "smart ticket" with chained/conditional dropdown fields) in the Allthings Cockpit.
Goal: at the end, provide me with two ready-to-paste JSON objects:
1. The "JSON schema" (the "JSON schema" tab in Cockpit) – a standard JSON Schema with "type": "object", "title", "description", "properties" (each field with a unique, short camelCase key such as fieldOne, roomType, damageDescription, a "type", and optionally "enum" for selection fields) and "required" (list of required field keys).
2. The "Translations" object (the "Translations" tab in Cockpit) – a flat object with one entry per required language and field, in this exact format:
- "<locale>": "<ticket title in that language>"
- "<locale>.description": "<description in that language>"
- "<locale>.fields.<fieldKey>": "<question/label for that field in that language>"
Use de_DE, en_US, fr_FR, it_IT as <locale> values (add nl_NL, pt_PT only if explicitly requested).
If chained/conditional fields are needed ("smart ticket", i.e. a field should only appear when a specific option was chosen in an earlier selection field), express this exclusively via the standard JSON Schema constructs "dependencies" and "oneOf" (there is no Allthings-specific syntax for this). Follow this pattern:
{
"type": "object",
"properties": {
"category": { "type": "string", "title": "...", "enum": ["Option A", "Option B"] }
},
"required": ["category"],
"dependencies": {
"category": {
"oneOf": [
{ "properties": { "category": { "enum": ["Option A"] }, "fieldA1": { "type": "string", "title": "..." } } },
{ "properties": { "category": { "enum": ["Option B"] }, "fieldB1": { "type": "string", "title": "..." } } }
]
}
}
}
For multi-level chaining (a conditional field itself triggers a further branch), nest the pattern accordingly by placing another "dependencies" object inside the relevant "oneOf" branch.
Before generating the JSON, ask me the following questions one at a time (not all at once) and wait for my answer each time:
1. What category/issue is this ticket for (e.g. "Report damage", "Order a key")? What should the title be?
2. What information do you want to collect from the requester? List every individual question/field.
3. Which of these fields are required, which are optional?
4. Are any fields meant to be a dropdown/selection (fixed options) instead of free text? If so, which exact options, per field?
5. Should any field's visibility depend on the value chosen in another field (chained/conditional field, "smart ticket")? If so, which field depends on which selection in which other field, and are there multiple levels of chaining?
6. Which languages does this ticket need (default: German, English, French, Italian)?
Only generate the JSON once you have all the answers. Provide both JSON objects each in its own, fully valid code block (no markdown outside the pure JSON structure, no comments inside the JSON, no trailing commas). Make sure every field key in the JSON schema exactly matches the key in the translation object (e.g. "fields.fieldOne" ⟷ "properties.fieldOne", including inside "dependencies"/"oneOf" branches).
You can then copy the JSON the assistant provides directly: the first block into the "JSON schema" tab, the second block into the "Translations" tab. You can find further examples of structured categories in the "Structured ticket" article.
If you still need support or your request is more complex, feel free to contact our Service Delivery team so we can carry out an initial effort estimate and help you as quickly as possible.
Important notes
- Availability: Smart tickets can be created both via the app and directly in issue management in Cockpit.
- Permissions: To use this feature, you need the permissions "Platform settings | Manage settings" and "Issue management | Manage tickets (Team member)".
Using smart tickets lets you optimize the flow of information and increase efficiency in issue management.