{
  "slug": "bw-lead-ai",
  "name": "BW Lead Attribution Intelligence",
  "version": "1.8.2",
  "download_url": "https://plugins.bowden.works/wp-content/uploads/plugin-updates/bw-lead-ai-1.8.2.zip",
  "download_hash": "sha256:416db7a48c0af80513a072c781599ed72efd51723a2312755c1829acec73c161",
  "download_size": 503556,
  "requires": "6.0",
  "tested": "",
  "requires_php": "7.4",
  "last_updated": "2026-08-11",
  "homepage": "https://plugins.bowden.works/bw-lead-ai/",
  "author": "Bowden Works",
  "description": "Capture traffic source, attribute it to every lead, and understand where your leads are coming from.",
  "changelog": "## [1.8.2] - 2026-08-11\n\n### Fixed\n- **The destination code left its tracking fields visible when there was no journey\n  token.** The token check sat above the concealing, so a visitor who reached the form\n  any other way — a bookmark, a search result, the back button — saw the raw tracking\n  inputs sitting in the form. Hiding them now happens unconditionally, before anything\n  that needs a token; the token still gates everything that fills them. Those fields\n  are ours, never questions for the visitor, so they are hidden whether or not there\n  is a journey to attach.\n\n- **Nothing waited for a form that renders after the page.** The code hid and filled\n  the fields in a single pass at load, so an embedded or multi-step builder that draws\n  its form afterwards — and a tag manager that injects the code asynchronously — left\n  it querying a page with no form in it yet, silently doing nothing. Both the hiding\n  and the filling now retry as the page changes, until the fields appear (bounded, so\n  it cannot spin on a busy page). The submit listener already handled late forms; the\n  field half now does too."
}
