Add Tally forms to WordPress without editing HTML. Tally (tally.so) suggests pasting its embed code into a Custom HTML block. That works, but you get no preview in the editor, every option means editing HTML by hand, and page builders need a different approach again. Embed for Tally gives you a Tall
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.6 and PHP 7.4.
SourceWordPress plugins · Nov 14, 2026
01 / Source details
Aboutthistool.
Add Tally forms to WordPress without editing HTML. Tally (tally.so) suggests pasting its embed code into a Custom HTML block. That works, but you get no preview in the editor, every option means editing HTML by hand, and page builders need a different approach again.
Embed for Tally gives you a Tally Form block that shows the real form in the editor, with every embed option in the block sidebar, a Tally Form widget for Elementor, and a [tally_form] shortcode for the classic editor, widgets, Divi, Bricks and other page builders. Show a Tally form inline, as a popup, or as a slide-in, without touching HTML.
How to embed a Tally form in WordPress
01In Tally, open your form, go to Share and copy the share link (it looks like https://tally.so/r/mRoDv3 ).
02In the WordPress editor, add the Tally Form block. Type “tally” in the block search to find it.
03Paste the link and click Embed . The live form appears in the editor.
04In the block sidebar, choose inline, popup or slide-in, adjust the options, and publish.
Using Elementor? Add the Tally Form widget, paste the link into Form link or ID and choose inline, popup or slide-in.
Using the classic editor or another page builder? Paste the shortcode instead: [tally_form id="mRoDv3"] . Go to Tally Forms → Shortcode to build one with your options and copy it.
After activation, a Get started page saves your form once, so every new block and widget starts with it, and creates a page with the block or the Elementor widget already in place.
Step by step, with screenshots: How to embed a Tally form in WordPress .
Features
Paste a form URL or ID. Share links, embed URLs and bare IDs all work.
Three display modes, chosen by picture in the block sidebar: on the page, a button that opens a popup (centred with overlay), or a slide-in (bottom corner).
Display options: hide title, transparent background, auto height, fixed height, left alignment.
Popup and slide-in options: button text, button style, popup width, emoji and auto close.
Open popups automatically: after a delay, when the visitor is about to leave (exit intent) or after scrolling part of the page. Show them only once per visitor, or not again after the form is submitted.
An Elementor widget with the same options, plus a Style tab for the popup button.
A shortcode builder: choose your options under Tally Forms → Shortcode and copy the finished shortcode.
Optional conversion tracking: report form views and submissions to the Google Analytics, Google Tag Manager and Meta Pixel tags already on your site.
Optional UTM memory: keep UTM parameters for the visit, so a form on a later page still receives them.
Optional “Load form” placeholder: nothing is requested from Tally until the visitor clicks.
Optional thank-you page: send visitors to a page of your choice after they submit.
Optional prefill for logged-in visitors: their name and email reach the form as hidden fields.
Optional AI assistant support: lets Claude, ChatGPT and other assistants add your Tally forms through WordPress Abilities (WordPress 6.9+).
Pass static hidden-field values from the block or shortcode.
Any number of forms on one page, each with its own settings.
Tally’s embed script loads only on pages where a form is rendered.
A Get started page that saves your form once and creates a page with the block or widget for you. A settings page with defaults for new forms, under its own Tally Forms menu. No dashboard notices.
Want your submissions in WordPress too?
Tally stores every response in your Tally account. Embed for Tally Pro , a paid add-on, also saves each submission on your site as it comes in, through Tally’s webhook (included in Tally’s free plan):
A list of submissions for each form, with search and read/unread status.
Excel and CSV export.
Email alerts with the answers; replying goes to the person who submitted.
An import of the responses you already have.
No Zapier or Make needed. Everything above stays free and works without it.
Why this plugin exists. I built it for a friend who runs their forms on Tally and wanted them in WordPress without pasting HTML. It worked well, so I’m sharing it here for anyone in the same spot.
External services
This plugin embeds forms from Tally (tally.so), a third-party form builder. It does not work without it.
On every page where a form is rendered, the plugin loads Tally’s embed script from https://tally.so/widgets/embed.js and embeds the form from https://tally.so/embed/{form-id} (inline) or https://tally.so/popup/{form-id} (popup and slide-in). Tally’s script also sends the current page path and query string to Tally so they can be stored in hidden fields. Anything a visitor types into the form is sent to Tally, not to your WordPress site.
The plugin’s own admin pages (Tally Forms) do not contact Tally, and the plugin does not require a Tally API key.
Optional features, all off by default (Tally Forms → Advanced):
Track form submissions. Tally’s script reports form views and submissions to the analytics tags already on your page: Google Tag Manager’s dataLayer and Meta Pixel ( fbq ). The plugin also sends a tally_form_submitted event to Google Analytics ( gtag ) when your site uses it. The events carry the form’s ID, name and page path, never the answers. The plugin adds no analytics tags of its own; what your own tags send, and to whom, is governed by those services.
Remember UTM parameters. UTM parameters in the page address are kept in the visitor’s browser ( sessionStorage , until the tab closes) and added to forms on later pages, so they reach Tally with the submission. To catch them on the page the visitor lands on, a few lines of inline JavaScript are added to every page of the site while this option is on.
Ask before loading forms. Inline forms show a placeholder, and nothing is requested from tally.so until the visitor clicks. The choice is remembered in the visitor’s browser for the visit ( sessionStorage ).
Fill in name and email for logged-in visitors. The display name and email address of a visitor who is logged in to your WordPress site are added to the form’s address as the hidden fields name and email , so Tally receives them with the submission. Nothing is passed for visitors who are not logged in, and a value set on the block or shortcode wins.
Thank-you page. After a submission, the visitor is sent to the page you choose on your own site. Nothing is sent to Tally.
Popups set to “Show only once per visitor” or “Don’t show again after submitting” are remembered by Tally’s script in the visitor’s browser ( localStorage ).
Tally’s terms and privacy policy: https://tally.so/help/terms-and-privacy Tally’s GDPR information: https://tally.so/help/gdpr
See it in action
Screenshots & previews.
The Tally Form block shows the live form in the editor, with its options in the block sidebar.Popup and slide-in options: button text and style, popup width, and when the form opens (on click, after a delay, on exit intent or after scrolling).A popup form on the front end, opened from a button on the page.The Tally Form widget in Elementor, with the live form in the editor.Tally Forms → Shortcode: choose your options and copy the finished shortcode.Tally Forms → Settings: the default form and site-wide defaults for every form.Tally Forms → Advanced: optional conversion tracking, UTM memory, the "Load form" placeholder, prefill for logged-in visitors, a thank-you page and AI assistant support.Tally Forms → Get started: save your form once and create a page with the block or the Elementor widget.
02 / Source details
Gettingstarted.
01Upload the plugin folder to /wp-content/plugins/ or install it from the Plugins screen.
02Activate the plugin. The Get started page opens: paste your form’s share link there if you like, and create a page with the block or the Elementor widget in one click.
03Or add the Tally Form block to any post or page (or the Tally Form widget in Elementor) and paste your form’s share link, or use the [tally_form id="..."] shortcode.
04Optionally set defaults under Tally Forms → Settings .
03 / Source details
Frequently asked questions.
Is this an official Tally plugin?
No. Embed for Tally is an independent plugin by Hendra Setiawan and is not affiliated with or endorsed by Tally. “Tally” is a trademark of its owner.
Do I need a Tally account?
Yes. Forms are built at tally.so; a free Tally account is enough.
Do I have to set anything up first?
No. The block and the widget work as soon as you paste a form link. The Get started page under the Tally Forms menu is a shortcut: save your form there once and every new block and widget starts with it, and a shortcode without an id uses it. Each block, widget or shortcode can still use a different form.
How do I add a Tally popup form to WordPress?
Add the Tally Form block, paste your form link, and choose Button that opens a popup in the block sidebar. Your page shows a button that opens the form in a centred popup. You can change the button text and style, open the popup automatically, and close it after the form is submitted. With the shortcode, use [tally_form id="mRoDv3" mode="popup" button_text="Contact us"] . More in How to add a Tally popup form to WordPress .
Can a popup open by itself?
Yes. Under Open the form , choose after a delay, when the visitor is about to leave (exit intent, desktop only) or after scrolling part of the page. You can show it only once per visitor, stop showing it after the form is submitted, and hide the button so the popup only opens automatically. With the shortcode: [tally_form id="mRoDv3" mode="popup" open_trigger="exit" show_once="1" hide_button="1"] . More in How to open a Tally popup on exit intent, on scroll or after a delay .
Can I show a Tally form as a slide-in?
Yes. Choose Slide-in in the corner in the block sidebar, or use mode="slidein" in the shortcode. The form opens in a small panel in the bottom corner of the page.
Where do I find the form ID?
In your form’s share link ( https://tally.so/r/mRoDv3 ), embed URL ( https://tally.so/embed/mRoDv3 ) or editor URL ( https://tally.so/forms/mRoDv3/edit ). You can paste any of those, or just the ID.
How do I embed a Tally form in Elementor, Divi or Bricks?
In Elementor, add the Tally Form widget. It has the same options as the block and a Style tab for the popup button. In Divi, Bricks and other builders, put [tally_form id="..."] in the builder’s shortcode, text or HTML element. Tally Forms → Shortcode builds the shortcode for you. The same shortcode works in the classic editor and in widgets. More in How to embed a Tally form in Elementor .
Can I pass hidden fields to my Tally form?
Yes. Add static values in the block’s Hidden fields panel (one key=value per line) or with hidden="source=website,campaign=spring" in the shortcode. The keys must match hidden fields in your Tally form. Tally also receives the page’s address and query parameters automatically.
Can the form be filled in for logged-in visitors?
Yes. Turn on Fill in name and email for logged-in visitors under Tally Forms → Advanced, and add hidden fields called name and email to your Tally form (or map them to questions with Tally’s prefill). Logged-in visitors then get their WordPress display name and email passed to the form; nothing is passed for other visitors.
What shortcode attributes are there?
You don’t need to learn them: Tally Forms → Shortcode writes the shortcode from the options you choose. For reference: id (required), mode ( inline , popup , slidein ), hide_title , transparent , auto_height , height (px), align ( left or center ), button_text , button_style ( inherit or basic ), open_trigger ( click , delay , exit , scroll ), open_delay (seconds), open_scroll (percent of the page), show_once , hide_after_submit , hide_button (automatic opening only), width (popup width in px), overlay (slide-in only), emoji , emoji_animation , auto_close (seconds), hidden ( key=value,key2=value2 ), title (accessible name of the form).
What if another plugin already uses the [tally_form] shortcode?
The plugin leaves the shortcode to that plugin and tells you so on the Shortcode page, so nothing on your site changes. The block and the Elementor widget keep working as usual.
Where do I find submissions?
In your Tally account. The plugin displays your forms; everything visitors send is stored by Tally. Open the form in Tally and go to its Submissions tab.
Can submissions be stored in WordPress too?
Yes, with Embed for Tally Pro, a paid add-on. Connect a Tally form once with a webhook (included in Tally’s free plan), and every new response is also saved on your site: a list per form with search, Excel and CSV export, email alerts, and an import of the responses you already have. Details and pricing: Embed for Tally Pro . Everything else in this plugin stays free and works without it.
Can I track Tally submissions in Google Analytics, Tag Manager or Meta Pixel?
Yes. Turn on Track form submissions under Tally Forms → Advanced. Form views and submissions are then reported to the tags already on your site. In Google Tag Manager, use a Custom Event trigger for Tally.FormSubmitted . Sites that use Google Analytics without Tag Manager receive a tally_form_submitted event. Meta Pixel receives Tally.FormSubmitted as a custom event. The plugin adds no tags of its own, so your site needs one of these installed. More in How to track Tally form submissions .
Can I send visitors to a thank-you page after they submit?
Yes. Enter the page’s address under Thank-you page on Tally Forms → Advanced. After a submission the visitor is sent there. This works for forms on the page, popups and slide-ins.
Do UTM parameters reach my form if the visitor lands on another page first?
Turn on Remember UTM parameters under Tally Forms → Advanced. The plugin keeps utm_source and the other UTM parameters for the visit and passes them to forms on later pages. Add hidden fields with the same names to your Tally form to store them. The values are kept in the visitor’s browser until the tab closes, so check whether your cookie notice should mention it. More in How to pass UTM parameters to a Tally form in WordPress .
Can I stop Tally loading until the visitor agrees?
Yes. Turn on Ask before loading forms under Tally Forms → Advanced. Inline forms then show a short message and a “Load form” button, and nothing is requested from Tally until the visitor clicks. Popups load when their button is clicked, and popups that open by themselves wait until a form has been loaded. You can change the message and the button label.
Does it work with AI assistants?
Yes, once you turn it on. It is off by default: go to Tally Forms → Advanced and turn on Let AI assistants use Embed for Tally . On WordPress 6.9 or newer, the plugin then registers three WordPress Abilities that assistants connected to your site (for example through WordPress’s MCP adapter) can use: get the embed code for a form, insert a form into a post or page, and list the posts that contain a form. They follow WordPress permissions: only users who can edit a post can add a form to it. Inserting a form never changes existing content, and it is saved as a normal revision.
If Elementor is active: recent Elementor versions switch the site’s MCP server off until you turn MCP on under Elementor → Elementor MCP. Turn it on there if your assistant can’t find the abilities.
Will this slow my site down?
No. Tally’s embed script is only loaded on pages where a form is actually rendered, and the form iframe is lazy-loaded. If you turn on Remember UTM parameters , a few lines of inline JavaScript are added to every page so the parameters are kept from the page the visitor lands on; no extra file is loaded.
Where is the source code for the block?
The block editor script in build/ is compiled from the files in src/ , which are included in the plugin. To rebuild it, run npm install and then npm run build in the plugin folder. The build uses @wordpress/scripts, as listed in package.json .
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati