It took us a few weeks to finish this big release but it's finally here: Formbricks 2.0! 🚀
Formbricks 2.0 packs a lot of big new features and improvements:
- Multi-language surveys 🉐
- Website Surveys 🖥️
- New Matrix & Address Question Types 🤓
- Native Slack Integration 🔌
- Advanced targeting 🎯
- Full support of surveying on public facing websites 🌍
- Custom styling 💅
- New signature look for surveys (animated cards) 😍
- New Formbricks app UI 🔥
- and tons of other features and improvements ✅
We have also rewritten @formbricks/js
so that you can benefit from new features faster and don't have to update your application code when we add new features to Formbricks.
Please be sure to upgrade to @formbricks/js
version 2.0.0
to take advantage of all these new features. After that, the SDK will automatically pull new updates from the cloud or your self-hosted instance, so there is no need to keep the two in sync.
Here is the full migration guide for self-hosting and @formbricks/js
🚀
A big thank you to the whole Formbricks team and all the contributors who made this release possible! 🥳🙏
What's Changed
- feat: Multi Language Surveys by @Dhruwang in #1630
- feat: Slack Integration by @Palanikannan1437 in #2125
- feat: Formbricks 2.0 App Redesign by @jobenjada in #2581
- feat: Matrix question by @Dhruwang in #2271
- feat: New Question Type Address by @KapadiaNaitik in #2162
- feat: Ability to invite team members in bulk by @anikdhabal in #2424
- feat: Add Server-side Filtering to the Surveys Page by @gupta-piyush19 in #2277
- feat: Add load more button to MultipleChoiceSummary component by @gupta-piyush19 in #2449
- feat: Add response filtering for meta data by @gupta-piyush19 in #2363
- feat: Added Unsplash API for image backgrounds by @vidhikapadia2799 in #2341
- feat: Advanced Custom Styling by @pandeymangg in #2182
- feat: Branded Link Surveys by @manish-singh-bisht in #2262
- feat: Enable Prefilling of several values by @gupta-piyush19 in #2482
- feat: Keyboard usability for matrix and date question by @Dhruwang in #2514
- feat: No responses due to filter state by @gupta-piyush19 in #2283
- feat: Refactor Triggers and combine Action Classes and Inline Triggers by @gupta-piyush19 in #2562
- feat: Revamp @formbricks/js package by @ShubhamPalriwala in #2299
- feat: Slick card look by @Dhruwang in #2531
- feat: Video upload by @Dhruwang in #2351
- feat: add onboarding responses to user profiling in posthog by @ShubhamPalriwala in #2261
- feat: add sentry sourcemap support to Dockerfile by @mattinannt in #2401
- feat: add survey schedule option by @mattinannt in #2386
- feat: added logic to show tags for viewer role by @gupta-piyush19 in #2454
- feat: adds enterprise license check by @gupta-piyush19 in #2431
- feat: allow manual trigger of kamal deploy by @ShubhamPalriwala in #2430
- feat: display URL in metadata by @nik132-eng in #2329
- feat: docsearch integration by @ShubhamPalriwala in #2392
- feat: download-able feedback icons by @SiR-PENt in #2276
- feat: expiresAt should only update on sync in js package by @ShubhamPalriwala in #2253
- feat: full docs revamp for Formbricks 2.0 by @ShubhamPalriwala in #2568
- feat: kamal setup workflow by @ShubhamPalriwala in #2380
- feat: load surveys package on-the-fly in web-app by @ShubhamPalriwala in #2375
- feat: profile image remove by @Dhruwang in #2411
- feat: redirect user to email verification page if not done by @ShubhamPalriwala in #2241
- feat: revamp docker compose with new env vars & formatting by @ShubhamPalriwala in #2583
- feat: same origin header & password max length to prevent clickjackingg & DoS by @ShubhamPalriwala in #2370
- feat: shared cache for next caching by @ShubhamPalriwala in #2426
- feat: use redis for rate limiting & next caching to resolve memory issues by @ShubhamPalriwala in #2078
- feat: website surveys by @pandeymangg in #2423
- fix: /api/js endpoint to work on vercel by @ShubhamPalriwala in #2242
- fix: Adds Thank You card loading by @gupta-piyush19 in #2585
- fix: Allow all URL-safe characters in hidden field Id/ questionId by @Dhruwang in #2250
- fix: Backwards compatibility for js/sync endpoint by @pandeymangg in #2516
- fix: Button label issue by @Dhruwang in #2549
- fix: Call-to-Action statistics do not work as expected by @gupta-piyush19 in #2457
- fix: Docs footer link points to blog by @jonas-hoebenreich in #2306
- fix: Fix S3 credential checks by @jonas-hoebenreich in #2513
- fix: Formbricks client route check errors if not enabled by @mattinannt in #2311
- fix: Implement validation to remove cyclic logic by @nik132-eng in #2417
- fix: Increase multilanguage data migration timeout by @mattinannt in #2278
- fix: Matrix Validation UX by @Dhruwang in #2551
- fix: Max height by @Dhruwang in #2477
- fix: Mobile height inconsistencies by @jobenjada in #2540
- fix: Note formatting in Link Survey Data Prefilling by @uttam-li in #2548
- fix: OpenTextSummary no longer has "Show more" button by @gupta-piyush19 in #2427
- fix: Pass only supported properties of
account
toCreateAccount
by @gdnmhr in #2445 - fix: incorrect format note in multiple best practices page by @frank-mendez in #2595
- fix: Preview for short urls by @KapadiaNaitik in #2174
- fix: Profile image showing incorrectly by @nik132-eng in #2307
- fix: Remove unnecessary loader in actions tab by @parthgupta118 in #2371
- fix: Skip onboarding for invite by @Dhruwang in #2246
- fix: Summary view proportions don't add up to 100% by @gupta-piyush19 in #2314
- fix: Survey editor tweaks by @Dhruwang in #2378
- fix: The play() request was interrupted by a call to pause() by @Dhruwang in #2465
- fix: Unsaved Changes Confirm even though changes were saved by @gupta-piyush19 in #2372
- fix: add MIGRATE_DATABASE_URL in kamal configs by @ShubhamPalriwala in #2407
- fix: add nextauth url to kamal by @ShubhamPalriwala in #2272
- fix: add option to disable rate limiting in kamal by @ShubhamPalriwala in #2274
- fix: add route change listener to formbricks integration by @mattinannt in #2309
- fix: added migration script to fix range in rating question by @Dhruwang in #2298
- fix: adds action to response meta by @pandeymangg in #2381
- fix: adds loader in the thankyou card while response submission by @gupta-piyush19 in #2520
- fix: adds try...catch in all services by @gupta-piyush19 in #2494
- fix: adds z-index to modal close button by @pandeymangg in #2570
- fix: allow survey embeddings on other webpages by @ShubhamPalriwala in #2420
- fix: animated backgrounds in ios to not have video controls by @ShubhamPalriwala in #2251
- fix: app surveys internal server error by @pandeymangg in #2556
- fix: archived attribute issue by @Dhruwang in #2275
- fix: attribute service not filtering by environmentId by @pandeymangg in #2534
- fix: background tabs fixed by @pandeymangg in #2348
- fix: bundles api package with js-core by @pandeymangg in #2557
- fix: cached functions return dates as strings by @mattinannt in #2541
- fix: caching issue with translate surveys by @mattinannt in #2288
- fix: change title by @jobenjada in #2367
- fix: close survey button on centerd app survey by @Dhruwang in #2587
- fix: command dropdown breaking by @gupta-piyush19 in #2249
- fix: complex surveys not accepted in surveys management endpoint by @mattinannt in #2282
- fix: constants timeframe in seconds by @ShubhamPalriwala in #2434
- fix: curl example message for
update survey by id
by @BeMoreDog in #2405 - fix: data migration and cleanup for userId attribute by @pandeymangg in #2400
- fix: date format transformation causing sync error by @mattinannt in #2366
- fix: discard formatting on paste in Lexical Editor by @Dhruwang in #2315
- fix: display count in summary only updating with new response by @mattinannt in #2524
- fix: display create leads to survey rerender by @mattinannt in #2505
- fix: displayPercentage not working for inline-triggers by @mattinannt in #2340
- fix: e2e tests, make welcomeCard.headline optional, remove console logs by @ShubhamPalriwala in #2374
- fix: email embed styles by @pandeymangg in #2554
- fix: email previews to only be sent to the session user by @ShubhamPalriwala in #2473
- fix: error due to unused import by @mattinannt in #2368
- fix: first question preview in share embed modal by @gupta-piyush19 in #2284
- fix: fix on-the-fly url trigger always triggering IMPORTANT by @jonas-hoebenreich in #2256
- fix:
shortUrl
not defined in metadata by @pandeymangg in #2468 - fix: e2e tests by @gupta-piyush19 in #2259
- fix: fixes form submission by @pandeymangg in #2492
- fix: fixes js package proxy by @pandeymangg in #2490
- fix: fixes segment not getting saved bug by @pandeymangg in #2527
- fix: fixes survey createdBy filtering for null createdBy surveys by @gupta-piyush19 in #2577
- fix: global error handling js package by @pandeymangg in #2553
- fix: handles errors while loading surveys pkg by @pandeymangg in #2489
- fix: hide logo in branded link surveys by @ShubhamPalriwala in #2412
- fix: hotfix for sync validation errors by @pandeymangg in #2364
- fix: image uploader on welcome card by @Dhruwang in #2576
- fix: integration and prefiling bug fix by @gupta-piyush19 in #2293
- fix: issues in multi select, rating and nps questions by @Dhruwang in #2397
- fix: legacy survey redirect links from formbricks.com by @mattinannt in #2491
- fix: legal footer overlaying buttons on smaller screens by @mattinannt in #2484
- fix: link blocking next buttons on mobile by @jobenjada in #2530
- fix: logo alignment in email by @Dhruwang in #2566
- fix: make delete button more visible by @gupta-piyush19 in #2291
- fix: migration for default translation missing in welcome card headline by @Dhruwang in #2533
- fix: migration image name in migration docs by @mattinannt in #2346
- fix: nps and rating validation issue with mls by @Dhruwang in #2419
- fix: onboarding issues by @Dhruwang in #2373
- fix: overlay & close on click outside to work in survey preview by @ShubhamPalriwala in #2436
- fix: packages api endpoint on vercel by @mattinannt in #2359
- fix: picture select grow icon opacity issue by @Dhruwang in #2504
- fix: polyfills structuredClone by @pandeymangg in #2478
- fix: product cache revalidation on product create by @pandeymangg in #2538
- fix: product logo is received null from prisma if not set by @ShubhamPalriwala in #2404
- fix: pull surveys package from formbricks cloud as a hotfix by @mattinannt in #2292
- fix: question header in csv export by @mattinannt in #2331
- fix: rate-limiting when using a load balancer by @mattinannt in #2501
- fix: recall not working on thank you card by @Dhruwang in #2586
- fix: recall not working with prefilled answer by @Dhruwang in #2379
- fix: recall parsing in emails and improvements in response pipeline by @Dhruwang in #2187
- fix: relative image urls by @pandeymangg in #2369
- fix: remove double team switch, update route by @jobenjada in #2479
- fix: remove duplicate text by @jobenjada in #2257
- fix: remove or reupload avatar bug by @gupta-piyush19 in #2502
- fix: remove survey autofocus in iframe, improve accessibility of question components by @mattinannt in #2345
- fix: remove the --save flag because deprecated by @jobenjada in #2474
- fix: remove unused description in createAttribute, updateSurvey to use params surveyId by @ShubhamPalriwala in #2515
- fix: rename airbase to airtable by @ShubhamPalriwala in #2470
- fix: replace survey link display div with input field by @Dhruwang in #2389
- fix: responsiveness of loading skeleton on link survey by @jobenjada in #2396
- fix: restored Add logo button by @Dhruwang in #2537
- fix: s3-cache by @pandeymangg in #2362
- fix: secure send embed preview email action & show env id in email body by @ShubhamPalriwala in #2475
- fix: segment filtering by @pandeymangg in #2561
- fix: show responses in summary that doesn't fit the current schema by @Dhruwang in #2318
- fix: single select logic issue by @Dhruwang in #2458
- fix: single survey card rerenders on tag add or delete by @gupta-piyush19 in #2461
- fix: skip onboarding on invite and signup refactoring by @gupta-piyush19 in #2507
- fix: sort team and product names alphabetically by @Dhruwang in #2316
- fix: structured clone by @pandeymangg in #2483
- fix: subheader validation by @Dhruwang in #2303
- fix: survey jumping to 3rd question with prefilling by @Dhruwang in #2421
- fix: survey switch by @pandeymangg in #2547
- fix: translate survey and migration script by @Dhruwang in #2290
- fix: tweak saving UI by @jobenjada in #2546
- fix: types resolution by @pandeymangg in #2563
- fix: ui tweaks slack integration by @jobenjada in #2428
- fix: unable to create actionClass due to caching issue by @mattinannt in #2297
- fix: unable to save legacy surveys by @mattinannt in #2280
- fix: update EE docs by @jobenjada in #2545
- fix: use MIGRATE_DB_URL if present else fallback to DB_URL in migrate:deploy by @ShubhamPalriwala in #2390
- fix: use localized question headline when extracting survey details by @gcascio in #2569
- fix: userId migration by @pandeymangg in #2453
- fix: vercel build by @pandeymangg in #2394
- fix: verify email issues by @Dhruwang in #2281
- fix: webhooks page breaking with too many surveys in the env by @mattinannt in #2322
- chore(deps-dev): bump the npm_and_yarn group across 1 directory with 1 update by @dependabot in #2387
- chore: Adds save button to question Id input and refactored survey saving/publishing logic by @Dhruwang in #2488
- chore: Author page for blog (SEO) by @jobenjada in #2356
- chore: Blog post on remove branding by @jobenjada in #2300
- chore: Improve Debug messages by @jonas-hoebenreich in #2451
- chore: Link survey mobile view by @Dhruwang in #2493
- chore: Simpler Sharing Page by @gupta-piyush19 in #2361
- chore: Transactional emails to React email by @Dhruwang in #2349
- chore: add Google disclosure to privacy policy by @jobenjada in #2466
- chore: add advanced targeting blog and remove /learn by @jobenjada in #2324
- chore: add forth instance to kamal by @mattinannt in #2503
- chore: add link by @jobenjada in #2333
- chore: add logo and upgrade footer by @jobenjada in #2519
- chore: add v2.0 data migration by @mattinannt in #2589
- chore: add yarn command by @jobenjada in #2472
- chore: change caching revalidation interval to 30minutes by @mattinannt in #2286
- chore: cleanup css console log by @ShubhamPalriwala in #2376
- chore: deactivate github action crons by @mattinannt in #2498
- chore: handle people and attributes separately to improve sync performance by @mattinannt in #2476
- chore: improve validation error logging by @mattinannt in #2471
- chore: increase healthcheck max_attempts in kamal by @mattinannt in #2398
- chore: increase tooltip area by @jobenjada in #2544
- chore: limit remote action storing to userTargeting plan by @mattinannt in #2521
- chore: made logos move by @jobenjada in #2560
- chore: move attributes to people page by @mattinannt in #2555
- chore: move cacheHandler to a conditional import by @mattinannt in #2463
- chore: npm version upgrade 1.7.1 by @mattinannt in #2285
- chore: optimize sync endpoint performance by @mattinannt in #2342
- chore: remove auto capping surveys by @jobenjada in #2395
- chore: remove passing of build time env vars by @ShubhamPalriwala in #2236
- chore: remove service-revalidation-interval to simplify caching by @mattinannt in #2539
- chore: removes date picker question code from sideloading by @pandeymangg in #2550
- chore: replace img with next Image by @jobenjada in #2558
- chore: run kamal setup behind load balancer with multiple instances by @mattinannt in #2480
- chore: simplify action indexes by @mattinannt in #2442
- chore: small improvements by @jonas-hoebenreich in #2254
- chore: update npm dependencies by @mattinannt in #2591
- chore: use CUSTOM_CACHE_DISABLED env instead of vercel specific env by @mattinannt in #2462
- chore: use attributeClass service in updateAttributes function by @mattinannt in #2535
- docs: (Client Action API) mention user should pre-exist when creating action by @ShubhamPalriwala in #2500
- docs: 1.6 upgrade docs & mitigation steps by @laurens in #2295
- docs: Add RepoCloud Deployment Option for Formbricks by @cosark in #2266
- docs: Event listener doc by @Dhruwang in #2432
- docs: Missing new line in management API docs by @pandeyprashant123-coder in #2506
- docs: Quickstart frontend developer docs by @jonas-hoebenreich in #2510
- docs: add email embedding of link surveys by @ShubhamPalriwala in #2532
- docs: advanced targeting by @ShubhamPalriwala in #2325
- docs: fix S3_BUCKET_NAME env var in docs by @ShubhamPalriwala in #2448
- docs: improve google sheet integration self hosting guide by @ShubhamPalriwala in #2536
- docs: in-app & link multi language surveys by @ShubhamPalriwala in #2350
- docs: metadata for responses by @ShubhamPalriwala in #2522
- docs: recontact options for in-app surveys by @ShubhamPalriwala in #2525
- docs: revamp API docs with Postman by @ShubhamPalriwala in #2518
- docs: startAt for Link Surveys by @ShubhamPalriwala in #2317
- docs: wsl2 postgres side note on local setup by @ShubhamPalriwala in #2347
New Contributors
- @cosark made their first contribution in #2266
- @nik132-eng made their first contribution in #2307
- @laurens made their first contribution in #2295
- @manish-singh-bisht made their first contribution in #2262
- @BeMoreDog made their first contribution in #2405
- @parthgupta118 made their first contribution in #2371
- @gdnmhr made their first contribution in #2445
- @anikdhabal made their first contribution in #2424
- @pandeyprashant123-coder made their first contribution in #2506
- @vidhikapadia2799 made their first contribution in #2341
- @uttam-li made their first contribution in #2548
- @gcascio made their first contribution in #2569
Full Changelog: v1.6.1...v2.0.0