Apps et canaux
Créer une app, la décrire, et choisir par où arrivent ses retours.
Où : Apps dans la navigation. La liste montre vos apps, la page détail les configure.
Une app est un produit dont vous recevez des retours. C'est ici que vous décrivez ce qu'il fait, et que vous branchez ses canaux. Pour la vue d'ensemble des niveaux, voir Organisation, apps et canaux.
La liste
Elle affiche le catalogue de vos apps : nom, type (web, mobile, desktop, API ou IoT) et accès (adresse ou lien de store). Elle n'expose pas les chiffres internes.
La page d'une app
Quatre onglets.
| Onglet | Ce qu'on y règle |
|---|---|
| Général | Nom, description, type, adresses autorisées, comptes VIP |
| Fonctionnalités | Carte des fonctionnalités, dépôt GitHub |
| Tracker | Routage des tickets propre à l'app |
| Canaux | Les points d'entrée des retours |
Général
| Réglage | Description |
|---|---|
| Description | Ce que fait l'app. Galet AI s'en sert pour comprendre le contexte |
| URL autorisées | Les adresses d'où le widget et le lien public ont le droit d'envoyer des retours |
| Comptes VIP | Des e-mails ou des domaines à traiter en priorité lors de la qualification |
Dépôt GitHub
Liez un dépôt pour que Galet AI propose une première carte des fonctionnalités à partir du code.
| Réglage | Description |
|---|---|
| Dépôt | Propriétaire et nom du dépôt, à choisir parmi ceux auxquels vous avez accès |
| Analyse | Génère l'arbre initial à partir du code |
Prérequis : l'intégration GitHub est connectée dans Paramètres → Intégrations, et un modèle d'IA est configuré côté serveur.
Les canaux
Un canal est un point d'entrée. Chaque canal appartient à une app : c'est ce qui indique de quel produit parle un message. L'onglet Canaux les liste. Activez celui qui vous intéresse, puis Configurer.
| Canal | Pour | Plan minimum |
|---|---|---|
| Widget | Les retours depuis votre app, avec contexte technique | Gratuit |
| API | Vos propres systèmes | Gratuit |
| Lien public | Un formulaire sans installation | Gratuit |
| Slack | Les retours internes et clients B2B | Équipe |
| Un transfert ou un domaine dédié | Gratuit | |
| Microsoft Teams | Équipes Microsoft | Gratuit |
Slack
| Paramètre | Valeur |
|---|---|
| Écouter les canaux | Actif ou non. Une liste de canaux (#support) ou * pour tous les canaux publics |
| Mentions @bot | Actif ou non. Galet réagit quand on le mentionne, dans tout canal où il est invité |
| Messages directs | Les conversations privées avec Galet sont ingérées comme des conversations |
Tout le comportement de Slack est décrit dans Slack.
API
Pour envoyer des retours depuis vos serveurs, avec POST /v1/reports et la clé du canal API (distincte de celle du widget). Appelez cette route depuis un serveur, jamais depuis un navigateur : quiconque connaît la clé peut envoyer des retours sur ce canal. Les URL autorisées de l'app ne s'appliquent pas à ce canal.
Avec qualify: true, Galet AI pose d'abord les questions qui manquent, comme dans le widget. Vous affichez chaque question à la personne et renvoyez sa réponse avec POST /v1/reports/{id}/answers. Le retour est enregistré quand il est assez précis.
Les champs, la réponse et les codes d'erreur sont dans la référence de l'API, générée depuis le code.
Lien public et iframe
Un formulaire hébergé par Galet sur /f/:publicKey. Aucune installation : partagez le lien, ou intégrez-le dans une iframe. Après l'envoi, Galet AI pose les questions qui manquent ; la personne peut aussi envoyer son retour tel quel.
L'iframe tourne sur le domaine de Galet. Elle ne lit ni la page, ni la console, ni le réseau, ni les cookies de l'app qui l'héberge. Pour capturer ce contexte, utilisez le widget, qui s'exécute dans la page.
| Source | Données reçues |
|---|---|
| Sans script côté page | Navigateur, origine de la page parente, champs du formulaire |
Message galet:context | url, user et metadata, envoyés par la page hôte avec postMessage, de préférence en réponse à galet:ready |
| Après envoi | La page hôte reçoit galet:submitted |
Le formulaire envoie galet:ready à la page hôte dès qu'il écoute. Un galet:context envoyé plus tôt, par exemple sur l'événement load de l'iframe, peut se perdre. Répondez donc à galet:ready :
<iframe id="galet" src="https://app.galet.dev/f/VOTRE_CLE"></iframe>
<script>
const frame = document.getElementById("galet")
window.addEventListener("message", (event) => {
if (event.source !== frame.contentWindow) return
if (event.data?.type === "galet:ready") {
frame.contentWindow.postMessage(
{ type: "galet:context", url: location.href, user: { name: "Léa", email: "lea@acme.com" } },
"*"
)
}
if (event.data?.type === "galet:submitted") console.log(event.data.ticketId)
})
</script>Avec l'e-mail transmis dans user, le formulaire ne le redemande pas après l'envoi.
| Mode | Fonctionnement |
|---|---|
| Transfert | Vous redirigez une boîte existante vers l'adresse d'ingestion de Galet |
| Domaine | Galet reçoit directement le courrier d'un domaine dédié (enregistrements MX et SPF) |
Pour aller plus loin
- Widget : le canal le plus riche.
- Slack : la conversation dans un fil.
- Carte des fonctionnalités : ce que Galet doit savoir de votre app.