Avis Trustpilot vers BigQuery
Chaque avis Trustpilot comme une ligne dans votre propre projet, à côté des commandes qui l'ont produit. Un nombre d'avis est une anecdote. Les avis pour mille commandes sont un indicateur opérationnel, et ça tient en une jointure.
Configuration en moins de cinq minutes • Sans démo
Destination table
northwind-analytics.reviews.trustpilot_reviews
Un nombre est une anecdote. Un taux est un instrument.
Trustpilot invite vos clients après leur achat. C'est ce qu'est son Automatic Feedback Service, un email quelques jours après chaque commande, donc votre volume d'avis suit votre volume de commandes de bien plus près qu'il ne suit quoi que ce soit que fait le marketing. Un mois avec plus d'avis est généralement juste un mois avec plus de commandes.
Votre table de commandes vit déjà dans BigQuery. Mettez les avis Trustpilot à côté, et les avis pour mille commandes, ainsi que la part de ceux à une étoile, deviennent un GROUP BY sur la semaine d'expédition de chaque commande. Cinq lignes de SQL, et aucune feuille de calcul que quelqu'un doit maintenir.
Un taux reste stable tant que l'activité tourne normalement, et c'est ce qui le rend lisible. Quatre pour cent d'avis une étoile chaque semaine pendant un trimestre, puis dix-sept dans la semaine du 17 août face à un volume de commandes plat, ce n'est pas le sentiment qui dérive. C'est quelque chose d'opérationnel qui s'est cassé à une date précise.
La suite est une clause WHERE, parce que le texte complet de l'avis est une colonne ordinaire. Comptez les avis de cette semaine-là qui mentionnent le dépôt ou le transporteur, lisez-en six, et la cause se nomme elle-même avant que quiconque ne dépose un ticket.
-- one-star share by the week the order shipped
SELECT
o.ship_week,
o.orders,
COUNT(r.review_id) AS reviews,
ROUND(100 * COUNTIF(r.score = 1)
/ COUNT(r.review_id), 1) AS pct_one_star
FROM `northwind-analytics.core.weekly_orders` o
LEFT JOIN `northwind-analytics.reviews.trustpilot_reviews` r
ON DATE_TRUNC(r.review_date, WEEK) = o.ship_week
GROUP BY o.ship_week, o.orders
ORDER BY o.ship_week Quelque chose qui vous prévient, plutôt que quelque chose que vous pensez à ouvrir
Un tableau de bord est une chose que les gens regardent une fois qu'ils soupçonnent déjà quelque chose. Une requête planifiée est une chose qui surveille pour vous. BigQuery en exécute une selon le calendrier que vous réglez, écrit son résultat dans une table, et vous pointez votre système d'astreinte habituel vers cette table.
La condition, c'est le taux, pas le nombre. Une part d'avis une étoile supérieure à huit pour cent sur les sept derniers jours glissants, sur une base d'au moins deux cents avis pour qu'une semaine calme ne déclenche pas l'alerte à tort. Le seuil sort de votre propre historique, que vous avez dès le premier jour.
Ce que ça vous achète, c'est une semaine d'avertissement au lieu d'un mois de post-mortem. Votre TrustScore pèse plus fortement les avis récents que les anciens, donc quinze jours difficiles font bouger le chiffre public d'une façon qu'une mauvaise année vieille de trois ans ne peut plus.
Rien de cette mécanique ne nous appartient. La requête planifiée est celle de BigQuery, l'alerte est celle que votre équipe utilise déjà, et la seule partie que Reviewflowz possède, c'est que les lignes sont là et à jour. C'est la bonne répartition, et c'est pourquoi ça fonctionne sur une stack que vous avez déjà choisie.
Scheduled query
trustpilot_one_star_watch
-- writes a row only when the trailing week breaks it
SELECT CURRENT_DATE() AS checked_on,
ROUND(100 * COUNTIF(score = 1)
/ COUNT(*), 1) AS pct_one_star
FROM `northwind-analytics.reviews.trustpilot_reviews`
WHERE review_date >= CURRENT_DATE() - 7
HAVING COUNT(*) >= 200 AND pct_one_star > 8.0 checked_on 2026-08-24
Threshold 8.0, base 233 reviews
Nothing fires on a quiet week. The two hundred review floor is what stops a slow Tuesday from reading as a crisis.
Une table, pas un rapport
Ce qui arrive est une table, pas un tableau de bord conçu par quelqu'un d'autre. Une ligne par avis Trustpilot, sous un en-tête fixe de 28 colonnes : l'ID de l'avis, le profil, la date, la note, le titre, le texte complet, la langue, les tags et un lien de retour vers l'avis. Des colonnes ordinaires, rien à rétro-ingénierer.
Le texte de l'avis est une colonne STRING comme une autre, donc la plainte qui revient sans cesse est une clause WHERE plutôt qu'un souvenir. Tout le monde sait que le transporteur pose problème parce que quelqu'un se souvient d'un avis qui le disait. La mémoire garde l'avis marquant et perd le compte. Une table garde le compte.
Les tags arrivent remplis. Reviewflowz lit chaque avis dans la langue où il a été écrit et le classe sous le thème dont il parle réellement, donc un avis en français sur une livraison et un avis en anglais sur delivery s'additionnent en un seul chiffre plutôt que deux.
Une chose que vous ne trouverez pas, dite clairement plutôt que laissée à découvrir : vos réponses. Le schéma synchronisé porte l'avis, pas la réponse en dessous, et il n'y a pas d'onglets par plateforme. La couverture des réponses relève de l'API Review, pas de cette table.
The header is fixed at 28 columns, with no per-platform tabs. There is no reply column either, so your replies are not in this table.
Comment les lignes arrivent concrètement dans BigQuery
Il n'y a pas de destination BigQuery à choisir, et cette page ne prétendra pas le contraire. Ce que Reviewflowz vous donne, c'est une feuille Google Sheets dans votre propre Drive qu'il tient à jour : un nouvel avis Trustpilot devient une nouvelle ligne en haut dans la demi-heure, et une modification met à jour sa propre ligne.
BigQuery lit une feuille stockée sur Drive comme une table externe. Un seul CREATE EXTERNAL TABLE pointant vers l'URL de la feuille, et trustpilot_reviews existe dans votre ensemble de données, s'interroge comme n'importe quelle autre table, et est à jour au moment de la requête parce qu'il lit la feuille, pas une copie. Rien à planifier, rien à maintenir en vie.
Si vous préférez une table native partitionnée, l'API Review est l'autre voie. Interrogez-la ou récupérez le webhook, puis chargez-la avec le job que vous exécutez déjà pour chaque autre source. Appeler ça un job plutôt qu'une case à cocher, c'est tout l'intérêt.
Dans les deux cas, l'historique vient avec. Alimenter la feuille avec les avis Trustpilot passés est une étape sur un forfait payant, pour que la référence dont votre seuil a besoin existe dès le premier jour. Connectez le profil via Trustpilot Business, et il est vérifié toutes les quinze minutes.
CREATE EXTERNAL TABLE
reviews.trustpilot_reviews
OPTIONS (
format = 'GOOGLE_SHEETS',
uris = ['https://docs.google.com/...'],
sheet_range = 'Reviews'
) Votre projet, vos règles
La table vit dans votre projet Google Cloud, dans la région que vous avez choisie, sous l'IAM que vous gérez déjà et la politique de rétention que vous avez déjà écrite. Accorder l'accès à un analyste prend les mêmes quelques clics que pour tout autre ensemble de données là-dedans, et le retirer de nouveau prend les mêmes quelques clics en sens inverse.
Vous choisissez ce qui en sort, et les réglages sont volontairement peu nombreux : quels profils Trustpilot, quelles notes, et si un avis doit contenir du texte pour compter. Un à trois étoiles vers une table d'escalade, tout vers celle d'analyse, deux synchronisations depuis le même compte et aucun filtre que quelqu'un maintient à la main.
Ce qui n'existe pas : un filtre de mot-clé, et un filtre de langue. Aucun des deux n'existe sur une synchronisation Trustpilot, et les deux se font de toute façon mieux en SQL, où changer d'avis coûte une clause WHERE plutôt qu'une resynchronisation.
Une chose à savoir avant de dimensionner quoi que ce soit. Le volume sur Trustpilot est piloté par les invitations, donc il arrive selon la forme de votre calendrier d'envoi. Un profil qui paraît calme tout le mois collecte l'essentiel de ses lignes dans les jours qui suivent chaque lot d'invitations.
Your Google Cloud project
northwind-analytics.reviews
Location
europe-west2
Access
your IAM
Retention
your policy
What flows in
There is no keyword filter and no language filter on a Trustpilot sync. Both are a WHERE clause once the rows are in the warehouse.
Un nombre d'avis est une anecdote. Les avis pour mille commandes sont un instrument.
Configuration en moins de cinq minutes. Sans démo.
Existe-t-il un connecteur BigQuery natif ?
Non, et il serait malhonnête de laisser croire le contraire. Reviewflowz synchronise une feuille Google Sheets dans votre propre Drive, et BigQuery lit cette feuille comme une table externe avec une seule instruction CREATE EXTERNAL TABLE. Si vous préférez une table native partitionnée, l'API Review plus un job de chargement planifié vous y mène. Les deux sont un travail ordinaire pour une équipe data, et aucun des deux n'a besoin d'une démo.
Nos avis Trustpilot n'ont pas d'ID de commande. Comment fonctionne la jointure avec les commandes ?
Sur le temps, pas sur une clé. Trustpilot ne vous donne pas de référence de commande sur un avis de service, donc vous regroupez les avis par semaine de publication et joignez ça aux commandes par semaine d'expédition. C'est suffisant pour trouver la semaine qui a mal tourné et transformer un nombre en taux. Ce n'est pas suffisant pour nommer la commande précise derrière un avis unique, et aucun outil qui lit Trustpilot ne peut faire ça pour vous.
À quel point la table est-elle à jour ?
Un profil Trustpilot connecté via Trustpilot Business est vérifié toutes les quinze minutes ; un profil ajouté par son URL est vérifié quelques fois par jour. La feuille s'écrit toutes les 30 minutes. Une table externe lit la feuille au moment de la requête, donc une requête que vous lancez maintenant voit ce que la dernière synchronisation a écrit. Un job de chargement dans une table native est aussi à jour que son calendrier.
Quelles colonnes contient la table ?
Un en-tête fixe de 28 colonnes : l'ID de l'avis, le profil, la plateforme, le titre, le texte complet de l'avis, la note, le lien, la date de l'avis, la langue détectée, le nom de l'auteur et les tags, entre autres. Il n'y a pas de colonne de réponse, donc vos réponses ne sont pas dans la table, et il n'y a pas d'onglets par plateforme. Renommez les colonnes dans une vue par-dessus la table externe si vous voulez des noms de style entrepôt de données.
Le premier chargement inclut-il notre historique Trustpilot ?
Alimenter la feuille avec les avis passés est une étape réservée aux forfaits payants. Connectez le profil via Trustpilot Business et le chargement rétroactif tourne jusqu'à la limite de votre forfait ; un profil ajouté par son URL apporte ses quelques centaines d'avis les plus récents. Pendant l'essai gratuit, les nouveaux avis arrivent à mesure qu'ils sont publiés, et l'historique se charge une fois que vous vous abonnez.
Que se passe-t-il quand un auteur modifie son avis après que nous avons réglé le problème ?
La ligne se met à jour sur place avec la nouvelle note et le nouveau texte, donc une requête dessus évolue avec la correction plutôt que de garder une version de la vérité que Trustpilot ne montre plus. Les nouveaux avis s'insèrent en haut, donc la ligne la plus récente est toujours la première.
Ai-je besoin d'une démo pour commencer ?
Non. Connectez vous-même votre profil Trustpilot et la feuille Google Sheets en moins de cinq minutes, puis exécutez un CREATE EXTERNAL TABLE dessus. Essai gratuit de 14 jours, sans carte bancaire.





