# Bookly UTM Tracking Integration

Track UTM parameters and campaign attribution with Bookly UTM Tracking Integration and HandL UTM Grabber on WordPress.

# Track UTMs in Bookly Appointments

## UTM attribution overview

Booking pages are a common leak in attribution. Bookly UTM Tracking Integration needs UTMs on the booking URL when the appointment is confirmed. UTM Grabber already captured them on your WordPress site. Here is how to carry them over.

Bookly runs inside WordPress, which is a good fit for UTM Grabber. Attribution still needs hidden fields on the booking form so the values save with the appointment.

### Steps

### Setup

1. Use Bookly custom fields or a small code snippet to add hidden inputs for utm\_source, utm\_campaign, gclid, etc.
2. UTM Grabber populates them when the customer opens your booking page
3. Check the appointment in Bookly admin to confirm fields saved

Add `utm-out` to any button or link that opens your Bookly UTM Tracking Integration scheduler. [utm-out class guide](https://docs.utmgrabber.com/books/102-getting-started-for-handl-utm-grabber-v3/page/appending-utms-to-the-buttons-using-class-name-attributes-selectively).

For a thank-you page webhook flow, read [Send Bookly Booking UTMs via Webhook](https://docs.utmgrabber.com/books/bookly-integration/page/end-ookly-ooking-s-via-ebhook).

# Send Bookly Booking UTMs via Webhook

## UTM attribution overview

This walkthrough covers sending full UTM Grabber data from Bookly UTM Tracking Integration to Zapier, Make, or your own webhook. Handy when you need gclid, fbclid, first-touch fields, or custom params alongside the lead or order.

Start with the [main Bookly UTM Tracking Integration setup guide](https://docs.utmgrabber.com/books/bookly-integration/page/rack-s-in-ookly-ppointments) if you have not wired hidden fields or checkout links yet.

### When a webhook makes sense

Native fields in Bookly UTM Tracking Integration often stop at basic UTMs. A webhook lets you push everything UTM Grabber stores without trimming values or losing click IDs.

### Thank-you page script

Paste this on your confirmation page. Swap in your Zapier or Make hook URL.

```
<script>
var qvars = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
    qvars[key] = decodeURIComponent(value.replace(/\+/g, ' '));
});
qvars = Object.assign({}, (typeof handl_utm !== 'undefined' ? handl_utm : {}), qvars);
setTimeout(function() {
    var data = new URLSearchParams(qvars).toString();
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open('GET', 'https://hooks.zapier.com/hooks/catch/YOUR_ID/YOUR_KEY/?' + data, true);
    xmlHttp.send(null);
}, 1000);
</script>
```

Full pattern explained in [Triggering Zapier on Thank you Page](https://docs.utmgrabber.com/books/zapier-integration/page/triggering-zapier-on-thank-you-page).

### Quick Zapier / Make checklist

1. Create a Catch Hook trigger and copy the URL
2. Run a test conversion with UTMs in the landing URL
3. Confirm gclid, utm\_source, and email (if present) show up in the payload
4. Map fields into your CRM or spreadsheet

Parameter reference: [Native WP Shortcodes](https://docs.utmgrabber.com/books/102-getting-started-for-handl-utm-grabber-v3/page/native-wp-shortcodes).

Make users: see [Make Integromat integration](https://docs.utmgrabber.com/books/integromat-integration).