Contenu
- Créer des catégories structurées
- Schéma JSON pour les catégories structurées
- Création autonome avec un assistant IA
- Exemples de tickets structurés
Dans le centre de services, vous pouvez créer des catégories structurées afin de demander de manière ciblée les informations les plus importantes lors de la création d'un ticket. Cela accélère le traitement des demandes et garantit une communication efficace avec les résident·e·s.
Créer des catégories structurées
Pour utiliser cette fonctionnalité, vous avez besoin des droits « Paramètres de la plateforme | gérer les paramètres » et « Gestion des demandes | gérer les tickets (membre de l'équipe) ».
-
Accéder aux paramètres des micro-applications :
- Dans Cockpit, accédez aux paramètres de la plateforme puis aux micro-applications.
- Sélectionnez la micro-application « Service Center ».
-
Ajouter une nouvelle catégorie :
- Cliquez sur « Ajouter une catégorie ».
- Saisissez un nom unique pour la nouvelle catégorie.
-
Définir la catégorie comme structurée :
- Activez l'option « Ceci est une catégorie structurée ».
Schéma JSON pour les catégories structurées
Pour définir la catégorie structurée, utilisez un schéma JSON. Ce schéma détermine les champs et informations demandés lors de la création d'un ticket.
Étapes pour mettre en œuvre le schéma JSON :
Adapter le schéma : dans la catégorie nouvellement créée, cliquez sur l'onglet « Schéma JSON » et adaptez le schéma JSON à vos besoins, ou collez l'un des exemples ci-dessous.
Afficher l'aperçu : à droite, vous voyez un aperçu de la catégorie structurée basé sur le schéma JSON.
Ajouter des traductions : cliquez sur l'onglet « Traductions » et complétez les traductions correspondantes pour toutes les langues.
Enregistrer et activer la catégorie : cliquez sur « Enregistrer ». Activez ensuite la catégorie en cliquant sur l'icône œil barrée.
Une fois la catégorie de ticket structurée, tou·te·s les résident·e·s et membres de l'équipe sont invité·e·s à fournir des informations supplémentaires lors de la création d'un ticket de cette catégorie.
Les tickets structurés peuvent être créés aussi bien via l'application que directement dans le centre de services de Cockpit : dès qu'une catégorie structurée est sélectionnée dans le formulaire de création, celui-ci affiche automatiquement les champs supplémentaires correspondants.
Cette fonctionnalité n'est actuellement disponible qu'en combinaison avec JSON, ce qui suppose des connaissances de base en la matière.
Création autonome avec un assistant IA
Vous pouvez également faire générer le schéma JSON correspondant par un assistant IA (par ex. ChatGPT ou Claude). Copiez le prompt suivant et collez-le dans une conversation avec votre assistant IA. L'assistant vous posera ensuite les questions essentielles et vous fournira, à la fin, le schéma JSON ainsi que les traductions correspondantes, prêts à être collés directement dans les onglets « Schéma JSON » et « Traductions » — y compris les champs enchaînés si vous souhaitez créer un « ticket intelligent ».
Tu es un assistant qui aide un·e client·e Allthings à créer un schéma JSON pour un "ticket structuré" (éventuellement un "ticket intelligent" avec des champs déroulants enchaînés/conditionnels) dans Allthings Cockpit.
Objectif : à la fin, fournis-moi deux objets JSON prêts à coller :
1. Le "schéma JSON" (onglet "Schéma JSON" dans Cockpit) – un schéma JSON standard avec "type": "object", "title", "description", "properties" (chaque champ avec une clé courte et unique en camelCase, par ex. fieldOne, roomType, damageDescription, un "type", et éventuellement "enum" pour les champs à choix) et "required" (liste des clés des champs obligatoires).
2. L'objet "Traductions" (onglet "Traductions" dans Cockpit) – un objet plat avec une entrée par langue requise et par champ, exactement dans ce format :
- "<locale>": "<titre du ticket dans cette langue>"
- "<locale>.description": "<description dans cette langue>"
- "<locale>.fields.<cléDuChamp>": "<question/libellé de ce champ dans cette langue>"
Utilise de_DE, en_US, fr_FR, it_IT comme valeurs de <locale> (n'ajoute nl_NL, pt_PT que si explicitement demandé).
Si des champs enchaînés/conditionnels sont souhaités ("ticket intelligent", c.-à-d. qu'un champ ne doit apparaître que si une option précise a été choisie dans un champ de sélection précédent), exprime cela exclusivement via les constructions JSON Schema standard "dependencies" et "oneOf" (il n'existe pas de syntaxe spécifique à Allthings pour cela). Suis ce modèle :
{
"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": "..." } } }
]
}
}
}
En cas d'enchaînement à plusieurs niveaux (un champ conditionnel déclenche lui-même une nouvelle ramification), imbrique le modèle en conséquence en plaçant un autre objet "dependencies" à l'intérieur de la branche "oneOf" concernée.
Avant de générer le JSON, pose-moi les questions suivantes une par une (pas toutes en même temps) et attends ma réponse à chaque fois :
1. Pour quelle catégorie/quel type de demande ce ticket est-il destiné (par ex. "Signaler un dommage", "Commander une clé") ? Quel doit être le titre ?
2. Quelles informations souhaites-tu recueillir auprès du·de la demandeur·euse ? Liste-moi chaque question/champ individuellement.
3. Lesquels de ces champs sont obligatoires, lesquels sont facultatifs ?
4. Certains champs doivent-ils être une liste déroulante/un choix (options fixes) plutôt qu'un texte libre ? Si oui, quelles options exactement, pour chaque champ ?
5. L'affichage d'un champ doit-il dépendre de la valeur choisie dans un autre champ (champ enchaîné/conditionnel, "ticket intelligent") ? Si oui, quel champ dépend de quel choix dans quel autre champ, et y a-t-il plusieurs niveaux d'enchaînement ?
6. Dans quelles langues ce ticket est-il nécessaire (par défaut : allemand, anglais, français, italien) ?
Ne génère le JSON qu'une fois que tu as toutes les réponses. Fournis les deux objets JSON chacun dans son propre bloc de code entièrement valide (pas de markdown en dehors de la structure JSON pure, pas de commentaires dans le JSON, pas de virgule finale). Veille à ce que chaque clé de champ dans le schéma JSON corresponde exactement à la clé dans l'objet de traduction (par ex. "fields.fieldOne" ⟷ "properties.fieldOne", y compris dans les branches "dependencies"/"oneOf").
Vous pouvez ensuite copier directement le JSON fourni par l'assistant : le premier bloc dans l'onglet « Schéma JSON », le second dans l'onglet « Traductions » (voir ci-dessus).
Si votre demande est plus complexe ou que l'assistant IA ne peut pas vous aider, n'hésitez pas à contacter notre équipe Service Delivery afin que nous puissions réaliser une première estimation de la charge de travail et vous aider le plus rapidement possible.
Exemples de tickets structurés
Vous trouverez ci-dessous des exemples de tickets structurés. Vous pouvez copier ces schémas JSON dans vos catégories ou les adapter individuellement.
Dommage dans le logement
Aperçu du ticket structuré :
Schéma JSON :
{
"type": "object",
"title": "Dommage dans le logement",
"properties": {
"fieldOne": {
"type": "string",
"title": "Où se trouvent les dégâts ?"
},
"fieldTwo": {
"type": "string",
"title": "Qu'est-ce qui est défectueux/endommagé ?"
}
},
"required": [
"fieldOne",
"fieldTwo"
]
}
Traductions :
{
"en_US": "Damage in the apartment",
"en_US.fields.fieldOne": "Where is the damage located?",
"en_US.fields.fieldTwo": "What is defective/damaged?",
"de_DE": "Schaden in der Wohnung",
"de_DE.fields.fieldOne": "Wo befindet sich der Schaden?",
"de_DE.fields.fieldTwo": "Was ist defekt/beschädigt?",
"fr_FR": "Dommage appartement",
"fr_FR.fields.fieldOne": "Où sont les dégâts?",
"fr_FR.fields.fieldTwo": "Qu'est-ce qui est défectueux/endommagé?",
"it_IT": "Danno appartamento",
"it_IT.fields.fieldOne": "Dov'è il danno?",
"it_IT.fields.fieldTwo": "Cosa è difettoso/danneggiato?"
}
Défaut d'appareil
Aperçu du ticket structuré :
Schéma JSON :
{
"type": "object",
"title": "Défaut d'appareil",
"properties": {
"fieldOne": {
"type": "string",
"title": "Quel appareil est défectueux ?"
},
"fieldTwo": {
"type": "string",
"title": "Où se trouve l'appareil ?"
}
},
"required": [
"fieldOne",
"fieldTwo"
]
}
Traductions :
{
"en_US": "Appliance defect",
"en_US.fields.fieldOne": "Which appliance is defective?",
"en_US.fields.fieldTwo": "Where is the appliance located?",
"de_DE": "Gerätedefekt",
"de_DE.fields.fieldOne": "Welches Gerät ist defekt?",
"de_DE.fields.fieldTwo": "Wo befindet sich das Gerät?",
"fr_FR": "Appareil défectueux",
"fr_FR.fields.fieldOne": "Quel appareil est défectueux ?",
"fr_FR.fields.fieldTwo": "Où se trouve l'appareil ?",
"it_IT": "Dispositivo difettoso",
"it_IT.fields.fieldOne": "Quale dispositivo è difettoso ?",
"it_IT.fields.fieldTwo": "Dov'è il dispositivo ?"
}
Dommage général
Aperçu du ticket structuré :
Schéma JSON :
{
"type": "object",
"title": "Dommage général",
"properties": {
"fieldOne": {
"type": "string",
"title": "Où se trouvent les dégâts ?"
},
"fieldTwo": {
"type": "string",
"title": "Qu'est-ce qui est défectueux/endommagé ?"
}
},
"required": [
"fieldOne",
"fieldTwo"
]
}
Traductions :
{
"en_US": "General damage",
"en_US.fields.fieldOne": "Where is the damage located?",
"en_US.fields.fieldTwo": "What is defective/damaged?",
"de_DE": "Schaden Allgemein",
"de_DE.fields.fieldOne": "Wo befindet sich der Schaden?",
"de_DE.fields.fieldTwo": "Was ist defekt/beschädigt?",
"fr_FR": "Dommages généraux",
"fr_FR.fields.fieldOne": "Où sont les dégâts?",
"fr_FR.fields.fieldTwo": "Qu'est-ce qui est défectueux/endommagé?",
"it_IT": "Danno generale",
"it_IT.fields.fieldOne": "Dov'è il danno?",
"it_IT.fields.fieldTwo": "Cosa è difettoso/danneggiato?"
}
Commander une clé
Aperçu du ticket structuré :
Schéma JSON :
{
"type": "object",
"title": "Commander une clé",
"description": "(En cas de perte des clés, les serrures correspondantes seront remplacées lors de votre déménagement. Les coûts vous seront facturés)",
"properties": {
"fieldOne": {
"type": "string",
"title": "Quelle clé souhaitez-vous commander ?",
"enum": [
"Appartement",
"Boîte aux lettres",
"Cave",
"Autre"
]
},
"fieldTwo": {
"type": "string",
"title": "Je paierai les frais.",
"enum": [
"Oui",
"Non"
]
},
"fieldThree": {
"type": "string",
"title": "Nom du fabricant et informations complémentaires"
}
},
"required": [
"fieldOne",
"fieldTwo"
]
}
Traductions :
{
"en_US": "Order a key",
"en_US.description": "(If keys are lost, the corresponding locks will be replaced when you move out. The costs will be charged to you)",
"en_US.fields.fieldOne": "Which key would you like to order? (e.g. flat, letterbox, ...)",
"en_US.fields.fieldTwo": "I will pay the costs. (Yes / No)",
"en_US.fields.fieldThree": "Please insert manufacturer name and all information about the existing key here.",
"de_DE": "Schlüssel bestellen",
"de_DE.description": "(Bei Schlüsselverlust werden die entsprechenden Schlösser beim Auszug ausgetauscht. Die Kosten werden Ihnen belastet)",
"de_DE.fields.fieldOne": "Welchen Schlüssel möchten Sie bestellen? (z. B. Wohnung, Briefkasten, ...)",
"de_DE.fields.fieldTwo": "Ich werde die Kosten übernehmen. (Ja / Nein)",
"de_DE.fields.fieldThree": "Bitte fügen Sie hier Herstellername und alle Informationen des bestehenden Schlüssels ein.",
"fr_FR": "Clé de commande",
"fr_FR.description": "(En cas de perte des clés, les serrures correspondantes seront remplacées lors de votre déménagement. Les coûts vous seront facturés)",
"fr_FR.fields.fieldOne": "Quelle clé souhaitez-vous commander ? ( ex. appartement, boîte aux lettres, ...)",
"fr_FR.fields.fieldTwo": "Je paierai les frais. (Oui / Non)",
"fr_FR.fields.fieldThree": "Veuillez insérer ici le nom du fabricant et toutes les informations relatives à la clé existante."
}