Capture eventRecord a product-analytics event against a person, with any properties you want to break it down by later. The person is named by a distinct ID - your own user ID, an email, anything stable - and PostHog creates them the first time it sees one. Events are queued for ingestion rather than stored on the spot, so an event captured here takes a moment to appear in PostHog and will not reliably be found by a 'List events' step immediately afterwards.
Set person propertiesSave details onto a person's profile in PostHog - their email, plan, company, anything you want to segment by later. Sent as PostHog's '$identify' event, which is how its own documentation says to write person properties. 'Properties' overwrite what is already there; 'Set once properties' fill in only what is still missing, so a signup date set on the first run is not overwritten on the second. Like any capture, this is queued rather than applied on the spot.
List eventsRead recent raw events, newest first, optionally narrowed to one event name, one person, or a time window. PostHog looks at the last 24 hours unless you give it one. This is the quick way to see what is arriving; for counting, grouping or joining anything, use 'Run a query' instead - PostHog considers this endpoint superseded by it.
Run a queryRun SQL (HogQL) over your PostHog data and get the rows back - counts, funnels, joins between events and people, anything the fixed list actions cannot express. Returns 'results' as a list of rows with 'columns' naming what is in each position. Use {placeholders} with the Values field rather than pasting a value into the SQL, so text carried over from an earlier step cannot be read as query syntax.
List peopleFind the people PostHog has seen in this project, with the properties saved against each one and every distinct ID they have been seen under. Search by email, by distinct ID, or by any text across their name, email and IDs.
List projectsList the PostHog projects this connection can see, with the numeric ID every other PostHog action needs. PostHog does not show that ID anywhere in its own settings screens, so this is how a workflow finds one - and the only action here that does not itself take a project. The project's write key is deliberately left out of the result: this integration uses it internally when it captures an event, and a workflow has no reason to carry a credential around.
List insightsList the saved charts in this project - their names, descriptions, tags and which dashboards they sit on. Filter by kind, by dashboard, by tag, or to your favourites. Returns each insight's definition rather than its numbers; use 'Run a query' to compute a figure.
List feature flagsList the project's feature flags with their keys, targeting and whether each is on. Filter by keyword, by exact key, by kind, or by tag. 'State' also offers Stale, which is PostHog's own judgement about a flag that has been fully rolled out or unused long enough to be worth removing. Archived flags are left out unless you ask for them.
Get feature flagRead one feature flag by its ID: its key and description, whether it is on, its full targeting - release conditions, rollout percentages and variants - its tags, and whether anything else in PostHog depends on it, such as an experiment or a session replay setting.
Create feature flagAdd a feature flag your code can check by key. Give it a rollout percentage to release it to a share of people, or a list of variants to split them between versions. With no targeting it is created for everyone. Anything more elaborate - property filters, cohort targeting - goes in the advanced Targeting field as PostHog's own filters object.
Update feature flagChange a feature flag: its key or description, its rollout percentage or variants, its tags, or whether it is archived. Anything left blank keeps the value it already had. To turn a flag on or off without touching anything else, use 'Enable or disable feature flag' instead.
Enable or disable feature flagTurn a feature flag on or off and change nothing else - targeting, variants, payloads and tags are all left as they are. PostHog refuses to enable an archived flag, and refuses to disable one that another active flag depends on. Turning a flag off stops it evaluating for everyone, including any experiment or session replay setting attached to it.
Delete feature flagDelete a feature flag. PostHog does not erase flags - it marks them deleted, which stops them being evaluated and takes them out of the flag list, and frees the key for reuse. Returns the flag as it was.
List annotationsList the notes pinned to moments on this project's charts - releases, incidents, pricing changes - with what each says, the moment it marks, and which charts it shows on.
Create annotationMark a moment on this project's charts with a note, so a step in a graph has an explanation beside it - a deploy, a campaign, an outage. Shows across the whole project by default; you can pin it to one dashboard or one insight instead.
Update annotationChange an annotation's text, the moment it marks, where it shows, or its emoji. Anything left blank keeps the value it already had.
Delete annotationDelete an annotation, taking its marker off every chart it showed on. PostHog does not erase annotations - it marks them deleted. Returns the annotation as it was.
List dashboardsList this project's dashboards with their names, descriptions, tags and whether each is pinned. Use it to find the ID of the dashboard an annotation or an insight filter should point at.
Create dashboardCreate a dashboard in this project. A new one starts empty; name an existing dashboard to duplicate and PostHog copies its charts across, which is how to stand up a per-customer or per-release board from a template you keep by hand.
Delete dashboardDelete a dashboard. PostHog does not erase dashboards - it marks them deleted. The charts on it survive by default and stay findable in the insight list; turn on 'Delete its charts too' to remove the ones that were only on this dashboard. Returns the dashboard as it was.