Appuyez sur / pour rechercher

Toute la documentation
docs Surveiller et agir Moniteurs

S’exécute surWrit CloudDesktop

Moniteurs ▸ surveiller et agir

Moniteurs.

Un moniteur observe une page et signale les changements réels par rapport à une référence. Sur les plans cloud supérieurs, il vérifie jusqu’à toutes les 10 secondes, et un changement détecté peut déclencher un workflow à l’instant où il survient.

Writ s’exécute sur vos propres comptes, avec vos propres identifiants et données, sur les sites que vous êtes autorisé à utiliser.

types ▸ deux vérifications

Deux types de vérification.

Un target est une URL plus un check_type :

check_typeCe qui est vérifié
contentRécupère la page et compare ce que vous surveillez — un sélecteur, la structure ou une zone de capture — à sa référence stockée.
uptimeVérifie que la page répond : statut HTTP, temps de réponse, validité du certificat.

Le rendu JS est un interrupteur à part : activez requires_playwright et la vérification s’exécute dans un vrai navigateur plutôt qu’en simple requête. Une vérification JS pèse une vérification HTML dans le budget de votre plan.

surveiller ▸ trois modes

Ce qu’une vérification de contenu peut surveiller.

Un target de contenu surveille selon l’un de trois modes, chacun avec sa propre référence :

ModeComment le changement est détecté
selectorLe texte d’un sélecteur CSS, haché puis comparé. Sans sélecteur, c’est la page entière qui est surveillée.
htmlLe balisage structuré, comparé structurellement plutôt que comme texte brut.
visualUne zone de capture — visual_region est {x, y, width, height} — comparée à une image de référence stockée.

Contrôle du bruit : un ignore_regex peut être posé sur le target et sur chaque sélecteur — les fragments correspondants sont retirés de la comparaison, et compteurs comme horodatages cessent de produire de faux changements.

Extracteurs

Sur le contenu d’un sélecteur, des extracteurs transforment la zone en valeurs nommées qui voyagent avec l’événement de changement. Chaque extracteur a une key, un indicateur multiple optionnel et une default_value :

typeCe qu’il extrait
textLe contenu texte de l’élément.
attributeUn attribut nommé de l’élément.
regexLa première (ou chaque) correspondance d’un motif.
cssUne sélection CSS imbriquée dans la zone surveillée.
json_pathUn chemin dans du JSON trouvé dans le contenu surveillé.

En créer un depuis le code

Sur votre propre machine, les SDKs créent un moniteur auprès de l’agent local et relisent son historique de changements :

monitor.ts

import { WritAgent } from "@usewrit/agent-sdk";

const client = new WritAgent();
const mon = await client.monitors.create({ url: "https://example.com/pricing" });
const history = await client.monitors.changes(mon.id, { limit: 50 });
console.log(mon.id, history);

contexte ▸ autour de la vérification

Vérifications connectées, action dans la même session.

Un target peut porter le contexte dont sa page a besoin — et confier la session en direct à un workflow dès qu’un changement est détecté :

ChampRôle
pre_check_workflow_idUn workflow exécuté avant la vérification — typiquement une connexion — pour que la vérification voie la page que voit votre compte.
on_change workflowUn workflow déclenché à la détection d’un changement. Il peut s’exécuter dans la même session en direct, et agit donc sur l’état exact que la vérification vient de voir.
persona_idLa persona dont l’état de connexion sauvegardé est utilisé par la vérification.
use_residentialFaire passer la vérification par une sortie résidentielle là où votre plan le permet.

cadence ▸ planchers par plan

Planchers de cadence — rejetés, jamais arrondis.

Chaque plan fixe un intervalle minimal, séparément pour les vérifications HTML et les vérifications avec rendu JS. Un intervalle sous le plancher de votre plan est rejeté avec 402 et le code interval_too_short — il n’est jamais ralenti en silence jusqu’au plancher.

PlanPlancher HTMLPlancher JS
Free5 min15 min
Starter1 min10 min
Pro1 min10 min
Growth30 s5 min
Scale / Enterprise10 s2 min

Ce que vous configurez est ce qui s’exécute. Si une demande exige un plan plus rapide, l’API le dit d’emblée au lieu de dégrader votre moniteur en silence.

Deux portes distinctes accompagnent le plancher : un budget pondéré de vérifications par minute sur l’ensemble de vos targets (10 sur Free, jusqu’à 3000 sur Enterprise ; une vérification JS compte 5×) répondu par 402 budget_exceeded une fois épuisé — et un maximum ferme de targets par type de vérification.

pipeline ▸ du changement à l’action

Du changement à l’action.

Quand une vérification aboutit, chaque action déclenchée a parcouru le même pipeline :

  1. ExtraireLes extracteurs transforment le contenu surveillé en valeurs nommées.
  2. ApparierLes déclencheurs qui observent ce target (ou ce sélecteur) sont rassemblés.
  3. Construire le contexteLe contexte de template {{…}} est assemblé : valeurs extraites, now / now_date et consorts, change_detected_at, target_id et l’URL du target.
  4. DédupliquerLes déclencheurs sans sélecteur tirent une fois par (déclencheur, target) et par lot — une vérification ne peut pas doubler la même règle.
  5. ConditionsLes conditions de chaque déclencheur sont évaluées, plus ses garde-fous : fenêtres horaires et délai de repos.
  6. Journaliser, distribuer, réglerLe tir est journalisé en pending, les actions partent, et le journal se règle avec status, action_results et trigger_count.

Opérateurs de condition (11) : changed, exists, equals, not_equals, contains, not_contains, matches, gt, gte, lt, lte.

templates ▸ filtres

Filtres de template.

Dans les templates {{…}} — messages, payloads de webhook, entrées de workflow — les valeurs peuvent passer par des filtres :

FiltreCe qu’il fait
default (alias : or)Valeur de repli quand la valeur est vide.
upper / lowerConversion de casse.
trimRetirer les espaces autour.
truncate:NCouper à N caractères.
replace:a:bRemplacer a par b.
round[:digits]Arrondir un nombre, éventuellement à un nombre de décimales.
add / sub / mul / divArithmétique sur valeurs numériques.
match:<regex>Garder la correspondance du motif (motifs jusqu’à 512 caractères).

alertes ▸ neuf canaux

Où partent les alertes.

Les alertes de moniteurs et de déclencheurs partent par neuf canaux : pushover, email, twilio (SMS), whatsapp, signal, webhook, slack, discord et telegram.

pushoveremailtwiliowhatsappsignalwebhookslackdiscordtelegram

Les destinataires s’adressent en chaînes "channel:id" — p. ex. ["pushover:1", "email:3"] — un même déclencheur peut donc s’éventer vers plusieurs destinations configurées à la fois. Les livraisons webhook sortantes sont signées ; voir webhooks.

suite ▸ où aller

Continuez.

  • Automatisations & webhooks — le modèle déclencheur/action complet et les livraisons signées.
  • Workflows — ce qu’un workflow on_change peut faire une fois déclenché.
  • Watch-and-act — l’histoire produit autour de cette référence.