Exporter vos invitations dans BigQuery ou Snowflake
Chargez l'historique de vos invitations d'avis dans BigQuery ou Snowflake, puis tenez-le à jour chaque jour avec l'API Review Collect.
Obtenir votre clé API
- Demandez votre clé API à votre account manager, depuis la bulle de chat ou par email
- Stockez-la dans le gestionnaire de secrets de votre entrepôt, jamais dans un fichier partagé
X-Api-Key de chaque requête.Charger l'historique
L'endpoint GET /invitations renvoie une invitation par client contacté, avec les messages envoyés, la note laissée et l'avis publié. La référence complète est sur developers.review-collect.com.
- Appelez l'endpoint avec
limit=1000 - Tant que
has_morevauttrue, rappelez-le aveccursorégal aunext_cursorreçu - Écrivez chaque page dans votre table avant de demander la suivante
Modèle à copier-coller :
import requests
BASE = "https://api.review-collect.com/api:v1"
HEADERS = {"X-Api-Key": RC_API_KEY}
def invitations(**params):
params = {"limit": 1000, **params}
while True:
page = requests.get(f"{BASE}/invitations", headers=HEADERS, params=params, timeout=60).json()
yield from page["data"]
if not page["has_more"]:
return
params["cursor"] = page["next_cursor"]
for invitation in invitations():
write_to_warehouse(invitation)
Créer la table
Une ligne par invitation, avec id comme clé. Les colonnes utiles pour l'analyse :
- Identifiants —
id,order.id,order.number,customer.email,customer.phone - Envoi —
source,sent_at,status,clicked_at - Note laissée —
review.rating,review.comment,review.submitted_at - Suite donnée —
routing.type,routing.destination,routing.published,routing.published_review.id - Mise à jour —
updated_at
routing.published et routing.published_review demandent le module Connect de Trustpilot, une option payante de Trustpilot Business connectée depuis la page Intégrations. Sans ce module, ces deux champs restent vides.Dans BigQuery, chargez chaque invitation telle quelle dans une colonne JSON et exposez ces colonnes dans une vue. Dans Snowflake, même principe avec une colonne VARIANT.
messages avec UNNEST dans BigQuery ou LATERAL FLATTEN dans Snowflake : chaque élément porte step, channel et sent_at.Mettre à jour chaque jour
- Planifiez le script chaque matin
- Passez le paramètre
sinceavec l'heure de début de l'exécution précédente, moins cinq minutes - Fusionnez les lignes reçues sur
id: mise à jour si la ligne existe, insertion sinon
Modèle BigQuery :
MERGE `dataset.invitations` t
USING `dataset.invitations_staging` s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET data = s.data, updated_at = s.updated_at
WHEN NOT MATCHED THEN INSERT (id, data, updated_at) VALUES (s.id, s.data, s.updated_at)
Le filtre since porte sur updated_at : une invitation envoyée en avril et notée en octobre revient dans l'exécution d'octobre. Une invitation revient à chaque changement, la fusion sur id la met simplement à jour.
Mis à jour le : 22/10/2026
Merci !
