# Custom/Self-Hosted – How to Track Tally.so Form Submissions

### Track Tally.so Form Submissions on Custom / Self‑Hosted Sites with Humblytics

Bring cookie‑free conversion analytics to any static or dynamic site—no extra JavaScript required beyond your existing Humblytics snippet.

***

#### Why Track Form Submissions?

* **Measure lead conversion** from landing pages
* **Compare form layouts** in split tests
* **Attribute revenue impact** to traffic sources or campaigns
* **Trigger funnel goals** inside Humblytics reports

***

#### Prerequisites

1. A live **Tally** form share URL (e.g., `https://tally.so/r/wo1EaP`).
2. The **Humblytics global tracking script** added once in your site’s `<head>`—for example in a shared layout, `_document.tsx`, or a base template.

> **Already seeing page‑view data in Humblytics?** Great—your script is installed and ready to log form events automatically.

***

#### Step‑by‑Step Setup

1. **Open Your Page Template**\
   Edit the HTML / JSX / Blade / ERB file where you want the form to appear.
2. **Paste the Tally Embed Snippet**\
   Insert the embed at the desired location:

   ```html
   <!-- Tally embed code begins -->
   <iframe data-tally-src="https://tally.so/embed/wo1EaP?alignLeft=1&hideTitle=1&transparentBackground=1&dynamicHeight=1" loading="lazy" width="100%" height="276" frameborder="0" marginheight="0" marginwidth="0" title="Contact form"></iframe>
   <script>
     var d=document,w="https://tally.so/widgets/embed.js",v=function(){
       "undefined"!=typeof Tally?Tally.loadEmbeds():d.querySelectorAll("iframe[data-tally-src]:not([src])")
       .forEach(function(e){e.src=e.dataset.tallySrc});
     };
     if("undefined"!=typeof Tally) v();
     else if(d.querySelector('script[src="'+w+'"]')==null){
       var s=d.createElement("script");
       s.src=w; s.onload=v; s.onerror=v; d.body.appendChild(s);
     }
   </script>
   <!-- Tally embed code ends -->
   ```

   *No extra tracking code is needed—the Humblytics script already listening in the parent window captures the submission.*
3. **Deploy / Publish**
   * **Static site**: Push to Git + redeploy (Netlify, Vercel, Cloudflare Pages, S3, etc.).
   * **Server‑rendered app**: Commit and redeploy via your CI/CD pipeline.
   * **cPanel / FTP**: Upload the updated file.

That’s all—Humblytics will start logging form completions instantly upon publish.

***

#### Viewing Submissions in Humblytics

1. Log into your **Humblytics** dashboard.
2. Click **Forms** in the left nav.
3. Find your form (usually matches the Tally form title).
4. Filter by **source**, **device**, or **date** to analyse performance or set the event as a **goal** in funnel analysis.

***

#### Troubleshooting

| Issue                  | Fix                                                                                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| No events showing      | Confirm the Humblytics script is present in `<head>` and your deploy didn’t strip it out.                                                         |
| Form embed not loading | Check that `widgets/embed.js` is allowed by your CSP headers.                                                                                     |
| Need custom properties | Inside the same template, call `window.Humblytics.track("tally-submit", { plan: "pro" })` from a `submit` callback if you require extra metadata. |

***

#### Quick Recap

1. **Embed Tally** snippet in your HTML.
2. **Deploy** site—global Humblytics script auto‑captures submissions.
3. **Analyse** in the Forms tab—slice, compare, optimise.
