How it works
- 1
Visitor enters two things
They type their company URL and job role — no login, no account, no cookies.
- 2
AI reads their site and matches
The model reads their public website and maps it against your confirmed exhibitors and the draft agenda.
- 3
Honest verdict and shortlist
They get a clear go/no-go and a personalised shortlist — grounded in real data, not FOMO.
- 4
Optional: register or get the brief
Turn on a Register CTA and an 'email me my brief' capture to convert the visit into a lead.
Install in one line
Drop a single <script> tag with your event slug onto any page and the widget appears. The button, banner and bar modes need nothing else. For the in-page modes — strip, inline and native — also add a <div> with an id and point data-target at it so the widget knows where to render.
<div id="configurence-widget"></div>
<script src="https://app.configurence.com/embed.js"
data-event="as-adria-2026"
data-mode="inline"
data-theme="auto"
data-target="#configurence-widget"
async></script>Any hand-coded or static site.
- 1Open the template that renders on every page, or just the page you want.
- 2Paste the snippet just before the closing </body> tag.
- 3For inline, strip or native modes, add the target <div> where the widget should appear.
Works from a static host or CDN — no build step required.
Open the customizer → to tune colors, fonts and copy with a live preview.
Placements
Strip
data-mode="strip"A compact single-row form (company + role + button) that sits inline like a search bar and opens the full report on a new page — the lightest footprint, best for lead capture.
Inline
data-mode="inline"Renders the full report directly in the page and auto-resizes to its content, with no modal or redirect.
Button
data-mode="button"A floating pill that opens the widget in a modal; the iframe loads lazily on first open so it never slows the host page.
Banner
data-mode="banner"A dismissible bottom bar with a call-to-action that opens the widget in a modal.
Bar
data-mode="bar"A thin sticky bar pinned to the bottom of every page — the strip form site-wide. Visitors can dismiss it with an X for the rest of their session; submit opens the full report on a new page.
Native
data-render="native"Renders a lite report straight into the host page via Shadow DOM (no iframe) for the deepest visual blend — requires the host domain to be CORS-allowlisted.
Theming
Auto theming samples the host page
With data-theme="auto" the widget reads the host page's font, background and brand color and adapts to match, applying WCAG contrast guards so text stays legible on any surface.
Explicit tokens override the sampler
Any design token you set by hand — data-accent, data-bg, data-surface, data-text, data-dim, data-border, data-radius, data-font, data-hfont — takes precedence over the auto-sampled value, so you can pin exactly the parts you care about and let the rest adapt.
Theme variants beyond auto
data-theme also accepts match-light and match-dark to lock the sampler to a light or dark reading of the host, or custom to drive the look entirely from your explicit tokens.
Per-event defaults live server-side
Theme and copy defaults can be stored per event on the server, so a clean one-line embed inherits the agreed look without repeating every attribute on the tag.
Attribute reference
| Attribute | Values | What it does |
|---|---|---|
data-event | event slug (required) | The event this widget matches against; the only required attribute. |
data-mode | strip | inline | button | banner | bar | How the widget presents itself on the page. |
data-bar | 1 | true | Add-on: with a strip or inline placement, the same tag also pins the site-wide sticky bar to the bottom of every page. Ignored in the bar mode itself (redundant) and in the button and banner modes. |
data-render | native | Set to native to render a lite report in-page via Shadow DOM instead of an iframe. |
data-theme | auto | match-light | match-dark | custom | Theming strategy — sample the host, lock to a light/dark reading, or drive from explicit tokens. |
data-accent | CSS color | Brand/accent color for buttons and highlights. |
data-bg | CSS color | Page background color behind the widget. |
data-surface | CSS color | Card and panel surface color. |
data-text | CSS color | Primary text color. |
data-dim | CSS color | Muted/secondary text color. |
data-border | CSS color | Border and divider color. |
data-radius | CSS length (e.g. 12px) | Corner radius for cards, inputs and buttons. |
data-font | CSS font-family | inherit | Body font family; the special value inherit samples the host page's body font. |
data-hfont | CSS font-family | Heading font family. |
data-label | text | Headline shown above the form. |
data-lang | en | hr | Switches the built-in interface copy between English and Croatian/Bosnian. |
data-intro | text | Sub-line shown under the headline. |
data-ph-company | text | Placeholder for the company URL input. |
data-ph-role | text | Placeholder for the job role input. |
data-cta | text | Submit button label. |
data-target | CSS selector (e.g. #configurence-widget) | Where in-page modes mount; points at your container element. |
data-position | br | bl (or bottom-right | bottom-left) — button mode | Screen corner for the floating button (button mode). The banner and bar modes ignore it — the banner spans the bottom, the bar floats centered just above it. |
Security & privacy
Frame-ancestors allowlist
Each event carries a frame-ancestors allowlist, so only the domains you approve can iframe the widget — an embed copied onto any other site simply won't load.
Per-IP rate limiting
POST /api/match is rate-limited per IP — by default 8 requests per 5 minutes and 60 per day — which absorbs abuse and scraping without getting in a real visitor's way.
GDPR-friendly by construction
The widget collects only a company URL and a job role — no cookies, no fingerprinting, no accounts. One font caveat: when a custom Google font is configured, the widget's iframe loads it from fonts.googleapis.com. Sessions are ephemeral and shared report links expire after 30 days.
Analytics
A conversion funnel, delivered to you
Every interaction is emitted as a funnel — impression → open → submit → report → click_exhibitor / click_share / click_register / lead — so you can see exactly where visitors drop off and how many convert. We send you the funnel numbers (impression → open → submit → report → register) — ask your Configurence contact for the live view. No extra tracking script needed on your site.
FAQ
Will it slow my site down?+
No. The loader is async and self-contained — it renders after your page, and in the button and banner modes it loads the report iframe only when a visitor opens it. The bar mode loads just its small form strip up front.
Is visitor data safe and GDPR-friendly?+
Yes. We collect only the company URL and role — no cookies, no fingerprinting, no accounts. Sessions are ephemeral and shared report links expire after 30 days.
Can I show it in my audience's language?+
Yes. English and Croatian ship today — set data-lang="hr" and the built-in copy switches. The platform isn't limited to these two: we add further languages on request as part of onboarding. You can also override each label yourself: the headline (data-label), the intro line (data-intro), both placeholders (data-ph-company, data-ph-role) and the button label (data-cta).
Will it match my brand colors and fonts?+
With data-theme="auto" it samples your page's font, background and accent color and adapts, with WCAG contrast guards. Or set exact tokens like data-accent and data-font.
Can I use it on multiple events or pages?+
Yes. Each embed points at one event via data-event, and you can place as many widgets as you like across your pages.
How do I remove it?+
Delete the <script> tag, and the target <div> if you added one. Nothing is left behind — no cookies or stored state on your site (the banner and bar modes keep a small sessionStorage flag remembering they were dismissed — cleared when the tab closes).
What if the visitor has no website?+
They can enter a role and company name instead of a URL; the match then leans on the role and any public signal it can find, and stays honest about the lower confidence.
Can any site embed it?+
Only domains on the event's allowlist may frame the widget, and the match API is rate-limited per IP — so your embed can't be lifted onto another site.