# Tracking conversion start time, end time, and duration - HandL UTM Grabber Guide

## UTM attribution overview

This guide explains Tracking conversion start time, end time, and duration - HandL UTM Grabber Guide. It helps you capture UTM source, medium, campaign, term, content, click IDs, referrer, and landing page data and keep the marketing context needed for accurate reporting across forms, bookings, signups, and sales.

## Overview

**Journey Duration** saves when a visitor first arrived on your site and how long they took to convert. Turn it on and every form submission and WooCommerce order gets three more fields:

| Field | What it holds |
|---|---|
| `handl_journey_start` | When the visitor first arrived, as a Unix timestamp in milliseconds |
| `handl_journey_end` | The time of the visitor's latest page view, as a Unix timestamp in milliseconds. On a form or order, that's when they converted. |
| `handl_journey_duration_hrs` | The time from the start to the end, in whole hours (rounded) |

For example, a visitor who first arrived on Oct 1, 2026 at 09:00 UTC and placed an order on Oct 3 at 15:00 UTC is saved with `handl_journey_start` = `1790845200000`, `handl_journey_end` = `1791039600000` and `handl_journey_duration_hrs` = `54`.

Journey Duration is built into UTM Grabber from version 3.3.9 and is off by default.

## Turn on Journey Duration

1. Go to **WordPress Admin > UTM** and open the **HandL Options** tab.
2. Tick **Track Journey Duration**.
3. Click **Save Changes**.

[![Track Journey Duration setting in HandL Options](https://docs.utmgrabber.com/uploads/images/gallery/2026-10/scaled-1680-/track-journey-duration-setting-in-handl-options.png)](https://docs.utmgrabber.com/uploads/images/gallery/2026-10/track-journey-duration-setting-in-handl-options.png)

From then on, UTM Grabber records the start time on each visitor's first visit, and updates the end time and duration on every page they view.

## How the values are set

- **The start is set once.** `handl_journey_start` is saved on the visitor's first page view and isn't reset when they convert. If someone fills in a form in week 1 and places an order in week 3, the order's duration still counts from their first visit. The start is kept for as long as UTM Grabber's cookies last; see [Setting the Cookie Duration](https://docs.utmgrabber.com/books/102-getting-started-with-handl-utm-grabber-v3/page/setting-the-cookie-duration).
- **The end and duration follow the visitor.** `handl_journey_end` and `handl_journey_duration_hrs` are updated on every page view, so a form or order saves the values from the moment it was submitted.
- **Consent applies.** If you use UTM Grabber's GDPR option or a consent integration, the values are only saved once the visitor gives consent, like your other tracked fields.

## Save the values with your forms and orders

The three fields work like any other UTM Grabber field:

- **WooCommerce orders** save them automatically.
- **One Click Integrations** list them with your other tracked fields. If you connected forms before turning on Journey Duration, open the **Integrations** tab: those forms show the three fields as missing, and you can add them from there. See [One Click Integrations](https://docs.utmgrabber.com/books/one-click-integrations/page/one-click-integrations).
- **Hidden fields** named `handl_journey_start`, `handl_journey_end` and `handl_journey_duration_hrs` are filled in, the same way as your UTM fields.
- **Shortcodes** `[handl_journey_start]`, `[handl_journey_end]` and `[handl_journey_duration_hrs]` show the values anywhere shortcodes work. See [Native WP Shortcodes](https://docs.utmgrabber.com/books/102-getting-started-with-handl-utm-grabber-v3/page/native-wp-shortcodes).

To show a timestamp as a date in Google Sheets or Excel, use `=A2/86400000+DATE(1970,1,1)` and format the cell as a date and time. The result is in UTC.

## Using the custom build?

Journey Duration used to need a custom version of the plugin. If your site ran that custom build, update to the latest UTM Grabber and tick **Track Journey Duration** in **HandL Options**. Until you do, the three fields stop being saved and the shortcodes show as plain text.

Please let us know if you have any questions.