Rivalyse envoie un payload JSON via HTTP POST à chaque changement de prix détecté sur vos URLs surveillées. Contrairement à IFTTT (limité à 3 valeurs), Power Automate accepte des structures JSON imbriquées sans restriction. Le payload est une enveloppe {event, client_id, timestamp, data} : le tableau data.changes regroupe tous les changements de prix détectés lors du même passage du scraper pour votre compte (un produit avec un prix modifié = un élément du tableau).
Schéma JSON à coller dans le déclencheur Power Automate :
{
"type": "object",
"properties": {
"event": { "type": "string" },
"client_id": { "type": "integer" },
"timestamp": { "type": "string" },
"data": {
"type": "object",
"properties": {
"changes_count": { "type": "integer" },
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"product_name": { "type": "string" },
"competitor_name": { "type": "string" },
"price_client": { "type": ["number", "null"] },
"price_competitor_old": { "type": "number" },
"price_competitor_new": { "type": "number" },
"diff": { "type": ["number", "null"] },
"url_client": { "type": "string" },
"url_competitor": { "type": "string" }
}
}
}
}
}
}
}
Le champ "Corps JSON de la requête" du déclencheur HTTP joue le même rôle qu'une action Analyser JSON : Power Automate génère automatiquement les jetons de contenu dynamique pour chaque champ, y compris ceux imbriqués dans data.changes. Comme data.changes est un tableau, ajoutez une action "Appliquer à chacun" sur ce champ pour traiter chaque changement de prix individuellement, ou référencez uniquement le premier élément avec une expression comme triggerBody()?['data']?['changes']?[0]?['sku'] si un seul changement suffit à votre usage.
| Champ JSON (enveloppe) | Description | Exemple |
| event | Type d'événement | "price.changed" |
| client_id | Identifiant de votre compte Rivalyse | 123 |
| timestamp | Horodatage de l'envoi du webhook | "2026-07-21T10:00:00.000Z" |
| data.changes_count | Nombre de changements de prix inclus dans cet envoi | 1 |
| Champ JSON (data.changes[]) | Description | Exemple |
| sku | Référence du produit surveillé | "REF-001" |
| product_name | Nom du produit surveillé | "Chaise de bureau ErgoMax" |
| competitor_name | Nom du concurrent | "Concurrent SAS" |
| price_client | Prix pratiqué chez vous (peut être null si votre prix n'a pas encore été relevé) | 149.99 |
| price_competitor_old | Prix concurrent avant ce changement | 139.99 |
| price_competitor_new | Nouveau prix concurrent détecté | 129.99 |
| diff | Écart en euros entre le nouveau prix concurrent et votre prix, négatif si le concurrent est moins cher (null si price_client est absent) | -20.00 |
| url_client | URL du produit chez vous | "https://votre-site.com/produit" |
| url_competitor | URL du produit chez le concurrent | "https://concurrent.com/produit" |