Adding a Contact Form to WordPress takes one paste into a Custom HTML block, no plugin required. The Helpdesky Contact Form drops in as one container div and one script tag, handles its own validation, and lands every submission in your Helpdesky inbox where you can reply by email.
This guide is for anonymous visitors. There is no login, no HMAC, no backend wiring. If you need a portal for signed in users instead, see the Ticket Center Setup Guide.
Why use this instead of yet another contact form plugin: 10 conversations a month are free on the Free plan, you avoid the usual SMTP and email plugin headaches, and the embed is one paste into a Custom HTML block. Replies from Helpdesky reach the visitor as a normal email.
Set Up Your Helpdesk
Open the Helpdesky dashboard and go to Contact Form in the sidebar. Copy the embed snippet at the top of the page. It already has your Helpdesk ID filled in:
<div id="hdh-contact-form"></div>
<script src="https://helpdesky.io/contact-form.js"
data-helpdesk-id="YOUR_HELPDESK_ID"></script>
While you are there, also enable messaging from the Messages sidebar item if you have not already. The toggle is at the top of the Messages page.
Add the Embed Code (Block Editor)
This works on both WordPress.com (Business plan or higher) and self hosted WordPress.
- Edit the page where you want the form (often Pages → Contact).
- Click the + button to add a new block and choose Custom HTML.
- Paste the embed snippet:
<div id="hdh-contact-form"></div>
<script src="https://helpdesky.io/contact-form.js"
data-helpdesk-id="YOUR_HELPDESK_ID"></script>
- Click Update to publish.
The Custom HTML block executes the script on the live page, so the form renders for visitors even though the editor preview shows only the raw markup.
Add the Embed Code (Theme File)
If you would rather hard code the form into a theme template (for example a custom page-contact.php), edit the template file and paste the snippet inside the WordPress the_content() area or directly into the template:
<?php /* Template Name: Contact */ get_header(); ?>
<main class="contact-page">
<h1>Get in touch</h1>
<div id="hdh-contact-form"></div>
<script src="https://helpdesky.io/contact-form.js"
data-helpdesk-id="YOUR_HELPDESK_ID"></script>
</main>
<?php get_footer(); ?>
Save the file, assign the template to your contact page, and the form will appear.
Test It
Visit your contact page in an incognito window (so caching plugins do not show a stale version), submit a test message, and confirm it appears in your Helpdesky Messages inbox. If you use a caching plugin like WP Rocket or W3 Total Cache, purge the cache after publishing.
A common pitfall: some security plugins (Wordfence, Sucuri) strip <script> tags from Custom HTML blocks unless the editor user has the unfiltered_html capability. Administrators have it by default; editors and authors do not.
Next Steps
Route inbound support email into the same helpdesk by following the Email Forwarding Setup Guide. If you start getting bot submissions, layer on bot protection with the Cloudflare Turnstile Setup Guide. When you ship a signed in dashboard, swap the public form for a Ticket Center so users can see their full conversation history.
Cool Features
A couple of small things you can turn on once the basic form is live.
- Hide outer border: drop the form into any section without a background or border so it blends straight into your branding. From the Contact Form page, open the Layout section and toggle Hide outer border.
- Cloudflare Turnstile spam protection: if your domain is on Cloudflare, you can protect the form from bots in a few clicks. Open your Cloudflare account, go to Turnstile, add your domain, generate the keys, and paste them into the Helpdesky Contact Form settings. Full walkthrough in the Cloudflare Turnstile Setup Guide.