Generated banner for Managing Subscriptions
Generated logo for Managing Subscriptions

Managing Subscriptions

PostHogOfficialPublished by PostHog

  • Skill
  • Workflow
  • Data and AI
  • MIT
  • No issues found

From the author

Create and manage scheduled PostHog subscriptions for insight snapshots, dashboard snapshots, and AI prompt reports. Use when a user wants recurring email, Slack, or Microsoft Teams delivery; an AI summary; delivery history; schedule or recipient changes; a test delivery; pause, resume, or deletion; or help with subscription permissions, limits, billing, and failures. Use product alerts when delivery must depend on a threshold or anomaly.
— the description by PostHog

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured workflow for creating, updating, testing, and managing scheduled subscriptions in PostHog. It supports the delivery of insight snapshots, dashboard snapshots, and AI-generated prompt reports to email, Slack, or Microsoft Teams. The skill covers the full lifecycle of a subscription, including checking for duplicates, configuring delivery schedules, handling destination-specific requirements, and managing subscription status (pause/resume/delete). It also addresses operational considerations such as plan limits, AI credit usage, and troubleshooting delivery failures.

What it does

  • Creates recurring subscriptions for insights, dashboards, and AI prompt reports.
  • Manages subscription lifecycle including pausing, resuming, and deleting.
  • Configures delivery destinations for email, Slack, and Microsoft Teams.
  • Tests subscription delivery to verify configuration and connectivity.
  • Monitors delivery history and investigates potential failures.
  • Handles AI-specific requirements including credit usage and summary settings.

When to use it

  • When a user needs to schedule recurring reports or snapshots of product data.
  • When a user wants to change recipients, schedules, or destinations for existing subscriptions.
  • When troubleshooting why a scheduled report was not received.
  • When managing subscription limits or cleaning up unused reports to free up slots.
  • When verifying that a new Slack or Teams integration is correctly configured for delivery.

Advantages

  • Ensures consistent data delivery through a standardized, step-by-step process.
  • Prevents duplicate subscriptions by checking existing configurations before creation.
  • Provides clear guidance on handling sensitive credentials like Teams webhooks.
  • Integrates verification steps to confirm delivery success after configuration changes.
  • Helps manage organizational resources by tracking plan limits and AI credit usage.

Usage examples

“Set up a weekly email subscription for the 'User Retention' dashboard.”
The agent will list existing subscriptions to avoid duplicates, verify the dashboard ID, confirm the email recipients, set the weekly schedule, and offer to send an immediate test delivery.
“Pause my AI prompt report subscription.”
The agent will retrieve the subscription, confirm its status, and perform a partial update to set it to disabled, effectively pausing future deliveries.
“Why did my Slack subscription stop sending reports?”
The agent will check the delivery history for the subscription, verify the integration status, and suggest checking channel access or re-authenticating the Slack integration.
“Change the destination for my insight report to a new Slack channel.”
The agent will retrieve the current subscription, list available Slack channels, update the target value, and ask for approval before triggering a test delivery to the new channel.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/posthog/managing-subscriptions/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip managing-subscriptions.zip -d .agents/skills

Documentation by PostHog

Managing subscriptions

Subscriptions deliver product data on a fixed schedule. They support insight snapshots, dashboard snapshots, and AI prompt reports.

Read the relevant references

  • Read subscription-types.md before you select or change a resource type.

  • Read destinations.md before you create or change a destination.

  • Read operations.md for schedules, limits, billing, delivery checks, and failures.

  • Use creating-ai-subscription for the detailed prompt report creation workflow.

Choose the correct product

  • Use a subscription for fixed delivery, such as "send this dashboard every Monday."

  • Use a product alert for a condition, such as "notify me when conversion falls below 10%."

  • Use a reminder when the user wants a private prompt to inspect a resource later.

  • Use a Signals scout when an agent must decide what is important to report.

Subscriptions do not evaluate thresholds, recovery, consecutive breaches, or quiet hours. Snapshot subscriptions attempt each scheduled occurrence even when the saved results do not change.

Tools

ToolPurpose
posthog:subscriptions-listFind subscriptions
posthog:subscriptions-retrieveRead one subscription
posthog:subscriptions-createCreate a subscription
posthog:subscriptions-partial-updateChange, pause, or resume a subscription
posthog:subscriptions-test-delivery-createSend a test delivery
posthog:subscriptions-deliveries-listList delivery attempts
posthog:subscriptions-deliveries-retrieveRead one delivery
posthog:subscriptions-deleteStop all future deliveries
posthog:integrations-listFind a Slack integration
posthog:integrations-channels-retrieveFind Slack channels
posthog:dashboard-getRead dashboard tiles
posthog:insight-getResolve an insight ID

Create a subscription

  1. Call posthog:subscriptions-list and check for a duplicate.

  2. Select one resource type from subscription-types.md.

  3. Resolve the destination with destinations.md.

  4. Resolve the schedule with operations.md.

  5. Ask whether the user wants an immediate delivery.

  6. Set send_test_now to the user's choice.

  7. Call posthog:subscriptions-create.

  8. Read the saved subscription and check each requested field.

  9. If the user approved an immediate delivery, check its delivery record.

If creation times out or returns an uncertain result, list matching subscriptions before you retry. Creation is not idempotent. A blind retry can create a duplicate subscription and send a duplicate immediate delivery.

Do not infer missing recipients, channels, times, or time zones. Ask for these values before creation.

Find existing subscriptions

Use these list filters when they reduce ambiguity:

  • resource_type: insight, dashboard, or ai_prompt.

  • target_type: email, slack, or teams.

  • insight or insights: One insight ID or a comma-separated ID list.

  • dashboard: One dashboard ID.

  • dashboard_tiles: Insight subscriptions for live tiles on one dashboard.

  • created_by: One creator UUID.

Check for duplicates

Use search when the user supplied a title, insight name, dashboard name, or prompt text. Prompt subscriptions match their title and prompt text. Compare the resource, destination type, target, schedule, and enabled state.

A Teams result contains only the webhook host. One host can serve many channels. Do not use the host to identify a duplicate.

Show the title, schedule, creator, and creation date for possible Teams matches. Ask the user to select a subscription when these fields identify it. Create a new subscription when no field identifies the target channel.

Confirm the saved result

Check these fields after creation:

  • resource_type matches insight, dashboard, or ai_prompt.

  • target_type and the safe target label match the request.

  • enabled is true.

  • next_delivery_date matches the schedule and time zone.

  • The AI and delivery options match the user's choices.

Change a subscription

Call posthog:subscriptions-retrieve before each update. Before an update that can send a delivery, list the current delivery IDs. Then call posthog:subscriptions-partial-update with the changed fields.

Ask before an update that can send an immediate delivery. The MCP update tool cannot suppress an immediate delivery for these changes. If the user does not approve delivery, do not make the update.

  • Set enabled: false to pause delivery.

  • Set enabled: true to resume delivery.

  • Send the complete new target when you change recipients.

  • Send target_type and target_value together when you change the destination type.

  • Omit target_value to keep a saved Teams webhook URL.

  • Send the full new Teams webhook URL when you replace it.

The resource type cannot change. Create a new subscription when the user wants a different resource type.

Check the new next_delivery_date after a schedule update. An exhausted schedule cannot resume until the user extends or removes its end condition.

After an update that sends a delivery, poll for a new target_change delivery ID. Read that delivery until it reaches a final state. Then retrieve the subscription and check its final enabled value.

Test and inspect delivery

  1. Ask for approval unless the user already requested a test.

  2. List the current delivery IDs.

  3. Call posthog:subscriptions-test-delivery-create.

  4. Poll for a new manual delivery ID.

  5. Read the new delivery when the list result needs more detail.

Wait between polls and stop after two minutes. If delivery does not reach a final state, report the last state and suggest another check later.

A test sends a real message. The tool returns 202 after it queues the delivery. It returns 409 when another test is active or the subscription is disabled.

Delivery states are starting, completed, failed, and skipped. Filter the delivery list by status when you investigate a failure. A queued workflow does not prove delivery. A completed delivery can contain partial recipient failures. The MCP tools hide per-recipient results. Do not claim that each recipient succeeded.

Stop a subscription

Confirm the subscription ID and safe destination label. Ask for approval unless the user already requested deletion or unsubscribe. Then call posthog:subscriptions-delete.

Deletion is a one-way soft delete through MCP. It stops future deliveries and frees a plan slot. Create a new subscription if the user needs it again.

Report the result

  • State the resource type, destination type, schedule, and next delivery date.

  • State whether the subscription is enabled.

  • State whether AI features can consume AI credits.

  • Do not repeat email addresses unless the user needs them for confirmation.

  • Never repeat a Teams webhook URL.

  • creating-ai-subscription: Create a report from a free-text AI prompt.

  • building-a-dashboard: Create a dashboard before you subscribe to it.

  • adding-product-alerting: Notify users when data meets a condition.

  • managing-reminders: Schedule a private prompt to inspect a resource.

  • understanding-billing-usage: Investigate PostHog AI credit use.

Files

references/operations.md

Subscription operations

Schedule

Required create fields include frequency, interval, and start_date.

  • Set frequency to daily, weekly, monthly, or yearly.

  • Set interval to 1 or greater.

  • Use byweekday with daily or weekly schedules.

  • Use bysetpos with byweekday for a monthly position.

  • Use count to limit scheduled recurrence occurrences.

  • Use until_date to set an end date.

Deliveries run on half-hour cycles at :00 and :30. Other minute values move delivery to the next cycle.

start_date can be in the past. It anchors the recurrence. Past occurrences count toward count. Create-time, manual, and target-change deliveries do not count toward it. The next delivery must be more than approximately 15 minutes in the future.

The server calculates next_delivery_date. Do not send this read-only field. Always check it after a create or schedule update.

Access and API scopes

  • Read operations require subscription:read.

  • Write operations require subscription:write.

  • AI prompt writes and test deliveries also require query:read.

  • AI prompt operations also require viewer access to the query resource.

  • Insight and dashboard subscriptions require viewer access to their saved resources.

Delivery history for an AI prompt report hides query-derived content from callers without query access. MCP returns delivery status but omits errors and recipient details. Do not infer a failure cause from status alone.

Plan limits

The free plan allows five non-deleted subscriptions per project. A paid plan can set a different numeric limit or no numeric limit.

A deleted subscription frees one slot. A paused subscription still uses one slot.

The limit applies across insight, dashboard, and AI prompt subscriptions. If the plan limit blocks creation, delete an unused subscription or change the plan.

AI requirements and billing

AI prompt reports require all these conditions at creation:

  • PostHog Cloud, unless the instance runs in development mode.

  • Organization approval for AI data processing.

  • AI subscriptions enabled for the current user.

  • subscription:write and query:read scopes.

  • Viewer access to the query resource.

AI prompt reports use billable model calls. The planner can use more than one model call to select events, create queries, repair queries, and write the report. AI credits do not block creation. PostHog checks the credit balance before report generation. Use understanding-billing-usage to investigate ai_credits_used_in_period.

If the organization exhausts AI credits, PostHog skips the prompt report. The subscription stays enabled. PostHog moves its next delivery past the credit reset date. PostHog can notify the active creator once during that billing period.

AI summaries on insight and dashboard snapshots also use AI credits. Enabling one requires organization approval for AI data processing. It also requires available AI credits and an available active-summary slot.

The active-summary limit applies across all projects in the organization. The exact limit depends on the plan. A paused subscription with summary_enabled: true still uses an active-summary slot. Disable its summary or delete the subscription to free the slot.

If credits run out after setup, PostHog skips the summary. PostHog still sends the insight or dashboard snapshot.

Test delivery

A test delivery sends a real message and creates a delivery record. It uses the same delivery pipeline as a scheduled delivery.

Creation defaults send_test_now to true. Set it to false unless the user approves an immediate delivery.

An update can also send immediately after these changes:

  • The recipient or destination changes.

  • The source insight, dashboard, tile selection, or prompt changes.

  • The prompt report display options change.

  • The Slack dashboard image layout changes.

  • The subscription resumes.

The MCP update tool cannot set send_test_now. Ask for approval before these changes. If the user does not approve delivery, do not make the update. A schedule-only or title-only update does not send by default.

  • The request returns 202 when PostHog queues the test.

  • The request returns 409 when the subscription is disabled.

  • The request returns 409 when another test for that subscription is active.

  • The team limit is 10 test deliveries per minute.

Manual tests do not change the recurring schedule. For since_last_sent AI windows, manual tests do not move the analysis anchor.

Wait between delivery checks and stop after two minutes. If delivery does not reach a final state, report the last state and suggest another check later.

Delivery history

Delivery history uses cursor pagination with 50 rows per page. The newest delivery appears first.

Each delivery records these details:

  • Trigger type: scheduled, manual, or target change.

  • Status: starting, completed, failed, or skipped.

  • Scheduled, created, updated, and finished times.

  • The safe destination snapshot.

  • Per-recipient status.

  • Exported asset IDs.

  • AI summary or AI prompt report fields when applicable.

Treat each stage as a separate check:

  1. The API accepts and returns the configuration.

  2. PostHog queues a delivery.

  3. The delivery reaches a terminal state.

  4. The user confirms external receipt when that proof is required.

Do not report success after only the first or second stage. MCP hides per-recipient results, so it cannot prove success for each recipient.

The list tool omits large report content and sensitive error payloads. Use the retrieve tool for one AI prompt report and its prompt snapshot. The MCP retrieve tool also omits errors, query diagnostics, and recipient data.

Failure and retry behavior

Transient failures retry inside the delivery run. Examples include a temporary network error, an email service error, or a Slack rate limit.

A transient failure does not disable the subscription. The next scheduled delivery still runs.

Permanent failures can automatically disable a subscription. Examples include these conditions:

  • A Slack integration is disconnected.

  • Slack channel or file permissions are revoked.

  • Microsoft Teams stops accepting the webhook.

  • An AI prompt or its original creator becomes invalid.

  • The organization revokes AI data processing approval.

PostHog sends the creator an in-app notification when possible. PostHog can also send a notification email.

Fix the permanent cause before you resume the subscription. An AI prompt subscription cannot resume if its original creator is unavailable. Create a new subscription under an active user in that case.

Ownership changes

The subscription creator owns failure and automatic-disable notifications. PostHog sends them only while the creator remains an active organization member.

An AI prompt report requires its original creator for query access and report generation. If that creator becomes unavailable, PostHog can automatically disable the subscription. Recreate it under an active user.

Insight and dashboard subscriptions can continue without an active creator. However, no former member receives their failure notifications. Review ownership when a subscription owner leaves the organization.

Delete, pause, and expiration

  • Pause with enabled: false when the user might resume later.

  • Resume with enabled: true after you fix any permanent failure.

  • Delete with posthog:subscriptions-delete when the user wants all future delivery to stop.

The MCP delete action is a one-way soft delete. An expired count or until_date produces no next delivery. Extend or remove the end condition before you resume an expired schedule.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
PostHog
Publisher
PostHog (Official)
Source
PostHog/skills · skills/omnibus/managing-subscriptions · commit a5d30e7
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by PostHog.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download managing-subscriptions.zip