managing-subscriptions

Par posthog · skills

Gérez les abonnements PostHog — envois planifiés par e-mail, Slack ou webhook de snapshots d'insight ou de dashboard. À utiliser lorsque l'utilisateur souhaite s'abonner à un insight ou à un dashboard, consulter les abonnements existants, modifier la fréquence de livraison, ajouter ou supprimer des destinataires, ou arrêter de recevoir des mises à jour.

npx skills add https://github.com/posthog/skills --skill managing-subscriptions

Gestion des abonnements

Cette compétence vous guide dans la gestion des abonnements PostHog. Les abonnements livrent des snapshots programmés d'insights ou de tableaux de bord via email, Slack ou webhook.

Quand utiliser cette compétence

Utilisez cette compétence quand l'utilisateur :

  • Veut « tracker », « suivre », « s'abonner à » ou « recevoir des mises à jour » sur un insight ou un tableau de bord
  • Demande des « mises à jour quotidiennes », « rapports hebdomadaires » ou « envoie-moi ça chaque matin »
  • Veut savoir à quels abonnements il est souscrit
  • Demande à arrêter, mettre en pause ou se désabonner de quelque chose
  • Veut changer qui reçoit une mise à jour ou la fréquence

Abonnements vs alertes

Les abonnements et les alertes servent des objectifs différents :

  • Abonnements : livrent un snapshot selon un calendrier fixe (quotidien, hebdomadaire, etc.) indépendamment des données
  • Alertes : se déclenchent uniquement quand une condition est remplie (seuil dépassé, anomalie détectée)

Si l'utilisateur dit « notifie-moi quand ça descend sous 100 », utilisez les alertes. Si l'utilisateur dit « envoie-moi ça chaque matin », utilisez les abonnements.

Workflow

Lister les abonnements existants

Avant de créer un nouvel abonnement, vérifiez qu'il n'en existe pas déjà un.

Utilisez subscriptions-list avec des filtres optionnels :

  • Filtrer par insight : passez le paramètre de requête insight avec l'ID de l'insight
  • Filtrer par tableau de bord : passez le paramètre de requête dashboard avec l'ID du tableau de bord
  • Filtrer par canal : passez target_type comme email, slack ou webhook

Créer un abonnement

Étape 1 : Demander à l'utilisateur comment il veut le recevoir

Demandez toujours à l'utilisateur s'il souhaite une livraison par email ou Slack avant de créer un abonnement. Ne supposez pas un canal — demandez explicitement :

Souhaitez-vous recevoir ceci via email ou Slack ?

Si l'utilisateur dit Slack, vous devez vérifier que l'intégration est disponible (voir étape 2). Si l'utilisateur n'a pas de préférence, suggérez l'email comme l'option la plus simple.

Étape 2 : Vérifier la disponibilité du canal

Email ne nécessite aucune configuration — c'est prêt à l'emploi. Vous avez juste besoin de l'adresse email de l'utilisateur. Obtenez-la à partir du contexte utilisateur ou depuis org-members-list.

Slack nécessite une intégration Slack connectée. Avant de créer un abonnement Slack :

  1. Appelez integrations-list et cherchez une intégration où kind est "slack"
  2. Si une intégration Slack existe, notez son id — vous en aurez besoin comme integration_id
  3. Si aucune intégration Slack n'existe, dites à l'utilisateur :

    Slack n'est pas encore connecté à ce projet. Vous pouvez le configurer dans Paramètres du projet > Intégrations. En attendant, souhaitez-vous recevoir ceci par email à la place ?

La configuration de Slack nécessite un flux OAuth dans le navigateur — cela ne peut pas être fait via MCP.

Webhook nécessite que l'utilisateur fournisse une URL. Vérifiez qu'elle ressemble à une URL valide avant de soumettre.

Étape 3 : Identifier la cible

Obtenez l'ID d'insight ou l'ID de tableau de bord. Si l'utilisateur fournit une URL comme /project/2/insights/pKxzopBG, récupérez d'abord l'insight avec insight-get pour obtenir l'ID numérique.

Étape 4 : Déterminer les paramètres de livraison à partir de la demande de l'utilisateur

L'utilisateur dit Paramètres
« chaque jour » / « quotidien » / « chaque matin » frequency: "daily"
« chaque semaine » / « hebdomadaire » frequency: "weekly"
« chaque lundi » frequency: "weekly", byweekday: ["monday"]
« chaque mois » / « mensuel » frequency: "monthly"
« deux fois par semaine » frequency: "weekly", interval: 1, byweekday: ["monday", "thursday"]

Étape 5 : Créer avec subscriptions-create

Pour un abonnement à un insight via email :

{
  "insight": 12345,
  "target_type": "email",
  "target_value": "user@example.com",
  "frequency": "daily",
  "start_date": "2025-01-01T09:00:00Z"
}

Pour un abonnement à un tableau de bord (nécessite de sélectionner les insights à inclure, max 6) :

{
  "dashboard": 67,
  "dashboard_export_insights": [101, 102, 103],
  "target_type": "email",
  "target_value": "user@example.com",
  "frequency": "weekly",
  "byweekday": ["monday"],
  "start_date": "2025-01-01T09:00:00Z"
}

Pour une livraison Slack, incluez le integration_id de l'étape 2 :

{
  "insight": 12345,
  "target_type": "slack",
  "target_value": "#general",
  "integration_id": 789,
  "frequency": "daily",
  "start_date": "2025-01-01T09:00:00Z"
}

Mettre à jour un abonnement

Utilisez subscriptions-partial-update avec l'ID d'abonnement. Mises à jour courantes :

  • Changer la fréquence : {"frequency": "weekly", "byweekday": ["monday"]}
  • Ajouter des destinataires : Mettez à jour target_value avec la liste complète séparée par des virgules
  • Changer de canal : Mettez à jour target_type et target_value ensemble

Désactiver un abonnement

Les abonnements sont supprimés temporairement. Utilisez subscriptions-partial-update :

{
  "id": 456,
  "deleted": true
}

Valeurs par défaut

Quand l'utilisateur ne spécifie pas de détails :

  • Fréquence : "daily"
  • Canal : email à l'utilisateur actuel
  • Date de début : maintenant (ISO 8601)
  • Titre : généré automatiquement à partir du nom de l'insight/tableau de bord s'il n'est pas spécifié

Gestion des erreurs

  • Vérification des doublons : Si un abonnement existe déjà pour le même insight/tableau de bord et canal, informez l'utilisateur et proposez de le mettre à jour plutôt que de créer un doublon
  • Slack non connecté : Si un abonnement Slack est demandé mais qu'aucune intégration Slack n'existe, expliquez que Slack doit être connecté dans Paramètres du projet > Intégrations d'abord, puis proposez l'email comme alternative. Ne tentez pas de créer l'abonnement — il échouera avec une erreur de validation
  • Intégration Slack mauvaise équipe : L'intégration Slack doit appartenir à la même équipe PostHog. Si integrations-list retourne des intégrations Slack mais que la création échoue toujours, l'intégration peut être mal configurée
  • Insights de tableau de bord : Les abonnements à un tableau de bord nécessitent au moins 1 et au maximum 6 insights sélectionnés via dashboard_export_insights. Si l'utilisateur ne spécifie pas les insights, récupérez le tableau de bord avec dashboard-get et sélectionnez les 6 premiers insights parmi ses tuiles

Skills similaires