Loading...
Loading...
Create a recurring AI-generated PostHog report — schedule a free-text prompt to run on a cron, with the LLM-synthesized markdown delivered to email or Slack on each tick. Use when the user wants a recurring AI summary of X on any cadence (daily, weekly, monthly, yearly) rather than a one-off report. (To attach an AI summary to an existing insight/dashboard subscription instead of a free-text prompt, see `managing-subscriptions` and its `summary_enabled` option.)
npx skill4agent add posthog/skills creating-ai-subscriptionresource_typeinsightresource_type: "insight"dashboardresource_type: "dashboard"promptresource_type: "ai_prompt"insightdashboardpromptsubscriptions-*| Tool | Purpose |
|---|---|
| Create the recurring prompt subscription |
| Confirm it landed; inspect existing subscriptions |
| Edit, disable ( |
| Send an immediate test delivery to its target(s) |
| Soft-delete it (stops all future deliveries) |
| Find a Slack |
| List a Slack integration's channels (id + name) |
DEBUG=trueOrg settings → Data → AI data processingquery:readsubscription:writesubscription:writeprompt: "..." # ≤4000 chars; setting this (with no insight/dashboard) makes it a prompt sub → resource_type "ai_prompt"
target_type: "email" | "slack" # webhook is rejected for prompt subs
target_value: "..." # comma-separated emails, or "<channel_id>|<channel_name>"
frequency: "daily" | "weekly" | "monthly" | "yearly"
interval: 1 # 1 = every tick; 2 = every other tick; etc.
start_date: "2026-09-15T09:00:00Z" # anchors the recurrence + time-of-day; need not be in the future — the scheduler delivers the next occurrence
title: "..." # display name in the subscriptions listresource_typepromptresource_typebyweekday: ['monday', 'wednesday'] # weekly only — days the rrule fires
bysetpos: 1 # most useful with monthly; requires byweekday — e.g. byweekday:['monday']+bysetpos:-1 = last Monday
count: 10 # cap total deliveries
until_date: '2026-12-31T00:00:00Z' # stop on/before this date
integration_id: 42 # Slack only — required; from integrations-list (see "Slack target")target_value<channel_id>|<channel_name>posthog:integrations-listkind=slackidposthog:integrations-channels-retrieveididnametarget_value<id>|<name>idintegration_idprompt: 'Top events week over week, with the biggest drops and any new failure modes called out.'
target_type: email
target_value: founders@acme.example
frequency: weekly
interval: 1
byweekday: ['monday']
start_date: '2026-09-14T08:00:00Z'
title: 'Weekly product pulse'prompt: "Yesterday's sign-ups, where they came from, and any errors they hit during onboarding."
target_type: slack
target_value: 'C0123456789|growth-updates' # <channel_id>|<channel_name>; only the channel id is used, the name is cosmetic
integration_id: 42
frequency: daily
interval: 1
start_date: '2026-09-15T09:00:00Z'
title: 'Daily onboarding watch'promptprompt{"enabled": true}next_delivery_datestart_datestart_datesubscriptions-listresource_type: "ai_prompt"enabled: truenext_delivery_dateprompt