adding-warehouse-perso…
Sync columns from a synced data warehouse table onto PostHog person or group properties, so warehouse data becomes usable anywhere person and group properties…
Create and manage PostHog reminders — private, human-paced nudges that fire as in-app notifications on a schedule, optionally linked to a PostHog resource. Use when the user says "remind me to…", wants a one-off or recurring nudge (daily/weekly/monthly/yearly, a cron schedule,
$ npx -y skills add PostHog/ai-plugin --skill managing-reminders --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/managing-remindersContext preview
The summary Claude sees to decide when to auto-load this skill.
Create and manage PostHog reminders — private, human-paced nudges that fire as in-app notifications on a schedule, optionally linked to a PostHog resource. Use when the user says "remind me to…", wants a one-off or recurring nudge (daily/weekly/monthly/yearly, a cron schedule,
name: managing-reminders description: 'Create and manage PostHog reminders — private, human-paced nudges that fire as in-app notifications on a schedule, optionally linked to a PostHog resource. Use when the user says "remind me to…", wants a one-off or recurring nudge (daily/weekly/monthly/yearly, a cron schedule, or a specific date/time), wants to be reminded to look at a dashboard, insight, experiment, feature flag, survey, notebook, replay, or error, or wants to list, change, or cancel their reminders. Covers when to pick a reminder over an alert or subscription, the one-off vs recurring vs cron schedule field mappings, timezones, and attaching a resource.'
This skill guides you through creating and managing PostHog reminders. A reminder is a private, human-paced nudge to yourself: it fires an in-app notification on a schedule, with no condition attached. It can optionally link to a PostHog resource.
Use this skill when the user:
These three look similar but solve different jobs. Pick the right one:
in-app notification on a schedule ("remind me to review the launch dashboard every Monday"). If the user says **"remind me to…"**, it is a reminder.
**threshold or anomaly condition is met** ("tell me if signups drop below 100").
email, Slack, or webhook ("email me this dashboard every morning").
If there is a condition to evaluate, it is an alert. If there is an export to deliver, it is a subscription. If it is just a timed nudge to a person, it is a reminder.
A reminder uses **exactly one** of `scheduled_at`, `recurrence_interval`, or `cron_expression`. Providing zero or more than one is rejected.
Set `scheduled_at` to a future ISO 8601 timestamp. The reminder fires once, then becomes `completed`.
| User says | Field | | --------------------------- | ---------------------------------------------------- | | "remind me tomorrow at 3pm" | `scheduled_at: <tomorrow 15:00 in the user's tz>` | | "remind me on Jan 5 at 9am" | `scheduled_at: "2026-01-05T09:00:00"` (+ `timezone`) |
Set `recurrence_interval` to one of `daily`, `weekly`, `monthly`, `yearly`.
| User says | Field | | ------------- | -------------------------------- | | "every day" | `recurrence_interval: "daily"` | | "every week" | `recurrence_interval: "weekly"` | | "every month" | `recurrence_interval: "monthly"` | | "every year" | `recurrence_interval: "yearly"` |
Set `cron_expression` to a 5-field cron string (`min hour day-of-month month day-of-week`) when the cadence is a specific weekday or time the presets can't express.
| User says | Field | | -------------------------- | --------------------------------- | | "every Monday at 9am" | `cron_expression: "0 9 * * 1"` | | "weekdays at 8:30" | `cron_expression: "30 8 * * 1-5"` | | "1st of the month at noon" | `cron_expression: "0 12 1 * *"` |
A reminder may fire **at most 4 times per day** — a more frequent cron (e.g. hourly) is rejected.
Always pass `timezone` as the user's IANA zone (e.g. `"America/New_York"`) when you know it, so wall-clock times like "9am" resolve to the right moment. If omitted, it defaults to the **project timezone**. Cron and preset schedules resolve in this zone; `scheduled_at` is an absolute instant, so include its offset or rely on the same zone.
To link the reminder to a PostHog object, set `resource_type` and `resource_id` **together**. The fired notification deep-links to that object. The resource must already exist in the project.
| `resource_type` | `resource_id` is the… | | ---------------- | --------------------- | | `dashboard` | numeric id | | `insight` | short_id | | `experiment` | numeric id | | `feature_flag` | numeric id | | `survey` | id | | `notebook` | short_id | | `replay` | session_id | | `error_tracking` | issue id |
Resolve the id first if the user gives you a name or URL (e.g. fetch the insight to get its `short_id`). Omit both fields for a standalone reminder with no linked resource.
users never see them.
(then it becomes `completed`).
when reporting on a user's reminders.
(changing the schedule recomputes the next fire time)
Official PostHog plugin for AI clients. Access PostHog products directly from your AI coding tool.
Repo: PostHog/ai-plugin
Sync columns from a synced data warehouse table onto PostHog person or group properties, so warehouse data becomes usable anywhere person and group properties…
Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top spenders, expensive users, per-user…
Analyze session replay patterns across experiment variants to understand user behavior differences. Use when the user wants to see how users interact with…
Split a completed PostHog task run into activity records — what the agent tried, whether it worked, what blocked it — and record each one through the…
Assesses what a page's heatmap is telling you and recommends concrete changes. Pulls click / rageclick / scroll-depth data for a URL, names the hot elements by…
Audit every endpoint in a PostHog project for staleness, failed materialisations, and unused materialised versions. Use when the user asks "what endpoints can…