Formbricks
The Open Source Qualtrics Alternative
Alternative to: typeform, surveymonkey, qualtrics, google forms
6.0.0
2026-09-21Overview
Formbricks 6.0 replaces the legacy authorization evaluator with AuthZed SpiceDB and ships Embedded Data V1. SpiceDB is now the sole authorization decision engine, with no runtime fallback, so a self-hosted upgrade runs inside a maintenance window and prepares its authorization graph before serving traffic.
Self-hosted installations upgrade directly from a supported v5 version — no bridge release is required. Follow Upgrade to Formbricks v6 for the procedure and Migration → v6 for the configuration changes. Tested upgrade pair for this release: — do not upgrade from a pair that is not listed here.
Under the release and maintenance policy, the 6.0 minor receives bug fixes and security fixes until 21 December 2026. After that date it receives no further fixes; move to a newer minor before then.
⚠️ Breaking changes
The upgrade procedure, prerequisites and rollback all live in Upgrade to Formbricks v6 and Migration → v6. Read those before you pull a 6.0 image. This list is the index of what changes, not the procedure.
Self-hosted deployment
- AuthZed SpiceDB is a required dependency and the sole authorization engine; protected operations fail closed when it is unavailable (#9089).
- Upgrades require explicit maintenance preparation; missing, disabled or weaker-consistency AuthZed settings now block server startup (#9280).
- Production Compose requires its own
POSTGRES_PASSWORDinstead of the sharedpostgrespassword (#8900). - Bundled PostgreSQL overrides are respected: app and SpiceDB follow the effective endpoint, role and database, so PVC-backed installs with a custom
postgresql.auth.username/.databasemust provision and migrate first (#9279). - Bundled Envoy CRDs move to Gateway API v1.5.1 (apply v1.8.4 CRDs first), and Envoy pod overrides move from
envoy.deployment.envoyGateway.podtoenvoy.deployment.pod(#9292). - Taxonomy deployments must declare
taxonomy.llm.contextWindowTokens, select a bundled model when several are enabled, complete their provider wiring, and move reliability settings from rawtaxonomy.env/hub.envkeys to the named fields; the selected-record cap default drops from 50,000 to 10,000 (#8954). DEFAULT_ORGANIZATION_IDandDEFAULT_ORGANIZATION_ROLEare renamed toAUTH_SSO_DEFAULT_ORGANIZATION_IDandAUTH_SSO_DEFAULT_ORGANIZATION_ROLE. Values are unchanged, and both are Enterprise SSO just-in-time provisioning only (#9157).
API and SDK contract
GET /api/v3/surveys:meta.hasArchivedis replaced bymeta.workspaceSurveyCount. On an unfiltered request,hasArchived === truebecomesworkspaceSurveyCount > totalCount(#8964).isSingleResponsePerEmailEnabledis removed from the Survey resource on Management API v1 and v2. It never enforced anything server-side, so only the field references need removing (#8975).POST /api/v3/surveysreturns422withinvalid_paramsinstead of500when a body passes the request schema but fails the write schema (#8991).- Contact-attribute-key management endpoints on v1 and v2 now return
403for organizations without the contacts entitlement. Entitled organizations see no change (#8955). - New declared embedded-data fields must match
^[a-z][a-z0-9_]*$, avoid reserved names (country,lang, …) and not collide across variables and hidden fields; existing names re-save unchanged. Response exports now use Title Case metadata headers, the full reserved catalog and numeric values (#9219).
Changed defaults and limits
- Workspaces per organization drop from 3 to 1 without an Enterprise license, and while a Cloud license cannot be confirmed. Existing workspaces stay accessible; only creating another is blocked (#9008).
- The organization invite quota becomes 50 recipients per organization per day, replacing 20 single invites plus 20 bulk operations (#9182).
- When Redis rejects a session read, the request falls back to PostgreSQL and succeeds instead of returning
500 FAILED_TO_GET_SESSION. Update alerts that expect the 500 (#9125).
Coming from 5.3 or earlier
- The bundled Valkey image moved from the Debian Valkey 8.1.1 amd64 child digest to the Alpine Valkey 8.1.9 multi-architecture index. This already shipped in 5.4.0, so it is only new to you if you are upgrading from 5.3 or earlier (#8986).
What’s Changed
🚀 Features
- feat: add enrichment status indicator for feedback records by @Dhruwang in https://github.com/formbricks/formbricks/pull/8845
- feat(helm): support Hub workload scheduling by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/8992
- feat: group question type by category in the block dropdowns (ENG-1777) by @jobenjada in https://github.com/formbricks/formbricks/pull/8979
- feat(helm): configure reliable taxonomy generation by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/8954
- feat: lower unlicensed self-hosted workspace cap to 1 by @mattinannt in https://github.com/formbricks/formbricks/pull/9008
- feat(navigation): rename Unify to Analyze and badge Act as Beta (ENG-2742) by @jobenjada in https://github.com/formbricks/formbricks/pull/9020
- feat(observability): record the outcome of every SSO callback by @xernobyl in https://github.com/formbricks/formbricks/pull/9026
- feat: add Formbricks logo to MCP OAuth consent page by @jobenjada in https://github.com/formbricks/formbricks/pull/8960
- feat: cut authorization over to AuthZed by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9089
- feat(unify): add “Re-import historic data” to Formbricks survey sources by @Dhruwang in https://github.com/formbricks/formbricks/pull/8987
- feat(auth): make the signed-out screens work on a phone by @itsjavi in https://github.com/formbricks/formbricks/pull/9074
- feat: let creators name survey blocks by @Dhruwang in https://github.com/formbricks/formbricks/pull/9103
- feat: pipe response and survey context into feedback record metadata by @xernobyl in https://github.com/formbricks/formbricks/pull/9111
- feat: allow hiding the default checkmark icon on ending cards (ENG-1787) by @Dhruwang in https://github.com/formbricks/formbricks/pull/9083
- feat(ai): add an AI UI kit and stream survey generation (ENG-1248) by @itsjavi in https://github.com/formbricks/formbricks/pull/9027
- feat: add Khmer and Nepali survey interface translations by @Dhruwang in https://github.com/formbricks/formbricks/pull/9117
- feat(charts): chart on the response context stored in record metadata [ENG-1555] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9134
- feat(sso): sync the IdP display name on every sign-in, and lock the name field for SSO users by @mattinannt in https://github.com/formbricks/formbricks/pull/9104
- feat(charts): split chart creation into AI and manual entry points (ENG-2782) by @itsjavi in https://github.com/formbricks/formbricks/pull/9071
- feat(surveys): stop new follow-ups where Workflows can replace them by @jobenjada in https://github.com/formbricks/formbricks/pull/8983
- feat(ai): unify the disabled AI smart tools prompt by @jobenjada in https://github.com/formbricks/formbricks/pull/9031
- feat: download all response attachments as a ZIP by @Dhruwang in https://github.com/formbricks/formbricks/pull/9109
- feat: relative date range validation for date questions by @Dhruwang in https://github.com/formbricks/formbricks/pull/9107
- feat(surveys): mirror widget placement for right-to-left languages by @jobenjada in https://github.com/formbricks/formbricks/pull/8977
- feat(workflows): report workflow usage to PostHog on cloud and to usage telemetry when self-hosted by @itsjavi in https://github.com/formbricks/formbricks/pull/9146
- feat: set the language new surveys are created in per workspace by @Dhruwang in https://github.com/formbricks/formbricks/pull/9122
- feat(surveys): add Rename to the survey list context menu by @Dhruwang in https://github.com/formbricks/formbricks/pull/9177
- feat(embedded-data): Embedded Data V1 — reserved fields, setEmbeddedData(), lifecycle events, typed exports by @pandeymangg in https://github.com/formbricks/formbricks/pull/9219
- feat: limit organization invite recipients per day by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9182
- feat(ai): apply the AI UI kit to example responses and taxonomy generation [ENG-3112] by @itsjavi in https://github.com/formbricks/formbricks/pull/9220
- feat: add explicit AuthZed maintenance preparation (backport #9265 to release/6.0) by @Dhruwang in https://github.com/formbricks/formbricks/pull/9280
🐛 Fixes
- fix(sso): write the canonical Account.issuer so Google sign-in stops looping by @xernobyl in https://github.com/formbricks/formbricks/pull/8951
- fix(auth): stop paging on client-caused OAuth state rejections (ENG-2471) by @xernobyl in https://github.com/formbricks/formbricks/pull/8933
- fix(email): show the organization’s custom logo in response notification emails by @jobenjada in https://github.com/formbricks/formbricks/pull/8965
- fix(survey-editor): say “window” instead of “modal” and stop backdrop clicks closing the translations modal by @jobenjada in https://github.com/formbricks/formbricks/pull/8968
- fix(role-management): guard against demoting the last organization owner [ENG-2479] by @Dhruwang in https://github.com/formbricks/formbricks/pull/8943
- fix: use multi-arch Valkey image by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/8986
- fix(surveys): stop announcing the public-API name placeholder on app surveys [ENG-2617] by @Dhruwang in https://github.com/formbricks/formbricks/pull/8982
- fix: correct vertical misalignment of type select in survey variables row by @jobenjada in https://github.com/formbricks/formbricks/pull/8963
- fix(sso): strip the live local auth factors on SSO recovery by @xernobyl in https://github.com/formbricks/formbricks/pull/8962
- fix(contacts): gate contact write paths and attribute-key APIs on the contacts entitlement [ENG-2295] by @pandeymangg in https://github.com/formbricks/formbricks/pull/8955
- fix(helm): support balanced background embedding requests by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9001
- fix: remove non-functional single-response-per-email feature (ENG-2294) by @jobenjada in https://github.com/formbricks/formbricks/pull/8975
- fix(segments): bound the survey-interaction filter IN queries (ENG-2305) by @pandeymangg in https://github.com/formbricks/formbricks/pull/8957
- fix(auth): hand the post-verification session only to the browser that signed up by @xernobyl in https://github.com/formbricks/formbricks/pull/8971
- fix(contacts): say workspace, not environment, in duplicate-attribute messages by @jobenjada in https://github.com/formbricks/formbricks/pull/9022
- fix(sso): stop Microsoft SSO failing when AZUREAD_TENANT_ID is a multi-tenant authority by @xernobyl in https://github.com/formbricks/formbricks/pull/9017
- fix(sso): stop generic OIDC failing when pointed at a Microsoft multi-tenant authority by @xernobyl in https://github.com/formbricks/formbricks/pull/9023
- fix: stop force-bolding new question headlines in the editor by @jobenjada in https://github.com/formbricks/formbricks/pull/8966
- fix(api): return the documented pagination meta from GET /management/responses by @jobenjada in https://github.com/formbricks/formbricks/pull/8981
- fix: keep MCP OAuth resource initialization recoverable by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9065
- fix(js-core): prefetch the surveys bundle instead of preloading it (ENG-2350) by @pandeymangg in https://github.com/formbricks/formbricks/pull/9009
- fix: keep smiley eye border color consistent on hover by @mattinannt in https://github.com/formbricks/formbricks/pull/9004
- fix(charts): stop NPS reading 0 on empty days and summing on a big number by @jobenjada in https://github.com/formbricks/formbricks/pull/9069
- fix(test): stop charging the route import to the first test’s timeout by @jobenjada in https://github.com/formbricks/formbricks/pull/9082
- fix(summary): align date filter presets with the chart date presets by @jobenjada in https://github.com/formbricks/formbricks/pull/8947
- fix(dashboards): clean up chart-builder confusion from lead gen survey review by @Dhruwang in https://github.com/formbricks/formbricks/pull/8973
- fix(billing): stop advertising spam protection on the Scale plan by @Dhruwang in https://github.com/formbricks/formbricks/pull/9088
- fix(nav): restrict trial upgrade banner to owner/manager roles by @jobenjada in https://github.com/formbricks/formbricks/pull/9099
- fix: align Add Block trigger content to the left edge by @Dhruwang in https://github.com/formbricks/formbricks/pull/9085
- fix(ui): unify the app’s date pickers on one react-day-picker v9 calendar by @Dhruwang in https://github.com/formbricks/formbricks/pull/9093
- fix(api-v3): return 422 instead of 500 for post-schema survey validation failures [ENG-2587] by @Dhruwang in https://github.com/formbricks/formbricks/pull/8991
- fix(workflows): make the rich-text editor look disabled when read-only by @itsjavi in https://github.com/formbricks/formbricks/pull/9097
- fix: map P2002 with unrecoverable fields to 409 on client response create by @xernobyl in https://github.com/formbricks/formbricks/pull/9095
- fix: match webhook URL denylist ranges as CIDRs (ENG-2554) by @xernobyl in https://github.com/formbricks/formbricks/pull/8946
- fix(settings): title each workspace settings tab with its own heading (ENG-2749) by @jobenjada in https://github.com/formbricks/formbricks/pull/9015
- fix(api): stop 500 on partial response updates that omit data by @pandeymangg in https://github.com/formbricks/formbricks/pull/9108
- fix(docker): generate unique postgresql credentials by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/8900
- fix(telemetry): send usage updates independently of survey traffic [ENG-2107] by @Dhruwang in https://github.com/formbricks/formbricks/pull/8929
- fix(notifications): name the workspace of each survey on the email alerts page by @itsjavi in https://github.com/formbricks/formbricks/pull/9114
- fix: fall back to database for Redis session errors by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9125
- fix: support Redis 6 verification token consumption by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9129
- fix: keep Redis connections alive by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9124
- fix(js-core): keep identified users through the legacy config migration [ENG-2480] by @pandeymangg in https://github.com/formbricks/formbricks/pull/9112
- fix: block 22 personal and burner email domains on Cloud signup by @jobenjada in https://github.com/formbricks/formbricks/pull/9113
- fix(workflows): resolve recall tokens in the trigger ending-card picker by @Dhruwang in https://github.com/formbricks/formbricks/pull/9119
- fix(survey-editor): hold the no-rules-means-text invariant and reject exponent input [ENG-2419] by @Dhruwang in https://github.com/formbricks/formbricks/pull/8993
- fix: doesNotEqual logic condition is always true for single-selection answers by @pandeymangg in https://github.com/formbricks/formbricks/pull/9000
- fix(survey-editor): stop warning about unsaved changes right after a save by @Dhruwang in https://github.com/formbricks/formbricks/pull/9120
- fix(security): bump mysql2 to 3.23.1 and patch 2 advisories [ENG-2825] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9132
- fix(sso): honour the IdP’s email_verified claim on SSO sign-up by @xernobyl in https://github.com/formbricks/formbricks/pull/9094
- fix: make CSAT and CES scale labels translatable by @jobenjada in https://github.com/formbricks/formbricks/pull/9136
- fix(ui): keep the combobox value centred in short filter chips by @jobenjada in https://github.com/formbricks/formbricks/pull/9143
- fix(surveys): persist example-response dataset in one transaction by @Dhruwang in https://github.com/formbricks/formbricks/pull/8995
- fix(security): bump fflate to 0.4.9, patch 1 advisory [ENG-2887] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9153
- fix(email): render RTL follow-up emails right-to-left [ENG-2593] by @itsjavi in https://github.com/formbricks/formbricks/pull/9150
- fix(surveys): treat archived as one more status, like every other by @jobenjada in https://github.com/formbricks/formbricks/pull/8964
- fix(security): bump 6 packages, patch 12 advisories [ENG-2821] +11 more by @Dhruwang in https://github.com/formbricks/formbricks/pull/9148
- fix(analysis): label AI example responses with the survey’s default language [ENG-2838] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9160
- fix(analysis): rename the Dashboards tab to Overview by @jobenjada in https://github.com/formbricks/formbricks/pull/9162
- fix(security): pin brace-expansion to close 2 advisories [ENG-2234] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9172
- fix(navigation): stop link prefetches from repointing the active workspace by @jobenjada in https://github.com/formbricks/formbricks/pull/9161
- fix(survey-link): preserve the requested language through the verify-email gate [ENG-2584] by @itsjavi in https://github.com/formbricks/formbricks/pull/9155
- fix(ui): move the last three native date inputs onto the unified picker by @jobenjada in https://github.com/formbricks/formbricks/pull/9170
- fix(surveys): style the scroll indicator as the primary action [ENG-1783] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9163
- fix(editor): seed the note when an ending card switches back to “Ending card” [ENG-2595] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9164
- fix(email): center the logo in Outlook by @xernobyl in https://github.com/formbricks/formbricks/pull/9128
- fix(contacts): order attribute upserts and retry on deadlock in the identify path by @xernobyl in https://github.com/formbricks/formbricks/pull/9110
- fix(security): rate-limit token-consuming auth actions by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9169
- fix(dashboards): place a duplicated chart in the next free slot and add an E shortcut for edit mode by @Dhruwang in https://github.com/formbricks/formbricks/pull/9141
- fix(lint): enable the react compiler-era react-hooks rules [ENG-2366] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9176
- fix: keep licensed entitlements during the license-server grace period by @mattinannt in https://github.com/formbricks/formbricks/pull/9029
- fix(auth): honor DEFAULT_ORGANIZATION_ID again on SSO sign-up [ENG-2089] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9157
- fix(survey-list): hold a survey out of the list until its removal settles [ENG-2583] by @itsjavi in https://github.com/formbricks/formbricks/pull/9165
- fix(survey-editor): explain why save is blocked without a trigger [ENG-2581] by @claude in https://github.com/formbricks/formbricks/pull/9173
- fix(security): bump 9 packages, patch 24 advisories [ENG-3091] +23 more by @Dhruwang in https://github.com/formbricks/formbricks/pull/9225
- fix: terminate AuthZed health CLI after failures by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9232
- fix(i18n): update Hungarian translations by @Dhruwang in https://github.com/formbricks/formbricks/pull/9234
- fix(survey-editor): stop a disabled unit select covering the rule delete button [ENG-3175] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9250
- fix(analysis): partition NPS and CSAT buckets exhaustively [ENG-3147] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9248
- fix(ui): cap combobox option list inside its popover [ENG-3158] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9243
- fix(survey-link): stop a mounted gate fighting the language picker [ENG-3160] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9246
- fix(charts): drop grouped rows no selected measure answers [ENG-3150] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9239
- fix(charts): keep one category label treatment on flipped bar charts [ENG-3148] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9240
- fix(charts): resolve option labels from every mapped question [ENG-3140] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9235
- fix: respect PostgreSQL Helm overrides (backport #9221 to release/6.0) by @Dhruwang in https://github.com/formbricks/formbricks/pull/9279
- fix(responses): bound the “Other” response filter instead of permuting every subset (backport #9253 to release/6.0) by @xernobyl in https://github.com/formbricks/formbricks/pull/9255
- fix(helm): support Gateway API v1.5 clusters (backport #9291 to release/6.0) by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9292
- fix(helm): backport Envoy review safeguards to 6.0 by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9295
🔧 Refactors
- refactor(workflows): drop the dead duplicate workflows list modules by @jobenjada in https://github.com/formbricks/formbricks/pull/8976
- refactor: extract a shared response-file URL collector [ENG-2547] by @pandeymangg in https://github.com/formbricks/formbricks/pull/9139
- refactor(i18n-utils): collapse dual entry points onto one built artifact [ENG-2306] by @Dhruwang in https://github.com/formbricks/formbricks/pull/9092
- refactor(charts): name the chart filter fields the way the Records table does by @jobenjada in https://github.com/formbricks/formbricks/pull/9187
📚 Docs
- docs: add accessibility and compatibility documentation by @jobenjada in https://github.com/formbricks/formbricks/pull/8819
- docs(agents): tell agents when an e2e test is warranted by @itsjavi in https://github.com/formbricks/formbricks/pull/8938
- docs: rewrite multi-language surveys page for the current translation flow by @jobenjada in https://github.com/formbricks/formbricks/pull/8978
- docs(pr-template): clarify what counts as a breaking change [ENG-2525] by @Dhruwang in https://github.com/formbricks/formbricks/pull/8931
- docs(self-hosting): correct the v5.4 migration guide’s database-migration claims by @xernobyl in https://github.com/formbricks/formbricks/pull/8984
- docs: add a guide for migrating surveys between instances by @jobenjada in https://github.com/formbricks/formbricks/pull/8980
- docs(pr-template): give the PR description a length budget by @mattinannt in https://github.com/formbricks/formbricks/pull/8974
- docs: mark Analyze and Act as Beta, and fix their nav paths (ENG-2742) by @jobenjada in https://github.com/formbricks/formbricks/pull/9021
- docs(surveys): re-shoot the question type pages from the current editor (ENG-2647) by @jobenjada in https://github.com/formbricks/formbricks/pull/9019
- docs: illustrate four pages that had no screenshots (ENG-2706) by @jobenjada in https://github.com/formbricks/formbricks/pull/9034
- docs(surveys): document the CSAT and CES question types (ENG-2718) by @jobenjada in https://github.com/formbricks/formbricks/pull/9035
- docs(surveys): document scheduling a survey’s publish and close dates (ENG-2722) by @jobenjada in https://github.com/formbricks/formbricks/pull/9037
- docs(surveys): document the survey Summary and Responses views (ENG-2721) by @jobenjada in https://github.com/formbricks/formbricks/pull/9039
- docs: delete images for a removed feature and a re-shot page (ENG-2723) by @jobenjada in https://github.com/formbricks/formbricks/pull/9040
- docs(surveys): re-shoot the percentage-of-users setting (ENG-2688) by @jobenjada in https://github.com/formbricks/formbricks/pull/9041
- docs(surveys): re-shoot conditional logic and recall (ENG-2663, ENG-2666) by @jobenjada in https://github.com/formbricks/formbricks/pull/9044
- docs(link-surveys): re-shoot the share modal (ENG-2682, ENG-2683, ENG-2709, ENG-2710) by @jobenjada in https://github.com/formbricks/formbricks/pull/9047
- docs(surveys): re-shoot validation rules and the media panel (ENG-2667, ENG-2690) by @jobenjada in https://github.com/formbricks/formbricks/pull/9049
- docs(platform): illustrate organization and team roles (ENG-2714, ENG-2715) by @jobenjada in https://github.com/formbricks/formbricks/pull/9051
- docs(surveys): re-shoot response metadata, source tracking and the question ID (ENG-2668, ENG-2676, ENG-2677) by @jobenjada in https://github.com/formbricks/formbricks/pull/9052
- docs(platform): document Contacts, attributes and segments (ENG-2720) by @jobenjada in https://github.com/formbricks/formbricks/pull/9038
- docs(surveys): re-shoot the variables editor section (ENG-2664) by @jobenjada in https://github.com/formbricks/formbricks/pull/9042
- docs(platform): re-shoot the styling theme page (ENG-2675) by @jobenjada in https://github.com/formbricks/formbricks/pull/9043
- docs(surveys): re-shoot actions, targeting and recontact (ENG-2684, ENG-2686, ENG-2707) by @jobenjada in https://github.com/formbricks/formbricks/pull/9045
- docs(link-surveys): re-shoot the PIN and email gates (ENG-2680, ENG-2681) by @jobenjada in https://github.com/formbricks/formbricks/pull/9048
- docs(surveys): re-shoot custom styling and email follow-ups (ENG-2669, ENG-2670) by @jobenjada in https://github.com/formbricks/formbricks/pull/9050
- docs(unify-feedback): add a “Creating your first charts” guide (ENG-2691) by @jobenjada in https://github.com/formbricks/formbricks/pull/9036
- docs(self-hosting): add the missing integrations overview page by @jobenjada in https://github.com/formbricks/formbricks/pull/9033
- docs: fix stale Mintlify CLI references and delete orphaned images (ENG-2751, ENG-2646) by @jobenjada in https://github.com/formbricks/formbricks/pull/9032
- docs(surveys): re-shoot the response option and hidden fields pages (ENG-2671) by @jobenjada in https://github.com/formbricks/formbricks/pull/9030
- docs(self-hosting): document ENTERPRISE_LICENSE_KEY and fix the docs README config file name by @jobenjada in https://github.com/formbricks/formbricks/pull/9013
- docs: stop promising Workflow actions that do not exist by @jobenjada in https://github.com/formbricks/formbricks/pull/9056
- docs: correct workspace scoping and settings paths (ENG-2637) by @jobenjada in https://github.com/formbricks/formbricks/pull/9012
- docs: correct UI references that no longer match the product by @jobenjada in https://github.com/formbricks/formbricks/pull/9014
- docs: move the SAML IdP guide out of Development and into Auth & SSO by @jobenjada in https://github.com/formbricks/formbricks/pull/9054
- docs: fix four internal links that go nowhere (ENG-2757) by @jobenjada in https://github.com/formbricks/formbricks/pull/9060
- docs(best-practices): rewrite the Feedback Box recipe (ENG-2726) by @jobenjada in https://github.com/formbricks/formbricks/pull/9061
- docs(surveys): note that spam protection is unavailable on EU Cloud by @jobenjada in https://github.com/formbricks/formbricks/pull/9068
- docs(best-practices): rewrite the quiz recipe and illustrate Google Reviews (ENG-2733, ENG-2736) by @jobenjada in https://github.com/formbricks/formbricks/pull/9079
- docs(best-practices): drop the fake action from the docs feedback recipe (ENG-2731) by @jobenjada in https://github.com/formbricks/formbricks/pull/9080
- docs(best-practices): rewrite five action-triggered recipes (ENG-2725, ENG-2727, ENG-2729, ENG-2730, ENG-2732) by @jobenjada in https://github.com/formbricks/formbricks/pull/9077
- docs(best-practices): rewrite three link-survey recipes (ENG-2728, ENG-2734, ENG-2735) by @jobenjada in https://github.com/formbricks/formbricks/pull/9078
- docs(integrations): desk review of the Zapier, n8n and Make guides (ENG-2737, ENG-2738, ENG-2739, ENG-2740) by @jobenjada in https://github.com/formbricks/formbricks/pull/9076
- docs: document the setEmail and setNonce SDK methods by @jobenjada in https://github.com/formbricks/formbricks/pull/9018
- docs: document LLM setup on the AI Features page by @jobenjada in https://github.com/formbricks/formbricks/pull/9121
- docs: start the web & app quickstart inside the product [ENG-2687] by @jobenjada in https://github.com/formbricks/formbricks/pull/9158
- docs: replace untrusted self-hosting minimum with real v6 sizing by @jobenjada in https://github.com/formbricks/formbricks/pull/9100
- docs(pr-template): stop folding screenshots into a collapsible by @jobenjada in https://github.com/formbricks/formbricks/pull/9180
- docs(api-v3): publish an unlisted v3 reference with the feedbackRecords gateway contract by @xernobyl in https://github.com/formbricks/formbricks/pull/9159
- docs: clarify Kubernetes v6 maintenance upgrades (backport #9282 to release/6.0) by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9283
⚙️ CI
- perf(ci): halve the e2e test step and drop the dead docker build cache by @Dhruwang in https://github.com/formbricks/formbricks/pull/8940
- ci: run Schemathesis contract tests for the v3 API on every PR by @xernobyl in https://github.com/formbricks/formbricks/pull/8942
- fix(ci): complete Linear releases independently of the Helm appVersion PR by @mattinannt in https://github.com/formbricks/formbricks/pull/9016
- ci: restore automated PR path labels by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9115
- feat(ci): add Apollo and Artemis branch deployments by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9185
- fix(ci): pull the MinIO images from quay.io instead of Docker Hub by @xernobyl in https://github.com/formbricks/formbricks/pull/9260
🧹 Chores
- chore: enable the eslint/typescript-eslint recommended baseline as warnings in apps/web (ENG-2264) by @pandeymangg in https://github.com/formbricks/formbricks/pull/8956
- chore: add type param to license/pricing request form links by @harshsbhat in https://github.com/formbricks/formbricks/pull/9066
- chore(a11y): scan the answered-state cards and script the manual screen-reader pass by @itsjavi in https://github.com/formbricks/formbricks/pull/9025
- chore(a11y): lint packages/surveys and packages/email with jsx-a11y by @itsjavi in https://github.com/formbricks/formbricks/pull/9073
- chore: resolve all eslint warnings across the workspace by @Dhruwang in https://github.com/formbricks/formbricks/pull/8704
- chore: resolve the open SonarQube findings and the remaining super-linear regexes by @xernobyl in https://github.com/formbricks/formbricks/pull/9090
- chore: add migration safety checks by @BhagyaAmarasinghe in https://github.com/formbricks/formbricks/pull/9102
- chore: Rename authorized apps -> MCP by @harshsbhat in https://github.com/formbricks/formbricks/pull/9140
- chore: fire a churn survey on plan downgrade by @harshsbhat in https://github.com/formbricks/formbricks/pull/9145
- chore(app-connection): rename to Web & Mobile SDK, rebuild page with install method cards, add API keys banner by @harshsbhat in https://github.com/formbricks/formbricks/pull/9135
- chore: A/B test shortening the Pro trial from 14 to 7 days by @harshsbhat in https://github.com/formbricks/formbricks/pull/9224
🔒 Security credits
Thanks to the following researchers, who reported issues fixed in this release through responsible disclosure:
- frandle331-yh — account pre-hijacking through
autoSignInAfterVerification, where the post-verification session was handed to a browser other than the one that signed up (#8971) - Arthur Chan (Ada Logics), with credit owed to Google and Ada Logics — the response filter on “Other” built every permutation of every subset and aborted the Node process (#9255)
Full Changelog: https://github.com/formbricks/formbricks/compare/5.4.3…6.0.0