Connect Your Contact Form to a CRM: Step-by-Step Guide

After some trial and error, I found a reliable way to connect my website contact form directly to my CRM. Below are the tools and steps I used to accomplish this:

  • Genesis CRM or TwentyTen CRM installed in its own WordPress instance (mine runs at crm.billerickson.net).
  • Registered Users Only plugin on the CRM install to keep the CRM private.
  • Gravity Forms plus the Gravity Forms + Custom Post Types add-on installed on the CRM site.

Build the form

Create a contact form in Gravity Forms with all fields you want to capture. Gravity Forms can create posts from form submissions, and the GF + Custom Post Types plugin lets you map form fields to post meta and taxonomy terms. Below are the fields I mapped in my form:

  • Your Name — mapped to the Post Title. This field also carries post-level data. I publish the generated post as a Draft (I publish after responding) in the “Prospect” category.
  • Your Email — mapped to a post meta field (_crm_client_email).
  • Your Phone — mapped to a post meta field (_crm_client_phone).
  • URL — mapped to a post meta field (_crm_client_url).
  • How did you find me — mapped to a dropdown populated from a Source taxonomy.
  • Message — mapped to the Post Body.
  • Hidden Sales Status — a hidden field mapped to post meta (_crm_sales_status) with a default of “Inquiry”.
  • Hidden Inquiry Date — a hidden field mapped to post meta (_crm_date_inquiry) set to the current date.

Gravity Forms does not natively allow a hidden field to set a taxonomy value, so I added a small snippet to functions.php on the CRM install to set a default taxonomy term when none is provided. This ensures the Point of Contact taxonomy defaults to “Email Form” when the post is created.

Create the contact page on the CRM

After building the form, create a Contact page on the CRM site (Pages > Add New) and insert the Gravity Forms shortcode for that form. Because I only want the form itself and not the surrounding site chrome, I created a minimal page template (for TwentyTen and Genesis CRM) that strips out headers, sidebars, and footers so the page can be embedded cleanly elsewhere.

Allow public access to the form page

With the Registered Users Only plugin active, the CRM is private by default. The plugin provides a filter that lets you make specific pages publicly accessible. Add a small function to your CRM theme’s functions.php to whitelist the contact form page slug so visitors can reach the form without logging in.

Embed the CRM form on your public site

On your main website, create a Contact page and embed the stripped-down CRM contact page using an iframe. Because the CRM page is pared down and publicly accessible, the iframe displays only the form and any styling you choose to include for a seamless appearance.

When visitors submit the form, Gravity Forms creates a Draft post in the CRM with the mapped meta and taxonomy values. You can review submissions in the CRM, respond to prospects, and publish entries when appropriate. This workflow keeps lead capture centralized and makes managing inquiries straightforward.

This integration saved me time and kept my CRM organized while I was traveling and managing client requests remotely.