Datama peut être utilisé pour envoyer des messages contenant des analyses ou des alertes, mais il arrive que les données ne soient pas disponibles à une heure fixe. C’est le cas, par exemple, des données interjournalières GA4 pour les web players.
Dans ce cas, Datama permet d’envoyer des notifications depuis un outil externe, via un système de webhook. L’outil externe, typiquement un orchestrateur (dans Google Cloud Platform il s’agit de Workflow, mais ces opérations peuvent être réalisées dans des outils tels que Apache Airflow, AWS Step Functions ou Azure Logic Apps), appellera le webhook qui déclenchera l’analyse et l’envoi du message au bon moment, précisément lorsque les données sont prêtes.
Dans cet exemple, nous allons suivre la procédure de mise en place des exportations dans Datama basée sur cette méthode, le » webhook » (une option alternative au » scheduled « ). L’objectif est de déclencher l’export suite à un événement dans le datawarehouse (ex : mise à jour d’une table, création, etc.). Cette option est particulièrement utile dans le cas de l’attente de mises à jour de données GA4 qui n’arrivent pas à une heure fixe. Si vous n’êtes pas familier avec le problème, je vous invite à lire cet article sur le sujet.
Dans notre exemple, nous suivrons la procédure de déclenchement de la requête après la mise à jour des données GA4 de la table event_intraday vers la table event.
A. Créez votre classeur dans Datama
Une condition préalable à ce que nous essayons d’obtenir est d’avoir un classeur précis dans Datama que vous souhaitez déclencher à l’aide d’un webhook. Dans notre cas, il s’agira typiquement d’un cas d’utilisation de Datama à partir de tables Big Query GA4 dont nous voulons nous assurer qu’elles sont à jour.
Une fois créé, vous pouvez alors créer une exportation, puis obtenir un webhook.
B. Définir le flux de travail
Avant de pouvoir automatiser l’envoi des exports Datama au bon moment, il est indispensable de mettre en place un workflow. Celui-ci sera activé sur un trigger : dès qu’un événement spécifique se produira dans votre datawarehouse, il appellera automatiquement l’API Datama pour exécuter l’export. Dans notre cas, nous mettrons en place un webhook basé sur la suppression de la table event_intraday, garantissant ainsi que les données ne seront envoyées qu’une fois qu’elles auront été entièrement mises à jour. Suivez les étapes suivantes pour configurer efficacement votre webhook dans BigQuery.
La première étape consiste à créer un flux de travail dans votre entrepôt de données, dont le but est de déclencher l’appel à l’API d’exportation de Datama via le webhook après une certaine action, dans notre cas l’insertion des données event_intraday dans la table event_.
Pour ce faire, allez dans Bigquery
Étape 1 : Ouvrez le menu Flux de travail
- Dans le menu de navigation (en haut à gauche), allez sur Worflows > Worflows ou recherchez « Worflows » dans la barre de recherche.

Étape 2 : Créer un nouveau flux de travail
- Sélectionnez le bouton « CRÉER » pour créer un nouveau flux de travail.
- Définissez sa région, qui doit correspondre à la région du projet Bigquery sur lequel vous souhaitez travailler.
- Dans « Niveau du journal des appels », sélectionnez « Tous les appels » ; les appels seront filtrés ultérieurement dans la section « Déclencheur ».
- Vous pouvez ajouter des étiquettes à votre webhook, par exemple avec une étiquette Type= »webhook-job » et une étiquette App= »datama ».
Étape 3 : Définir le déclencheur du flux de travail
- Dans la section Déclencheurs en bas de la page, sélectionnez « Ajouter un nouveau déclencheur » > « Eventarc ».
- Donnez-lui un nom et sélectionnez « BigQuery » comme fournisseur d’événements.
- Pour le type d’événement, nous nous baserons sur la suppression de la table event_intraday. Dans la séquence, Bigquery crée une nouvelle table partitionnée pour la nouvelle date, charge les données dans cette nouvelle table, puis supprime la table event_intraday une fois que toutes les données ont été chargées. Ainsi, dans la séquence, la suppression de cette table garantit que toutes les données ont été chargées, c’est pourquoi nous allons nous appuyer sur elle. Nous allons donc choisir google.cloud.bigquery.v2.TableService.DeleteTable comme type d’événement.
- Ensuite, pour la partie ressources, il y a deux options possibles :
- Sélectionnez « Toute ressource » pour voir toutes les suppressions de tables et trouver la bonne suppression dans l’historique des déclencheurs, puis sélectionnez l’option « Modèle de chemin » et choisissez le bon modèle.
- Vous pouvez également sélectionner directement « Path Pattern » et trouver le bon événement dans les journaux (voir l’étape 4 (facultative) pour trouver les journaux).
Dans notre cas, le modèle de chemin ressemblera à ceci : projects/NAME_OF_PROJECT/datasets/analytics_XXXXXXX/tables/*
- Enfin, sélectionnez la région correspondant à la région du projet.
Si vous ne voyez pas de webhook déclenché dans l’historique alors qu’il y a eu des suppressions de tables dans l’ensemble de données, je vous suggère de sélectionner l’option 1 dans la section « Ressource » pour vous assurer que le modèle de chemin est le bon. Sinon, il peut s’agir d’un problème de région.
Étape 4 (facultative) : Récupérez les journaux
Pour accéder aux journaux, vous devez ouvrir un deuxième onglet de la Google Cloud Console.
- Dans le menu de navigation (en haut à gauche), allez à Logging > Logs Explorer.
- Dans Logs Explorer, définissez un filtre pour cibler l’activité BigQuery.
- Vous pouvez utiliser la requête avancée suivante pour filtrer les journaux des modifications apportées à une table spécifique, par exemple :
- resource.type= »bigquery_resource » (Limite les résultats aux ressources BigQuery)
- resource.labels.dataset_id= « NOM_DU_DATASET » (Filtre le nom du dataset contenant le tableau)
- resource.labels.table_id= « NOM_DE_LA_TABLE » (Filtre sur le nom de la table)
Étape 5 : Définir le webhook à appeler
- Une fois le trigger défini, passez à l’étape suivante. Pour ceux qui ne sont pas familiers avec le code, ne vous inquiétez pas, nous allons vous donner les quelques lignes à ajouter :
main:
params: [event]
steps:
- callDatama:
call: http.get
args:
url: 'https://api.prep.datama.io/v1.0/webhook/XXXXXXXXXXXXXXXXXXXXXXX'
result: response
- returnCallOutput:
return: '${response}'
- Le seul champ que vous devrez modifier est « url », que vous pouvez copier depuis le bloc d’exportation de Datama, depuis le champ webhook url, cliquez dessus et il sera copié dans votre presse-papiers.
- Appuyez sur Deploy et votre webhook est prêt à être testé.
Étape 6 : Finaliser le flux de travail
- La finalisation consiste à s’assurer que le webhook fonctionne correctement.
- Tout d’abord, vérifions que le script fonctionne.
Accédez à votre webhook et sélectionnez « Execute » dans le menu supérieur pour exécuter votre script manuellement :
- Exécutez le programme pour vous assurer que tout fonctionne correctement, et vous aurez :

Si l’opération est réussie et que vous recevez votre exportation Datama, le script est fonctionnel. - Pour ce faire, accédez à l’ensemble de données défini dans votre modèle de parcours, créez une table vide et supprimez-la. Pour simuler la suppression d’une table, vous devriez voir un appel au webhook apparaître sur la page des détails du flux de travail et recevoir une exportation.
Si ces deux tests sont concluants, votre webhook est fonctionnel.
C. (facultatif) Mettez à jour le classeur Datama
Veuillez noter que l’URL du webhook contient des informations spécifiques à l’exportation que vous avez définie dans Datama Prep. Cela implique que chaque fois que vous modifiez ne serait-ce qu’un seul paramètre dans Datama, l’adresse du webhook est modifiée.
Il faut donc copier le nouveau lien dans Datama Prep et le remplacer dans le code que nous avons défini à l’étape 5. Le nouveau lien à coller doit remplacer celui présent à l’emplacement suivant : « url : ‘nouvelle URL de webhook à coller’ « .
Conclusion
En intégrant un webhook dans votre workflow BigQuery, vous optimisez l’envoi des exports Datama en les déclenchant précisément au bon moment, sans dépendre d’horaires fixes. Cette approche garantit que vos analyses reposent sur des données fraîches et complètes, notamment pour le GA4. Grâce à un paramétrage minutieux, de la définition des déclencheurs à la validation du workflow, vous vous assurez un processus automatisé, fiable et réactif.
En bref, cette méthode vous permet d’utiliser vos données de manière plus efficace et plus pertinente.







