Contact us form Snippets
14 min
you can embed a boom powered "contact us" form anywhere on your website when a visitor submits it, a lead is automatically created in boom under the lead source the form is tied to ( contact us by default) this page covers generating a link, embedding the form, customizing it, and connecting it to your ad & analytics tools 1\ create the form & get your link (one time) contact forms are created and managed in the boom portal under settings → crm → contact forms each form gets a permanent link it never changes and is safe to publish publicly; spam protection is built in from the form's menu, get embed code gives you a ready to paste snippet (recommended it already includes the conversion tracking helper described below) you can also generate a link scoped to part of your portfolio with the copy contact form button, which lists your lead sources that have the contact form option enabled (settings → crm → lead sources) where you click it what the link does portfolio page general form the visitor picks a property/unit freely a property page the property is pre selected and locked the visitor can't change it a unit page the property and unit are pre selected and locked (if your account uses the communities & sites naming, "property" reads as "community" and "unit" as "site" same behavior ) every link works both as a page you can share directly (in an email signature, an ad, a qr code) and as an iframe src for embedding 2\ embed it paste the embed code from get embed code , or use this snippet with your link the form is mobile responsive inside the frame keep the iframe at width 100% and cap it with max width the \<script> line is the conversion tracking bridge (see ad campaign & conversion tracking /#ad campaign conversion tracking ) the form works without it, but your tag manager won't see submissions \<your boom host> must be the same host as the form link 3\ customize (url parameters) append parameters to your link as a query string, e g https //\<your contact form link>?property ids=123,456\&submit label=get%20in%20touch parameter values default what it does property ids comma separated boom property ids, e g 123,456 all available properties limits the property dropdown to specific properties find a property's id in its page url in the portal (e g /properties/123 ) ids are validated against your account unknown ids are ignored submit label any text, max 40 chars (url encode spaces) submit custom text for the submit button show property true/false true show or hide the property picker set to false for a general contact form show unit true/false true show or hide the unit picker combine parameters with & always url encode values that contain spaces or special characters on property or unit scoped links (from the copy contact form button on a property/unit page) the scoped fields are pre selected and locked, so the picker parameters above don't apply to them the form also recognizes ad tracking parameters gclid , utm source , utm medium , utm campaign , utm term , utm content and stores them on the created lead you normally don't add these by hand the forwarding snippet below passes them through automatically when a visitor arrives from an ad sizing & styling the \<iframe> is your styling boundary you control its box; the form's interior uses boom's design recommended values property recommended notes width 100% fills the container max width 480 560px the form is single column; wider just adds whitespace height 720px with pickers, 560px when show property=false & show unit=false the frame doesn't auto resize set a height tall enough for the form so there's no inner scrollbar border none border radius optional, e g 12px cosmetic; clip the corners to match your site ad campaign & conversion tracking everything in this section is optional the form works without it set it up when your marketing team wants to know which ad campaigns produce leads, or wants to fire their own tags (meta pixel, ga4, anything routed through google tag manager) when a visitor submits the form because the form runs inside an iframe on your site, tracking needs a small amount of glue in two directions into the frame when a visitor lands on your page from an ad, the click id ( gclid ) and campaign tags ( utm ) are on your page's url the iframe cannot read them on its own; a one time snippet forwards them in out of the frame when a visitor submits the form, tools on your page (gtm, meta pixel) cannot see it happen the one line bridge script from §2 /#2 embed it carries the signal out you want what to set up know which google ads campaign each lead came from google ads integration in the boom portal + the forwarding snippet ( §a /#a forward ad click parameters into the iframe + §b /#b google ads conversion tracking ) see form submissions in your google analytics (ga4) ga4 integration in the portal no snippet changes ( §c /#c google analytics ga4 ) fire your own tags via gtm (meta pixel, etc ) on submission the bridge script + one gtm trigger ( §d /#d google tag manager meta pixel host page events ) a forward ad click parameters into the iframe browsers do not let an embedded iframe read the address bar of the page that embeds it so when a visitor arrives from an ad e g yoursite com/contact?gclid=cj0k \&utm campaign=spring boom never sees those parameters unless your page passes them along add the data boom embed attribute to the boom iframe, then paste this script once, anywhere after the iframe what it does copies gclid and utm from your page's url onto the iframe's url only when they are present boom stores them on the created lead and uses the gclid to report google ads conversions without this snippet, google ads conversion reporting falls back to google's own cookie matching (which only works some of the time), and campaign tags won't be attached to your leads in boom if you run any paid campaigns to pages with the form, add it b google ads conversion tracking if you run google ads campaigns, boom can report a real google ads conversion (not just an analytics event) when a visitor submits the form so your google ads dashboard shows "campaign x drove n form submissions" setup in google ads, find your conversion action's id and label goals → conversions → your conversion action → tag setup → "use google tag" you'll see a conversion id ( aw 123456789 ) and a conversion label in the boom portal → settings → integration → google ads → paste the conversion id and the contact form submitted label add the forwarding snippet from §a /#a forward ad click parameters into the iframe to your page strongly recommended, so the click id reaches the iframe and conversions attribute reliably the conversion is reported the moment the visitor successfully submits the form c google analytics (ga4) if you use ga4, boom can report form submissions straight into your ga4 property no snippet changes are needed setup boom portal → settings → integration → google analytics → paste your ga4 measurement id ( g xxxxxxxx ) once saved, a contact form submitted event appears in your ga4 property on every submission (if you also embed boom's listings pages, the full listings funnel is reported too see listings iframe snippets /listings iframe snippets ) d google tag manager / meta pixel (host page events) if you prefer to fire your own tags a meta pixel lead event, a ga4 tag in your own container, anything else in gtm the bridge script from §2 /#2 embed it notifies your page whenever the form is submitted \<your boom host> must be the same host as the form link in your iframe's src the script only trusts messages from its own origin loading it from a different host means events will be ignored on each successful submission the script pushes a custom event onto your data layer { event "boom form submitted", boom source "contact form submitted", boom partner slug "your company", boom property slug "maple court", // present when a property was selected/locked boom unit slug "unit 3b", // present when a unit was selected/locked boom lead id "idle x1y2z3" // present when a lead was created } in gtm triggers → new → custom event → event name boom form submitted , then attach your existing meta pixel / ga4 / other tag to that trigger optionally create data layer variables for the boom fields boom lead id works well as meta's eventid for deduplication no personal data ever crosses the frame boundary ids and slugs only, never a name, email, or phone number meta ads nothing needs to be forwarded into the iframe for meta your pixel and its fbp / fbc cookies live on your page, and this event lets gtm fire the pixel right there attribution happens on meta's side one script line covers all boom embeds on the page; it's safe to paste more than once (the script deduplicates itself) and safe on pages without gtm verifying your setup the easiest tool for this is google tag assistant https //tagassistant google com/ it shows every google tag and data layer event firing on a page in real time open your page with test parameters appended, e g yoursite com/contact?gclid=test123\&utm source=google\&utm campaign=test submit the form your own tags (gtm) connect tag assistant https //tagassistant google com/ to your page gtm preview mode does this automatically the boom form submitted event appears in the data layer with the identifiers attached; meta pixel helper shows the lead fired boom's ga4 & google ads tags they fire inside the iframe, so tag assistant on your page won't see them instead, connect tag assistant to the form link itself open it directly in a new tab with the same test parameters alternatively, in devtools → network a request to googleadservices com with send to=aw /\<label> confirms the ads conversion; it appears in google ads within a few hours ga4 contact form submitted appears in reports → realtime your boom contact can confirm the campaign tags ( gclid=test123 ) were stored on the resulting lead good to know leads land in boom under the form's lead source, with the property/unit the visitor selected (or the one the link was scoped to) spam protection (captcha + rate limiting) is automatic nothing to configure no property selected (or none currently available) → the form still submits as a general inquiry
