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
insightavec l'ID de l'insight - Filtrer par tableau de bord : passez le paramètre de requête
dashboardavec l'ID du tableau de bord - Filtrer par canal : passez
target_typecommeemail,slackouwebhook
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 :
- Appelez
integrations-listet cherchez une intégration oùkindest"slack" - Si une intégration Slack existe, notez son
id— vous en aurez besoin commeintegration_id - 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_valueavec la liste complète séparée par des virgules - Changer de canal : Mettez à jour
target_typeettarget_valueensemble
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-listretourne 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 avecdashboard-getet sélectionnez les 6 premiers insights parmi ses tuiles