Aller au contenu

Documentation technique

Comment fonctionne Threada, ce qu’il requiert et comment l’intégrer.

Aperçu de l’architecture

  • Crawl — Récupère les pages de votre domaine via sitemap et liens internes
  • Render — Rend les pages JavaScript avant extraction
  • Extract — Extrait le contenu y compris les données structurées
  • Chunk — Découpe le contenu en segments sémantiques
  • Embed — Convertit les segments en embeddings vectoriels
  • Index — Stocke les embeddings pour la recherche
  • Retrieve — Récupère les segments pertinents par similarité sémantique
  • Generate — Synthétise une réponse à partir du contenu récupéré
  • Cite — Lien vers la page source quand le contenu est pertinent

Crawling

Ce que nous crawlons

  • Pages HTML depuis sitemap ou liens internes
  • Données structurées (JSON-LD, schema.org)
  • Documents téléversés manuellement (PDF, HTML, DOCX)

Comportement de crawl

  • Respecte robots.txt
  • User-Agent identifié
  • Rate-limited pour éviter la charge serveur
  • Ralentit sur 429 ou 5xx

Rendu JavaScript — Les pages sont rendues via un navigateur headless avant extraction pour les SPAs et le contenu dynamique.

Réindexation

  • Surveillance du sitemap déclenche la réindexation automatique
  • Réindexation manuelle à tout moment
  • Réindexation planifiée selon le plan

Récupération

Recherche sémantique Les requêtes sont converties en embeddings et comparées par similarité sémantique, pas par mots-clés.

Seuils de pertinence Configurables. Seuils élevés = moins de réponses mais plus sûres. Seuils bas = couverture plus large avec plus de clarifications.

Génération de réponses

Le contenu récupéré est passé en contexte. Les réponses sont synthétisées uniquement à partir de ce contexte.

Citations — Quand le contenu est pertinent, les réponses incluent un lien vers la page source. En cas d’incertitude, il peut ne pas y avoir de citation.

Comportement de limite

  • Reconnaît ce qu’il ne sait pas
  • Pose des questions de clarification
  • Suggère des sujets connexes

Intégration de l’embed

Installation Un seul snippet. Chargement asynchrone.

Compatibilité

  • WordPress
  • Webflow
  • Shopify
  • Squarespace
  • Sites sur mesure
  • SPAs (React, Vue, Angular)

Configuration via le tableau de bord

  • Couleurs, logo, emplacement
  • Message d’accueil, ton
  • Paramètres de langue
  • Seuils de pertinence

API publique

Accès à l’API sécurisé et par tenant pour les tickets et actions sur tous les canaux.

Authentification et accès

  • Envoyez la clé API dans l’en-tête `X-Api-Key`.
  • Créez et révoquez les clés dans Admin → API keys ; une clé par intégration.
  • Les clés sont limitées au tenant et appliquent le moindre privilège via les scopes.

Scopes

  • `support.read` — lister et récupérer tickets, messages et actions.
  • `support.write` — créer/mettre à jour les tickets et ajouter des messages.
  • `support.actions` — exécuter des actions et consulter leur statut.

Endpoints principaux

  • `/api/v1/public/tickets` — lister ou créer des tickets.
  • `/api/v1/public/tickets/{ticket_id}` — obtenir ou mettre à jour le ticket.
  • `/api/v1/public/tickets/{ticket_id}/messages` — lister ou ajouter des messages.
  • `/api/v1/public/tickets/{ticket_id}/actions` — exécuter une action pour un ticket.
  • `/api/v1/public/actions` — lister ou consulter le statut des actions.

Format de réponse

  • Réponses JSON ; horodatages en RFC 3339.
  • Les erreurs renvoient `{ error: { type, message, code } }`.
  • Les endpoints de liste acceptent `limit` et `page_token`.

Valeurs de canal

  • `web`, `email`, `sms`, `whatsapp`, `social`, `voice`, `custom`.
  • Utilisez `channel_id` et `channel_thread_id` pour mapper les conversations externes.
  • Utilisez `external_message_id` pour dédupliquer les messages.

Configuration Zapier

Connectez Threada à Zapier pour une automatisation no-code avec une surface contrôlée.

Automatisation sortante (Threada → Zapier)

  • Créez un Zap avec le déclencheur “Catch Hook” de Webhooks by Zapier et copiez l’URL du hook.
  • Dans Admin → Support → Integrations, ajoutez une intégration Zapier avec l’URL du webhook et un en-tête secret optionnel.
  • Utilisez une action HTTP personnalisée pour envoyer les charges utiles ; si aucune intégration HTTP personnalisée n’est sélectionnée, Zapier est utilisé par défaut.

Automatisation entrante (Zapier → Threada)

  • Créez une clé API avec scopes pour Zapier (moindre privilège).
  • Utilisez Webhooks by Zapier pour appeler les endpoints publics des tickets et actions.
  • Stockez la clé de manière sécurisée dans Zapier et effectuez une rotation régulière.

Hygiène entreprise

  • Séparez les clés par environnement (production vs. sandbox).
  • Révoquez les clés lorsqu’un Zap est désactivé ou change de propriétaire.
  • Préférez des scopes en lecture seule sauf si une automatisation doit écrire.

Sécurité

Hébergement : GCP, US-Central1 par défaut. Chiffrement : TLS 1.2+ en transit, AES-256 au repos. Authentification : SSO via OIDC/SAML (Enterprise). Conformité : GDPR, rétention configurable, audit. Modèle de menace documenté couvrant prompt injection, XSS, SSRF, exfiltration.

Traitement des données

Stocké

  • Contenu indexé
  • Embeddings
  • Logs de chat
  • Analytics
  • Configuration

Non stocké

  • Informations de paiement (gérées par le processeur)
  • Identifiants en clair

Rétention Configurable par tenant. Suppression sur demande.

Entraînement Votre contenu n’est pas utilisé pour entraîner les modèles IA.

FAQ

Pages protégées par mot de passe ?
Pas pour le moment. Téléversez des documents pour le contenu privé.
Exclure des pages ?
Oui. Via robots.txt ou configuration du tableau de bord.
À quelle vitesse les mises à jour ?
La réindexation automatique se fait généralement sous 24 h. La réindexation manuelle est immédiate.
Site indisponible pendant le crawl ?
Le crawler ralentit et réessaie. Le contenu précédent reste disponible.
Voir le contenu indexé ?
Oui. Le tableau de bord montre les pages indexées et leur statut.
Plusieurs langues ?
Oui. Détection automatique ou langue par défaut par embed.
Pourquoi pas de citation parfois ?
Les citations lient des sources. En cas d’incertitude, il n’y a pas de source à citer.