Event Leads

Capture leads at trade shows, conferences, and events with a printable QR poster and a mobile-friendly form

Overview

Event Leads gives you a single page-sized poster (A6–A3 or US Letter) with your branding and a QR code. Visitors scan the QR with their phone, fill out a short form, and the lead lands in your EziLinks dashboard with their country detected automatically. No app, no booth scanner — just a printed poster.

Typical uses: trade shows, conferences, networking events, in-store sign-ups, retail counters, pop-up shops.

What's Included by Plan

Plan Event forms Leads per form Custom domain
Free 1 50
Digital Card
Pro Toolkit 5 Unlimited With Pro Domain add-on
Agency Unlimited Unlimited Up to 5 included

Creating an Event Form

1 Open Event Leads in the sidebar

From the dashboard, click Event Leads in the left sidebar. You'll see your existing forms (if any) listed as a table with the public URL, page size, and lead count.

2 Click "New event form"

A new draft form is created and the editor opens. Give it an internal name like Trade Show June 2026 — visitors never see this name, it's just for you to find later.

3 Choose your page size

Pick the size you'll print at: A6 / A5 / A4 / A3 or US Letter. The canvas preview on the right updates as you change this.

4 Brand the poster

Pick a brand colour — this fills the poster background as a solid colour. Optionally select a company logo from the dropdown (uploaded in Settings › Logos). The logo sits above the QR.

You can also upload a background image instead of the solid brand colour fill — useful for photo-heavy designs.

5 Customise the QR

Adjust QR colour, add a small centre logo (e.g. your company mark), resize between 15% and 70% of the page, and drag the QR around the preview to reposition it.

6 Choose which fields to capture

Toggle on/off any of: Name, Email, Phone, Company, Job Title, Notes. Edit the labels (e.g. change "Name" to "Full name") and mark fields as required. Name and Email are required by default.

7 Save changes

Hit Save changes at the bottom. You're returned to the form list with your new form ready to use.

Choosing the Public URL

By default, every form lives at a short URL on ezl.me/lead/<slug>. The slug is a random 6-character code (e.g. ezl.me/lead/7f8940) chosen for you so it fits comfortably on a poster.

Using a custom domain

If you have a verified custom domain (Pro Domain add-on or Agency plan), a Domain dropdown appears in the editor. Pick one of your domains and the form is published at yourdomain.com/lead/<slug> instead.

When using a custom domain, you can also edit the slug to something memorable like signup or june2026. The slug field shows "Available" or "Already in use" as you type, and the ↻ button generates a new random one if you'd rather not type.

Domain acme.com (primary) Choose which domain to publish this form on. Public URL slug acme.com/lead/ june2026 ✓ Available — acme.com/lead/june2026

Domain dropdown + slug picker. Type a custom slug or click the ↻ button to generate a random one. The green tick confirms it's available; red text appears immediately if the slug is taken.

Slug rules: 3–60 characters, lowercase letters, numbers, and hyphens only. Some words are reserved (e.g. admin, login, settings) and can't be used.

Customising the Public Form Page

The form page (what visitors see when they scan the QR) inherits your brand colour and logo automatically. A few extras you can tweak from the editor:

  • Header text — shown above the form fields (e.g. "Win our prize!")
  • Footer text — shown under the QR on the poster (e.g. "Scan to connect with us")
  • Success message — shown after a visitor submits the form
  • Show logo on form page — tick to render the company logo next to the form title; untick for a text-only header
  • Submit button colour — defaults to your brand colour, but you can pick a contrasting CTA shade

Sharing the QR Code

From the form's expand row in the list view (or from the editor toolbar), use:

  • Download poster (PNG) — high-resolution PNG at print DPI, ready to send to a printer or paste into a design tool
  • Print — opens your browser's print dialog directly with the poster set to the right page size (no popup tab)
  • Open in new tab — opens the public form so you can see what visitors will see
Tip: Test the QR with your phone before the event. Open the form, fill it out, hit submit — then check the Leads view to confirm your test landed. You can delete test leads from the leads modal.

Viewing and Exporting Leads

Each form's lead count is shown as a green badge in the list view. Click the form row's expand chevron to reveal action buttons:

  • View leads — opens a modal with the captured leads in a table. Each row shows the submission time, the data the visitor entered, and the country (auto-detected from their IP).
  • Download CSV — exports every lead from that form as a CSV file with a date-stamped filename, ready to open in Excel/Sheets or import into your CRM.

Phone numbers are stored in international format (e.g. +64 21 123 4567) so they're ready to dial regardless of where you're calling from.

Leads captured × WHEN FULL NAME EMAIL PHONE COMPANY COUNTRY 15 Jun, 14:32 Jane Smith jane@acme.com +64 21 123 4567 Acme Pty Ltd πŸ‡³πŸ‡Ώ NZ 15 Jun, 14:28 Mark Johnson mark@example.com +61 412 345 678 Example Co πŸ‡¦πŸ‡Ί AU 15 Jun, 14:11 Lin Chen lin@chenstudio.io +65 9123 4567 Chen Studio πŸ‡ΈπŸ‡¬ SG Download CSV

The Leads captured modal. Country is auto-detected from each visitor's IP (no extra field needed in the form). Click Download CSV at the bottom to export everything for your CRM.

Email Notifications

Set the "Email me on every lead" field in the editor to get an instant email whenever someone submits. Leave it blank to disable — you can always download the CSV later.

Repeat submissions from the same email address within 5 minutes are deduplicated (one notification per visitor per 5-minute window) to stop spam if someone double-taps the submit button.

Send Leads to Your Tools (Webhooks)

πŸ‘‹ Not a developer? You don't need to read most of this section. Skip down to Setting it up — paste a Zapier or Make webhook URL into the form editor, click Send test payload to confirm it works, and you're done. The deeper sections (signature verification, code samples) are only relevant if you're piping leads to a custom server you control.

Every form has an outbound webhook you can point at any automation platform — Zapier, Make, n8n, Pipedream, Pabbly, native CRM webhook receivers (HubSpot, Salesforce, Mailchimp, ActiveCampaign, Pipedrive), or a custom endpoint you control. As soon as a lead is captured, EziLinks POSTs the data to your URL as JSON.

Setting it up

  1. In the form editor, paste a webhook URL from your automation platform into Webhook URL and save the form.
  2. A signing secret is auto-generated on first save. Copy it (Copy button) and paste it into your automation platform if it supports HMAC verification (optional but recommended).
  3. Click Send test payload to confirm your automation receives data correctly. The result (success or error) shows inline.
  4. Click View recent deliveries to see the last 20 webhook attempts (real leads + test sends) with status codes and response times.

Payload shape

EziLinks POSTs this JSON to your webhook URL for every new lead:

{
  "event": "lead.created",
  "form": {
    "id": 6,
    "slug": "trade-show-june-2026",
    "name": "Trade Show June 2026"
  },
  "lead": {
    "id": 42,
    "submitted_at": "2026-06-08T12:34:56.789Z",
    "country": "Australia",
    "country_code": "AU",
    "data": {
      "name": "Jane Smith",
      "email": "jane@example.com",
      "phone": "+61 412 345 678",
      "company": "Acme Pty Ltd",
      "title": "Marketing Director",
      "notes": ""
    }
  }
}

Headers EziLinks sends

  • Content-Type: application/json
  • User-Agent: EziLinks-Webhook/1.0
  • X-Webhook-Signature: sha256=<hex> — HMAC-SHA256 of the raw body using your form's secret
  • X-Webhook-Timestamp: <iso8601> — for optional replay-attack protection

Signature verification (recommended)

Receivers should verify the X-Webhook-Signature header before trusting the payload. Recompute the HMAC of the raw request body using your saved secret, then compare:

Node.js

const crypto = require('crypto');
const expected = 'sha256=' + crypto
  .createHmac('sha256', SECRET)
  .update(rawBody, 'utf8')
  .digest('hex');
const ok = crypto.timingSafeEqual(
  Buffer.from(req.headers['x-webhook-signature']),
  Buffer.from(expected)
);

PHP

$expected = 'sha256=' . hash_hmac('sha256', $rawBody, $secret);
$ok = hash_equals($_SERVER['HTTP_X_WEBHOOK_SIGNATURE'], $expected);

Python

import hmac, hashlib
expected = 'sha256=' + hmac.new(
    secret.encode(), raw_body, hashlib.sha256
).hexdigest()
ok = hmac.compare_digest(
    request.headers['X-Webhook-Signature'], expected
)

Delivery + retries

  • EziLinks attempts delivery synchronously when a lead is captured. The visitor's submit response is never blocked by webhook delivery.
  • If your endpoint responds with 2xx, the delivery is marked successful.
  • If your endpoint responds with 4xx (other than 408/429), EziLinks gives up — it assumes your endpoint has rejected the payload and a retry won't help.
  • If your endpoint responds with 5xx, times out, or is unreachable, EziLinks retries up to 2 more times with backoff (5s, then 30s, then 2min).
  • Endpoints should respond within 8 seconds — anything slower is treated as a timeout.
  • Leads are always saved to the EziLinks database first, so a failed webhook never loses data — you can always download the CSV later.

Common platform setup

  • Zapier: Create a Zap → trigger "Webhooks by Zapier" → "Catch Hook". Copy the catch hook URL into EziLinks. Then add an action step for your CRM (HubSpot, Mailchimp, etc.) and map the fields from lead.data.
  • Make (Integromat): Add a "Webhooks" module → "Custom webhook" → Add. Copy the URL into EziLinks. Click "Send test payload" to populate the field mapping automatically.
  • n8n: Add a "Webhook" trigger node, set HTTP method to POST, copy the generated URL into EziLinks.
  • HubSpot: Use a Workflow with a "Custom Code" or "Webhook" action, or pipe through Zapier/Make to a HubSpot CRM action.
  • Mailchimp / ActiveCampaign / Pipedrive: Best routed via Zapier or Make — their native webhook receivers expect their own internal formats, while a Zap/Scenario lets you map our flat JSON into their fields cleanly.
Rotating the secret: If you suspect your secret has leaked, click Rotate on the editor. A new secret is generated immediately and the old one stops working at once. You must update your automation platform with the new secret if you're verifying signatures.

Anti-Spam Protection

Every form has two layers of protection built in:

  • Honeypot field — an invisible field that real visitors don't see but bots will fill in. Bot submissions are silently dropped, so you never see them in your leads.
  • Rate limiting — 10 submissions per hour per IP address. Generous enough that a busy event won't trip the limit, but enough to block scripted abuse.

Glossary (jargon translated)

If any of the terms in the webhook / anti-spam sections were unfamiliar, here's plain-English translations:

  • Slug — the bit after the slash in your form's URL (e.g. ezl.me/lead/my-event). You can pick your own or let us auto-generate one.
  • GeoIP — a database that maps an IP address to a country. We use it to automatically tag every lead with where they were when they submitted — no extra question for the visitor.
  • Webhook — a URL we send lead data to as soon as a form is submitted. Used to pipe leads into Zapier, your CRM, etc.
  • Payload — the JSON data we send to your webhook URL. Contains the lead's form answers + country + timestamp.
  • HMAC — a cryptographic signature so the receiver of a webhook can verify it really came from EziLinks (not a fake request from someone else). Only matters if you're piping leads to a custom server you control.
  • Rate limiting — a cap on how many form submissions one visitor (per IP address) can send in a given window. Blocks scripted spam.
  • Honeypot — an invisible form field. Real visitors don't see it. Spam bots fill in every field, including the hidden one, which tells us they're a bot and we silently drop the submission.

Common Questions

How is the visitor's country detected?

EziLinks uses MaxMind's GeoIP database to look up the visitor's country from their IP address at submission time. The country (e.g. "New Zealand") is stored alongside the lead and shown in the leads view and the CSV. No third-party tracking, no JavaScript geolocation prompts.

Can the same visitor submit twice?

Yes — nothing stops a visitor submitting more than once. If you want one-per-person, ask for email and dedupe in your CRM/spreadsheet after export.

What happens if I delete a form?

The form is soft-deleted — it's hidden from your dashboard immediately and the public URL stops resolving. Existing leads stay in the database for your records. If you change your mind, contact support.

Can I edit a form after it's printed?

Yes — the poster image, fields, and branding can all be edited any time. However: if you change the slug or move the form to a different domain, the QR code on already-printed posters will no longer match. Lock in your URL before you go to print.

Can two team members view the leads?

On Agency, yes — team members with Viewer or Editor roles can see the team owner's event forms and leads. See Team Members for permissions.

Free plan: The Free plan caps leads at 50 per form. Once you hit the cap, new submissions are rejected with a "limit reached" message. Upgrade to Pro Toolkit to lift the cap.
© 2025 EziLinks. All rights reserved.