Omnibus
Skill 39 of 200
Creates and launches PostHog surveys through MCP, including NPS/CSAT popovers, hosted feedback forms, and headless surveys.
4 minutes · 774 words · 5 sections
Install
npx skills add PostHog/skills --skill creating-surveysnpx skills add PostHog/skills/plugin marketplace add PostHog/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Create a useful draft from the user’s goal, then verify its audience and delivery before launch. The workflow can run through MCP without opening the survey editor.
Infer the name, purpose, and questions from the request. Ask only for missing information that changes who receives the survey or how it is delivered.
| User’s goal | Survey type | Delivery requirement |
|---|---|---|
| Feedback inside an app | popover | A supported PostHog SDK with surveys enabled |
| Always-available feedback button | widget | SDK support and a widget configuration |
| A shareable hosted form | external_survey | A hosted survey link; no in-app targeting |
| A custom form built in application code | api | The app renders questions and captures survey events |
Prefer one to three questions unless the user requests more. Use a rating plus an optional open question for NPS/CSAT, or choice questions with at least two choices. Inspect the current tool schema for question types, scales, branching, and translations instead of guessing their JSON shapes. Minimal starting points are in examples (opens in a new tab).
Survey names, questions, and appearance text are public content. Do not copy private customer details into them without making that visibility clear first.
conditions for URL, event, device, and linked-flag-variant conditions.
Resolve existing event and flag identifiers before using them. A URL condition
does not define a person or cohort audience.targeting_flag_filters.groups[].properties[] for person, group, or cohort
targeting. Groups are alternative rules; properties within a group must all
match. Preserve the intended audience when translating the request.external_survey) do not use in-app display conditions or
targeting flags. Do not attach those fields to a hosted form.appearance unless customization is needed. whiteLabel: true requires
the organization’s white-labelling entitlement (Enterprise). Do not infer it
from a request for custom colors. Verify entitlement before setting it.
surveyPopupDelaySeconds must be non-negative.null as a
substitute for omission; question fields and nested objects have different
nullability rules.Call posthog:survey-create with the resolved configuration. Omit start_date
for a draft. If the user already asked for immediate launch, continue through
the readiness check and launch without asking for the same approval again.
Keep the returned survey id. Subsequent survey tools use id, not a question
ID, feature flag ID, or survey name.
Read the saved survey with posthog:survey-get. Review the questions, type,
audience, schedule, response limit, and branding with the user. Show the MCP
survey app when the client supports it; otherwise give a concise text review.
Always include the returned _posthogUrl. A saved configuration is not evidence
that an in-app popup has rendered successfully.
For changes, call posthog:survey-update after fetching the saved survey.
Questions, conditions, appearance, targeting, and translations may replace
nested values. Preserve unchanged fields and existing question IDs, which link
questions to collected responses. Omit IDs only for new questions.
Before posthog:survey-launch, confirm:
end_date in the past. If reopening an
existing survey, unarchive it or clear/extend its end date only as authorized.api surveys, the application implementation handles display and event
capture. Creating and launching the definition does not implement that code.Use posthog:survey-launch with id, then verify the returned state. Report
whether the survey is a draft, launched, or awaiting an SDK/setup step. For hosted
forms, return a verified public form URL when available; _posthogUrl is the
management page and is not a respondent link.
Use posthog:survey-stats or posthog:surveys-responses-list to check subsequent
activity. Zero responses immediately after launch do not prove delivery failed.
For a survey that should have been shown, follow debugging-surveys.
Read the validation field and reason before retrying. For appearance failures, check branding entitlement and the supplied appearance fields. For targeting failures, verify cohort support and rule structure. Preserve requested behavior when correcting inputs; explain any change that affects the audience or branding.
Creation is not idempotent. After a timeout or uncertain result, use
posthog:surveys-get-all to find and inspect a possible existing draft before
retrying creation. A matching name alone is not proof that it is the same survey.
Creates and launches PostHog surveys through MCP, including NPS/CSAT popovers, hosted feedback forms, and headless surveys. Guides survey type selection, audience targeting, draft review, and launch readiness. Use when asked to create a survey or form, or before calling survey-create. For investigating an existing survey's delivery or responses, use debugging-surveys instead.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 24 September 2026.SKILL.md, not by matching a directory convention. 2 distinct layouts observed: skills/omnibus/*/SKILL.md, skills/posthog/all/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by PostHog, declaring 6 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./PostHog/skills.md, and each skill at its own .md URL.1 file · 1 KB
Everything this skill ships beside its prose. All of it is set here, as a subchapter of skill 39.
Documentation the agent loads on demand, rather than up front.