Title: Hafenstudios Leadlotse – Form &amp; Lead Manager
Author: hafenstudios
Published: <strong>August 7, 2026</strong>
Last modified: October 12, 2026

---

Search plugins

![](https://ps.w.org/leadlotse/assets/banner-772x250.png?rev=3637410)

![](https://ps.w.org/leadlotse/assets/icon-256x256.png?rev=3637410)

# Hafenstudios Leadlotse – Form & Lead Manager

 By [hafenstudios](https://profiles.wordpress.org/hafenstudios/)

[Download](https://downloads.wordpress.org/plugin/leadlotse.1.5.1.zip)

 * [Details](https://pirate.wordpress.org/plugins/leadlotse/#description)
 * [Reviews](https://pirate.wordpress.org/plugins/leadlotse/#reviews)
 *  [Installation](https://pirate.wordpress.org/plugins/leadlotse/#installation)
 * [Development](https://pirate.wordpress.org/plugins/leadlotse/#developers)

 [Support](https://wordpress.org/support/plugin/leadlotse/)

## Description

Leadlotse starts from the goal, not from an empty canvas. You pick a purpose – contact,
consultation, inquiry, newsletter, download, callback, quote, event or event sign-
up – and get a form that already has sensible fields, a consent text and a confirmation
email. Your first form is live in minutes.

Every submission lands in a tidy inbox inside WordPress. No shared mailbox where
inquiries drown. Each entry carries a status (new, in progress, done), and the plugin
points it out when entries have been waiting too long for an answer.

#### What you get

 * Purpose templates in English and German instead of an empty form builder
 * Form builder with live preview: fields, preview and settings on one screen
 * Inbox with status, search and filters
 * Conditional fields: show a field only when another one has a certain value
 * Double opt-in for newsletter sign-ups, with a signed confirmation link
 * Spam protection without a captcha: honeypot, time trap and rate limiting per 
   IP and form
 * Field types for text, email, phone, number, date, select, radio, checkbox, consent
   and hidden attribution values
 * GDPR tools: consent records with the exact text and version, data minimisation,
   retention period, and hooks into the WordPress data export and erasure requests
 * Works without JavaScript: the form falls back to a classic POST and no submission
   is lost
 * Accessible markup: every field has a label, errors sit at the field and are wired
   up with aria-describedby and aria-invalid
 * Event sign-up: registration with capacity limit, confirmation by email, a ticket
   with a QR code and check-in from your phone
 * Participant list per event, printable and exportable
 * Gutenberg block and shortcode
 * Your data stays on your server

#### No external services

Leadlotse processes submissions on your own server and sends email through the delivery
path your WordPress installation already uses. It does not call any third-party 
API, loads no remote fonts, scripts or images, and collects no telemetry.

#### Who it is for

Small and medium businesses, local service providers, coaches and consultants who
want to collect inquiries and lose none of them, without a large CRM or paid add-
on services.

#### Event sign-up

One purpose template turns a form into a sign-up: guests register, everyone receives
a ticket with a QR code by email, and at the door you scan it from your phone. A
capacity limit closes the form once the event is full, cancellations free up their
spot again, and the participant list shows who is expected. The QR code is generated
on your server, the ticket page belongs to your site, and no data leaves it.

Leadlotse is part of the Hafenstudios fleet; it works on its own and cooperates 
with the other fleet plugins once they are active. An extended edition with messenger
replies, quick fill via Google and Apple and multi-step forms is available at hafenstudios.
com.

## Screenshots

[⌊Purpose gallery: pick a form by what it should achieve.⌉⌊Purpose gallery: pick
a form by what it should achieve.⌉[

Purpose gallery: pick a form by what it should achieve.

[⌊Form builder with field list, live preview and settings side by side.⌉⌊Form builder
with field list, live preview and settings side by side.⌉[

Form builder with field list, live preview and settings side by side.

[⌊Inbox with status filter, search and the detail panel of one entry.⌉⌊Inbox with
status filter, search and the detail panel of one entry.⌉[

Inbox with status filter, search and the detail panel of one entry.

[⌊Setup checklist that walks through recipients, consent text and embedding.⌉⌊Setup
checklist that walks through recipients, consent text and embedding.⌉[

Setup checklist that walks through recipients, consent text and embedding.

[⌊A rendered form in the three appearances: plain, card and compact.⌉⌊A rendered
form in the three appearances: plain, card and compact.⌉[

A rendered form in the three appearances: plain, card and compact.

[⌊Consent settings of a form with the editable consent text.⌉⌊Consent settings of
a form with the editable consent text.⌉[

Consent settings of a form with the editable consent text.

[⌊Mail sender settings with a test mail and deliverability hints.⌉⌊Mail sender settings
with a test mail and deliverability hints.⌉[

Mail sender settings with a test mail and deliverability hints.

## Blocks

This plugin provides 1 block.

 *   Leadlotse Form Embeds a Leadlotse form into the page.

## Installation

 1. Upload the plugin under Plugins, Add New, or install it from the plugin directory.
 2. Activate it.
 3. Open the Leadlotse menu, choose “create first form” and pick a purpose.
 4. Embed the form with the “Leadlotse Formular” block or the shortcode.

## FAQ

### Does it call external services?

No. Leadlotse processes submissions on your own server and uses your WordPress installation
for sending email. There is no third-party API call, no remote asset and no telemetry.

### Can I use it in a GDPR-compliant way?

Leadlotse brings the tools: a consent record that stores the exact wording and version
that was shown, data minimisation, an optional retention period, double opt-in for
newsletter sign-ups, and integration with the WordPress data export and erasure 
requests. The legal wording, for example your privacy policy, remains your responsibility.

### Do I need to write code?

No. You pick a purpose, adjust the fields and embed the form.

### Does the form work without JavaScript?

Yes. Without JavaScript the form submits over a classic POST and shows the same 
result message.

### Is the event sign-up included?

Yes. Sign-up, capacity limit, ticket with QR code, check-in and the participant 
list are part of this version. Nothing is locked.

### Where do submissions go?

Into a custom database table, listed in the Leadlotse inbox. Notification and confirmation
emails are sent through WordPress. Uninstalling can remove the table and the options
again.

### Can I change how the form looks?

Yes. Choose one of three appearances per form, and the form inherits colours, radius
and typography from your theme. To adjust something you set a CSS variable rather
than overriding rules.

## Reviews

![](https://secure.gravatar.com/avatar/eec4b1fa4ca3859ade3fc6f0f9a428c7c6503216fbd6352eea37f9dd62fa5923?
s=60&d=retro&r=g)

### 󠀁[good forms, thumbs up](https://wordpress.org/support/topic/good-forms-thumbs-up/)󠁿

 [adiyatabaake](https://profiles.wordpress.org/adiyatabaake/) September 23, 2026

Easy to handle, I like the look

![](https://secure.gravatar.com/avatar/d3c036ce4fd9413b1329f4d692643bdb5028370104f7c3a942fb477f0512abd1?
s=60&d=retro&r=g)

### 󠀁[Free is good](https://wordpress.org/support/topic/free-is-good/)󠁿

 [cm1publishing](https://profiles.wordpress.org/cm1publishing/) August 12, 2026

Using the free for two sites now, works flawless. And I also like the Design. One
Question: How can I use the ticketing function for events? And do they also send
tickets to my coustomers via automatic an automatic E-Mail and a QR Code or this
this only available in the paid pro version. Do I need an extra App for the Ticketing
QR Codes to work? Thx

![](https://secure.gravatar.com/avatar/3511b530478cd0801f5378ada15594751ef6a01e475a26aba42c440a67621db9?
s=60&d=retro&r=g)

### 󠀁[forms look stylish and work perfectly](https://wordpress.org/support/topic/forms-look-stylish-and-work-perfectly/)󠁿

 [ruhrdora](https://profiles.wordpress.org/ruhrdora/) August 12, 2026

We use it on our site Frauenverbaende-dortmund.de for the IGA Fair (International
Garden Exhibition). It was the only free plugin we found that could register participants,
send confirmations, and provide us with an Excel participant list. Exactly what 
we needed.

 [ Read all 3 reviews ](https://wordpress.org/support/plugin/leadlotse/reviews/)

## Contributors & Developers

“Hafenstudios Leadlotse – Form & Lead Manager” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ hafenstudios ](https://profiles.wordpress.org/hafenstudios/)

[Translate “Hafenstudios Leadlotse – Form & Lead Manager” into your language.](https://translate.wordpress.org/projects/wp-plugins/leadlotse)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/leadlotse/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/leadlotse/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/leadlotse/) by [RSS](https://plugins.trac.wordpress.org/log/leadlotse/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.1

 * Fixed: The form builder saves with POST instead of PUT. Some hosts, proxies and
   WordPress Playground dropped the body of the request while the builder still 
   reported “Saved”.
 * Fixed: The preview of the Leadlotse block in the editor shows the form styles
   instead of a bare form.
 * Fixed: A form in draft status shows editors a “Draft” notice instead of failing
   only on submit.
 * Security: The check-in page shows name, number of people and check-in time to
   authorised users only. Tickets expire two days after the event (after its end
   for events lasting several days, from the new end field or The Events Calendar),
   or twelve months after sign-up without a readable date. At the entrance there
   is no expiry.
 * Security: A maximum length of 0 no longer lifts the length limit of a text field.
   Custom maximum lengths are capped (text 1,000, textarea 20,000 characters).
 * Security: The time trap token is only valid for the form it was issued for. Pages
   from a page cache with older tokens keep working for 30 days after the update.
 * Security: The rate limit counts in a fixed window and stores the IP address only
   as a salted hash.
 * Improved: If the confirmation link cannot be stored, no email with a dead link
   goes out. The visitor gets a message and can try again, with or without JavaScript.
 * Improved: Email scanners that open the confirmation link ahead of the recipient
   no longer trigger a second confirmation.
 * Improved: For events without double opt-in, two simultaneous sign-ups for the
   last place no longer overbook the event.
 * Improved: The daily maintenance (retention period, expired sign-ups) is scheduled
   again if its cron event got lost.
 * Improved: Without JavaScript, a redirect after submit also leads to external 
   pages, as it does with JavaScript, instead of ending on the WordPress login page.
 * Improved: The ticket page loads its styles as a separate file, uses the language
   of the site and no longer needs an onclick attribute for the print button.
 * Fixed: A time trap or honeypot field sent as a list instead of text no longer
   causes a PHP warning.

#### 1.5.0

 * New: An Excel workbook across all events, with an “Overview” sheet and one sheet
   per event: sign-ups, guests, people in total and those not confirmed yet, plus
   a totals row. The CSV export stays as a fallback.
 * New: A printable check-in list for the day of the event, alphabetical, with guests
   and a tick column.
 * New: Duplicate sign-ups from the same address are marked, only the latest one
   counts. Entries can be marked as a test and then drop out of counts, capacity
   and export.
 * New: Unconfirmed sign-ups no longer take a seat, are counted separately, get 
   one reminder after 24 hours with a fresh confirmation link, and expire after 
   a period you set (7 days by default).
 * New: Guests count towards capacity, people in total and the export.
 * New: A summary for the organiser, daily or weekly. Off by default.
 * New: A link to The Events Calendar when it is active. Title, date and location
   then come from there, capacity and sign-ups stay here. The event list shows the
   number of confirmed sign-ups.
 * New: Reply straight from the inbox instead of opening a mailto link. Answered
   inquiries are marked as such and the text of the reply stays with the entry.
 * New: Form of address per form. A new form is created in formal or informal German,
   existing texts stay untouched.
 * New: Event sign-up is part of every edition now, including this one: registration
   with a capacity limit, a ticket with a QR code, check-in and the participant 
   list.
 * New: A proof of work instead of a captcha. The browser solves a small puzzle 
   in the background while somebody fills in the form. No third-party service, no
   image puzzles, no data leaving your site. Without JavaScript nothing changes 
   and no form becomes unusable.
 * New: Entries can be deleted one by one. The matching consent record goes with
   them.
 * New: The event sign-up template now also asks for last name and organisation.
 * New: Every purpose template brings its own submit button label instead of a generic“
   Submit”.
 * New: After activation Leadlotse opens the empty state with the purpose tiles 
   once, instead of leaving you on the plugin list.
 * Fixed: Special characters stored incorrectly by version 1.2.0 are repaired once.
   The state before the repair is kept, and the result is shown on the form list.
 * Fixed: Sign-up times were shown in UTC instead of the time of your website in
   the participant list, the export and the check-in page. If your site has no timezone
   set, the setup checklist says so.
 * Fixed (added to the record): Forms in draft status are no longer rendered for
   visitors. Logged-in editors still see them, so a form can be checked before it
   goes live.
 * Improved: The labels of the block editor were in no translation catalogue and
   stayed English on non-English sites.

#### 1.4.4

 * New: twelve ready-made styles for a form (Trade, Law firm, Practice, Coaching,
   Restaurant, Club, Minimal, High contrast, Night, Pastel, Tech and the theme’s
   own look), plus your own accent colour, three densities and a corner radius. 
   The contrast of the button text is checked while you pick.
 * New: the template gallery shows real previews in groups (Requests, Sales, Lists,
   Appointments) instead of a plain list, and the templates are fetched when you
   open the gallery instead of being printed into every page.
 * New: duplicate a form from the list. The copy carries all fields and settings
   and opens as a draft.
 * New: a thank-you stage after sending, with your own heading and text, instead
   of a single line of confirmation.
 * Fixed: the plugin asked for translations before WordPress loads them. Every page
   view logged “_load_textdomain_just_in_time was called incorrectly”; where error
   display is switched on, that notice was printed before the headers and any cookie
   or redirect after it failed.
 * Fixed: the rename of the stored data introduced in 1.4.3 could be marked as done
   even when it had not run – on a database user without ALTER rights the entries
   stayed in the old table and the inbox stayed empty, without a word of warning.
   The rename is now retried until it has demonstrably succeeded.
 * Fixed: pending migrations now also run outside the admin area. After an automatic
   update over cron or WP-CLI there was a window in which the entries table did 
   not exist yet: submissions failed and a double opt-in confirmation could not 
   find its sign-up.
 * Improved: the builder no longer builds two previews of the same form.
 * Improved: tested with WordPress 7.1.

#### 1.4.3

 * Improved: every submitted value is sanitised centrally, before any extension 
   sees it. The request snapshot handed to spam filters is now a sanitised excerpt
   of the request headers instead of the raw server environment.
 * Improved: HTML returned by the leadlotse_form_fields filter is limited to input
   elements before it is printed.
 * Improved: longer prefixes for stored data. The form post type, the entries table
   and the plugin transients now carry the plugin name; existing installations are
   migrated on update.
 * Improved: source strings are English. German is delivered as a translation, and
   other languages can be contributed on translate.wordpress.org.

#### 1.4.0

 * New: three appearances per form – plain (a bottom line instead of a box), card(
   border and shadow) and compact (single row, for newsletter sign-ups). Selected
   in the builder, the preview follows.
 * New: the form inherits colours, radius and typography from your theme without
   a line of CSS. To change something you set a variable instead of a rule, for 
   example .leadlotse-form { –ll-akzent: #0a6; }.
 * New: a visible sending state on the submit button (ring, label, disabled) so 
   nobody clicks twice on a slow connection.
 * New: error messages sit at the field instead of only being collected at the top,
   including the ones from the browser, and are wired up with aria-invalid and aria-
   describedby. They disappear as soon as the input is valid.
 * New: the consent field gets its own calm row instead of being small print between
   two fields.
 * New: attribution values (ref and utm_*) survive a detour over other pages. Somebody
   who arrives on a blog post through ?ref=partner and only then clicks to the form
   is attributed correctly. This is remembered for the session only, without a cookie,
   and can be switched off.
 * New: the empty state offers the three most common purposes as tiles and leads
   into the builder with one click.
 * New: the label of the submit button is stored again. It was read when rendering
   but silently dropped when saving.
 * New: every field id of a submission can be used as a {fieldid} placeholder in
   the subject and body of the notification and confirmation email, next to {name},{
   first_name}, {form} and {site}.
 * Fixed: if a form definition cannot be stored, the editor now reports an error
   instead of showing success while the change is gone. The value is read back after
   writing and compared.
 * Improved: German field names are recognised. A field named “vorname” or “nachname”
   now yields a contact with a name; if no name field exists, the display name is
   built from first and last name.
 * Improved: hidden fields store up to 500 instead of 200 characters, so long campaign
   ids are no longer truncated.
 * Improved: table names in database queries use the %i identifier placeholder throughout.
 * Improved: borders and error colours follow the page rather than the operating
   system and meet the contrast requirements in both light and dark.

#### 1.2.0

 * New: number field with an optional minimum and maximum.

#### 1.1.0

 * New: mail sender settings page with a test mail and deliverability hints.
 * Improved: stricter phone number validation.

#### 1.0.0

 * First release: form builder, purpose templates in English and German, inbox, 
   conditional fields, double opt-in, spam protection, GDPR tools, Gutenberg block
   and shortcode.

## Meta

 *  Version **1.5.1**
 *  Last updated **7 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/leadlotse/)
 * Tags
 * [contact form](https://pirate.wordpress.org/plugins/tags/contact-form/)[double opt in](https://pirate.wordpress.org/plugins/tags/double-opt-in/)
   [forms](https://pirate.wordpress.org/plugins/tags/forms/)[GDPR](https://pirate.wordpress.org/plugins/tags/gdpr/)
   [leads](https://pirate.wordpress.org/plugins/tags/leads/)
 *  [Advanced View](https://pirate.wordpress.org/plugins/leadlotse/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  3 5-star reviews     ](https://wordpress.org/support/plugin/leadlotse/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/leadlotse/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/leadlotse/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/leadlotse/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/leadlotse/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/leadlotse/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/leadlotse/reviews/)

## Contributors

 *   [ hafenstudios ](https://profiles.wordpress.org/hafenstudios/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/leadlotse/)