Typeform | Engage your audience with beautiful forms, surveys, and quizzes


“Oh, goodie. An online form,” said no one, ever.

But what if you could change that?

With Typeform, you can make forms and surveys people actually like filling in. The one-question-at-a-time interface feels more like a conversation—and gets better responses as a result. Get more leads, grow your contact list, collect feedback, and much more.

Customize your typeform’s font, color scheme, background, and images to match your brand—and embed it seamlessly into your web page. Typeforms look and feel great on any device.

This plugin is for embedding forms created over at Typeform. You can’t edit them or see responses inside WordPress.
This plugin is incompatible with WordPress 4 together with the Gutenberg editor. If you need support for WordPress 4, please use version 0.7.5.


Forms, surveys, quizzes, polls. Shopping carts? Yep, those too.
* Build conversations, one question at a time
* Add Logic Jumps to personalize and segment your audience
* Create engaging quizzes with the Calculator
* Show people tailored endings based on their answers
* Move your data to the tools you love with our 30+ integrations (Slack, Hubspot, Mailchimp, monday.com, Dropbox, Zoho, etc)


  • Pick one of our many templates or start from scratch
  • Customize the look of your typeform, from button and text color to GIFs and background images.


  • Simple dashboard showing visits, responses, completion rate, and average completion time
  • Stylish web report with PDF export
  • Export responses to CSV and XLSX


Make sense of your data in the tools you already use:
* Move leads into your CRM or marketing tools such as Mailchimp, Hubspot, ActiveCampaign, Keap by Infusionsoft, Zoho, Pipedrive, and more.
* Send responses to Slack, Airtable, monday.com, and more—so you can collaborate with your team in real time.
* Ask for files and have them automatically appear in Dropbox or Box.

See all our integrations


Using this plugin you agree to the Typeform terms and conditions. You can read more about how we manage user data at Typeform on our website.
When installing this plugin, we do not track any of your personal data, we only track some anonymous information about the usage of the plugin, in order to give to the wordpress community a better User Experience.


  • Embed your typeform on a page or post


This plugin provides 1 block.

  • Typeform


  1. Add the plugin folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Add your typeforms through the “Add block” button that has been added to post/pages editor aside of the Media Button
  4. Add your typeform’s URL, or click on “Select form”, and configure it from the options available


  • How can I add a typeform to my content?
    • Click the “Add block“ button, which opens a search field. Look for “Typeform” from your installed blocks. Once added, click on your new block and then click the Gear icon to open your Typeform block settings. Paste the URL of the typeform you want to embed, or click to select a typeform, and then on the right sidebar you can change the custom settings for your typeform.
      You can edit the different types (widget, sidetab, popover, popup) and the various settings. This plugin shares most of the settings that are included in the typeform share section of our website.
    • This plugin is incompatible with WordPress 4. If you need support for WordPress 4, please download version 0.7.5

For more documentation head to our developer portal
If you need help head to our community


14 June 2023
"This plugin is incompatible with WordPress 4 and the new Gutenberg editor." Gutenberg has been in WP core since december 2018... When is it not considered "new" anymore?
28 May 2020
For a premium service, this plugin is very buggy. For example: * The "height" field to set form height will not accept a typed number, so you have to sit there and hold down a button to scroll through all possible numbers one by one to select the desired height * The "my typeforms" only shows a list of the most recent 10 forms created on typeform * The directions for including an older form are not clear, but it appears to work to get the form URL and put it there * The form styling does not appear to follow the CSS of the site at all It hasn't been updated in 8 months. I guess they don't care?
Read all 15 reviews

Contributors and Developers

“Typeform | Engage your audience with beautiful forms, surveys, and quizzes” is open source software. The following people have contributed to this plugin.


“Typeform | Engage your audience with beautiful forms, surveys, and quizzes” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “Typeform | Engage your audience with beautiful forms, surveys, and quizzes” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change Log


  • feat(TU-8158): Bump release tag
  • Bump release tag


  • feat(TU-8158): Update WP banners (#147)
  • chore [PR-41] use central ci-standards-check template (#144)
  • docs(badges): add standard badges to README [PR-41] (#143)


  • feat(TU-3923): UX improvements (#140)
  • Fix(TU-637): add classname to wrapper, fix autoClose (#136)


  • fix(TU-643): Add tracking in options (#135)
  • chore(deps): bump @typeform/frontend-canary-release-engine (#129)
  • chore(deps): bump @typeform/embed-react from 1.17.0 to 3.8.0 (#127)
  • chore(deps): bump @typeform/js-tracking from 17.1.2 to 17.5.0 (#134)


  • feat(TU-574): Refactor getSnippet to bump @typeform/share-utils from 1.8.3 to 3.1.0 (#124)


  • fix(TU-295): Add attribution_user_id to mandatory props on init (#125)


  • feat(TU-574): Add dependabot, config linter (#126)


  • fix(NOJIRA-123): update ci-standard-checks pull_request triggers (#120)


  • fix(TU-295): Add tracking to design settings (#122)


  • fix(TU-295): Update tracking to edit url and select form (#123)


  • fix(TU-295): Add tracking permanent event to select form (#121)


  • fix(REACH-521): Fix readme typo (#119)
  • Feat(REACH-452): Release Typeform WordPress plugin (#111)


  • fix(REACH-634): Add type checking to webpack (#118)
  • chore(REACH-568): Update CODEOWNERS file (#116)
  • chore(REACH-542): Use deployment event action (#114)


  • fix(REACH-504): Update wp4 + gutenberg warning (#112)
  • Feat(REACH-451): Fix cypress tests (#110)
  • chore(SP-1664): remove docker credentials (#106)


  • fix(REACH-241): Button background color (#105)


  • fix(REACH-210): trigger release (#104)
  • chore(REACH-210): Skip errors when updating packages in release (#103)


  • fix(REACH-210): Remove unused launchdarkly sdk (#102)
  • chore(REACH-52): Update CODEOWNERS file (#101)


  • fix: package.json to reduce vulnerabilities (#100)


  • fix(DIST-1975): Tracking initialization with infered consent (#99)
  • chore(DIST-1671): Remove wp shortcode (#97)
  • chore(DIST-1673): Add more unit tests (#96)
  • chore(DIST-1695): Remove init job from release Github action (#95)
  • chore(DIST-1765): Update README


  • fix(DIST-1765): Add screenshots


  • fix(DIST-1765): Update last tested WP version in README


  • fix(DIST-1765): Add full changelog to README


  • fix(DIST-1765): Update README screenshots


  • fix(DIST-1765): Update README and changelog


  • feat(DIST-1765): Update README


  • feat(DIST-1765): Update README
  • chore(DIST-1984): Bump jarvis to 17.1.1 (#93)


  • fix(DIST-1961): Update tested wordpress version readme
  • chore(DIST-1961): Update tested wordpress version readme (#92)
  • chore(DIST-1970): Bump node to v16 and up github actions (#91)


  • fix(DIST-1866): Unskip tests (#90)


  • fix(DIST-1960): Fix wrong background color (#89)
  • chore(DIST-1861): Bump js-tracking v15 (#88)
  • chore(DIST-1861): Major bump js-tracking (#87)
  • build(NOJIRA-1234): migrate GHA runners to ephemeral (#86)


  • fix(DIST-1749): Update readme file and fix deploy to SVN (#85)
  • test(DIST-1718): Remove Applitools, add E2E tests (#84)


  • fix(DIST-1713): Fix widget size (#82)
  • build: move functional tests to ephemeral runners (#83)


  • fix(DIST-1697): Fix release job
  • fix(DIST-1697): Fix deploy job to svn (#80)
  • fix(DIST-1697): Fix deploy script version
  • fix(DIST-1697): Update tested version
  • fix(DIST-1697): Fix readme link (#79)


  • fix(DIST-969): Fix deploy script commit message
  • fix(DIST-969): Update deploy script
  • fix(DIST-969): Fixed deploy script
  • feat(DIST-969): New Release
  • feat(DIST-969): New Release
  • feat(DIST-969): New Release
  • feat(DIST-969): New release (#78)
  • feat(DIST-969): Update release script (#76)


  • fix(DIST-968): Update release process


  • fix(DIST-968): Update readme
  • chore(DIST-968): Update readme notes and release process (#75)


  • chore(DIST-1683): Move github env vars
  • chore(DIST-969): Update node version (#74)
  • chore(DIST-969): Update npm registry (#73)
  • chore(DIST-969): Test release (#71)
  • fix(DIST-1688): Fix default height for widget (#69)
  • fix(DIST-1691): Updated copy (#68)
  • DIST-680 disable preview for custom launch options (#61)
  • fix(DIST-1691): Fixed a typo (#67)
  • fix(DIST-1690): Updated typeform placeholder alignment and copy (#66)
  • fix(DIST-1687): Updated embed sdk github link (#65)
  • fix(DIST-1684): Fix sidetab and popover on mobile or sidebar open (#64)
  • fix(DIST-1685): Change Advanced to Options label (#63)
  • fix(DIST-1681): Remove clear button from color palettes (#62)
  • feat(DIST-1678): Fix focus on popover and sidetab (#59)
  • Dist 1679 fix button text for sidetab (#60)
  • fix(DIST-1677): Make widget block selectable (#57)
  • feat(DIST-1682): Tracking update (#58)
  • fix(DIST-1676): Fix sidebar overlapping options panel (#56)
  • DIST-1661 design settings popover sidetab (#55)
  • feat(DIST-1662): Advanced options (#54)
  • feat(DIST-1660): Design tab for popup and slider (#53)
  • fix(DIST-123): Fix webpack config (#52)
  • fix(DIST-123): Fix webpack config (#51)
  • feat(DIST-938): Add tracking (#47)
  • fix(DIST-967): Popover and sidetab editor side (#49)
  • feat(DIST-1666): Clean build and release files (#50)
  • feat(DIST-1659): Mode select and basic design tab (#48)
  • chore(DIST-967): Dev script fix and readme update
  • chore(DIST-1561): Run integration tests (#46)
  • feat(DIST-935): Save form and show it in post (#44)
  • Feat/dist 934 form url (#43)
  • Dist 966 implement url change (#42)
  • feat(DIST-934): Form url (#41)
  • feat(DIST-965): Preview component (#40)
  • feat(DIST-941): Use LaunchDarkly (#39)
  • chore: Readme changes
  • chore: workflow test
  • chore: Cypress cache
  • chore: Comment condition
  • chore: Workflow on comment (#37)
  • chore(DIST-1560): Remove actions on GH runners (#36)
  • chore(DIST-1560): Add commit-msg, pre-commit and pre-push checks (#34)
  • feat(DIST-970): Create staging website (#28)
  • feat(DIST-1555): Add login functionality (#30)
  • chore(DIST-933): stage file deploy action (#32)
  • test(DIST-964): Add functional tests (#29)
  • chore: action secrets
  • chore: semantic release changes
  • chore: action branch change (#25)
  • test changes to main (#23)