Skip to Content
SDK Feedback

SDK Feedback

Le SDK Checkflow (@checkflow/sdk) est un outil léger à intégrer dans votre application pour collecter les retours utilisateurs : bug reports, suggestions, captures d’écran et annotations visuelles.


Fonctionnalités

FonctionnalitéDescription
Widget flottantBouton de feedback personnalisable avec formulaire intégré
Capture d’écranScreenshot automatique de la page via html2canvas
Annotations visuellesCliquez pour surligner des éléments de la page
Contexte automatiqueURL, viewport, navigateur, OS, locale, timezone
Console & erreursIntercepte console.log/warn/error + erreurs JS
Métriques de performanceFCP, DOM load, page load times
Interception réseauCapture les requêtes HTTP échouées
Multi-frameworkReact/Next.js, Vue/Nuxt, Vanilla JS

Installation

npm install @checkflow/sdk

Intégration Vanilla JS

import { init } from '@checkflow/sdk'; init({ apiKey: 'ck_live_...', widget: { position: 'bottom-right', color: '#6366f1', text: 'Report Bug', showOnInit: true, }, });

🎬 Vidéo / GIF — Widget de feedback en action dans une app


Intégration React / Next.js

Initialisation (layout ou _app)

import { useCheckflowInit } from '@checkflow/sdk/react'; export default function Layout({ children }) { useCheckflowInit({ apiKey: 'ck_live_...' }); return <>{children}</>; }

Utilisation dans un composant

import { useCheckflowFeedback } from '@checkflow/sdk/react'; function MyComponent() { const { send, screenshot, highlight } = useCheckflowFeedback(); const reportBug = async () => { const img = await screenshot(); const annotations = await highlight(); await send({ title: 'Bug report', type: 'BUG' }); }; return <button onClick={reportBug}>Signaler un bug</button>; }

📸 Capture d’écran — Intégration React avec le hook useCheckflowFeedback


Intégration Vue / Nuxt

Plugin (main.ts)

import { createCheckflowPlugin } from '@checkflow/sdk/vue'; app.use(createCheckflowPlugin({ apiKey: 'ck_live_...' }));

Composable

<script setup> import { useCheckflow } from '@checkflow/sdk/vue'; const { send, screenshot, highlight } = useCheckflow(); </script>

API Programmatique

Pour un contrôle total, utilisez l’API directement :

import { sendFeedback, captureScreenshot, startHighlighting, showWidget, hideWidget, destroy, } from '@checkflow/sdk'; // Envoyer un feedback await sendFeedback({ title: 'Bug', type: 'BUG', priority: 'HIGH' }); // Capturer un screenshot const dataUrl = await captureScreenshot(); // Démarrer le mode annotation const annotations = await startHighlighting(); // Contrôle du widget showWidget(); hideWidget(); destroy();

Configuration Complète

OptionTypeDéfautDescription
apiKeystringrequisClé API du projet (format ck_live_...)
endpointstringhttps://api.checkflow.space/api/v1URL de l’API backend
environmentstringproductionNom de l’environnement
enabledbooleantrueActiver/désactiver le SDK
widget.positionstringbottom-rightPosition du widget (bottom-right, bottom-left, top-right, top-left)
widget.colorstring#1e3a5fCouleur d’accent du widget
widget.textstringReport BugTexte du bouton
widget.showOnInitbooleantrueAfficher le widget au chargement

Obtenir une Clé API

  1. Allez dans votre projet Checkflow
  2. Page Feedback > Section Clés API
  3. Cliquez sur “Créer une clé”
  4. Copiez la clé ck_live_...

📸 Capture d’écran — Création d’une clé API dans le dashboard


Données Collectées Automatiquement

Quand un feedback est envoyé via le SDK, les données suivantes sont collectées automatiquement :

DonnéeExemple
URL de la pagehttps://monapp.com/dashboard
Viewport1920x1080
NavigateurChrome 120
OSmacOS 14.2
Localefr-FR
TimezoneEurope/Paris
Console logsDerniers logs/warnings/errors
Erreurs JSStack traces des erreurs
PerformanceFCP: 1.2s, DOM Load: 0.8s
ScreenshotImage base64 de la page
AnnotationsÉléments surlignés par l’utilisateur

📸 Capture d’écran — Détail d’un feedback reçu via SDK avec toutes les métadonnées


Architecture du SDK

Le SDK est composé de plusieurs modules internes :

ModuleRôle
collector.tsCollecte le contexte navigateur (URL, viewport, OS…)
screenshot.tsCapture d’écran via html2canvas
highlighter.tsMode clic-pour-surligner des éléments
annotation/Éditeur d’annotations visuelles avec toolbar
console-interceptor.tsIntercepte les logs console
network-interceptor.tsIntercepte les requêtes réseau échouées
widget.tsWidget flottant avec formulaire
react.tsHooks React (useCheckflowInit, useCheckflowFeedback)
vue.tsPlugin et composable Vue (createCheckflowPlugin, useCheckflow)
Last updated on