← All work
Product/Exhibition CRM · AI extraction/2025 — Present/Live

ExhibitionBase

Exhibition CRM that turns floor plans into pipeline — reads PDFs, images and interactive plans from ExpoFP, Map Your Show and a2z, dedupes exhibitors across shows, finds the decision-makers and tracks outreach per show.

Next.jsTypeScriptSupabasePythonDodo PaymentsCloud browsers
exhibitionbase.comVisit live ↗
01

The problem

Before a trade show, the exhibitor list is locked inside a floor-plan PDF or an interactive map on ExpoFP or Map Your Show. Someone copies stands into a spreadsheet by hand, looks each company up on LinkedIn, then tracks outreach in a general CRM that has no idea which show a lead came from. The next show starts from zero — even though half its exhibitors are the same companies as last time.

02

Who uses it

4 groups

Field sales & business development

Who to approach at a show, with a named decision-maker and a verified email — before the doors open, not after.

Stand builders & exhibition agencies

Every exhibitor on the floor with stand size and type, because a 200 m² island stand is a different lead from a 9 m² row stand.

Event marketers

One calendar of the shows they exhibit at, visit or monitor, and a way to log meetings from the show floor on a phone.

Sales leads & managers

One workspace where the exhibitor list is split across the team and it is visible who contacted whom.

03

Workflow

6 stages
01Add the show
02Upload plan or paste link
03Extract booths + exhibitors
04Review & dedupe
05Find decision-makers
06Work the pipeline
01 · TrackTriggerUser adds an exhibition to the workspace calendarSystemNext.js app over Supabase PostgresOutputA show record with dates, venue, organiser and participation type — exhibiting, visiting or monitoring
02 · SourceTriggerFloor plan or exhibitor list uploaded, or an interactive-plan link pastedSystemSupabase Storage for files up to 25 MB, extraction job queued against the showOutputPDF, image, spreadsheet, Word file, screenshot or ExpoFP / Map Your Show / a2z / ExpoCAD URL staged for extraction
03 · ExtractTriggerWorker picks up the jobSystemPython extraction workers — PDF parsing, vision models for scans, headless browsers in the cloud for interactive plansOutputCompany, booth number, hall, stand size in m² and stand type per row, each with a confidence score
04 · ReviewTriggerExtraction completesSystemReview screen plus name-and-website matching against companies already in the workspaceOutputUncertain rows checked, repeat exhibitors merged, booth history extended — saved in one click
05 · Find peopleTriggerUser searches contacts for up to 25 exhibitors at onceSystemB2B contact database match, credit-metered revealOutputMarketing, events, sales and leadership contacts; verified email and phone revealed on demand
06 · WorkTriggerOutreach startsSystemPer-show CRM pipeline, tasks and activities, AI agentOutputEach exhibitor moved identified → contacted → engaged → customer, with deals tied to the show they came from
04

How it was built

8 parts

Read whatever the show publishes

Organisers publish exhibitors in every format there is: vector PDFs with one hall per page, low-resolution scans, PNG exports, Excel sheets, Word files, screenshots. Python workers parse text and geometry where the file has it and fall back to a vision model, page by page, where it does not. Column headers are recognised in English, German, French, Spanish, Italian and Dutch, because the big shows are in Hannover, Frankfurt and Cologne, not just Las Vegas.

Interactive plans in cloud browsers

Many shows have no PDF at all — the plan only exists as an interactive map on ExpoFP, Map Your Show, a2z, ExpoCAD, ExpoPlatform or InforoMap, and the exhibitor directory is paginated or infinite-scroll. Pasting the link sends the job to a headless browser running in the cloud, which loads the plan the way a visitor would, works through the directory and captures every exhibitor and booth. The user gets a list from a link instead of an afternoon of scrolling.

Confidence before anything is saved

Clear vector PDFs read accurately; a blurry scan does not. Every extracted row carries a confidence score, and uncertain rows are flagged for review rather than silently written into the database. The user fixes the few that need it and saves the whole list at once — the extraction proposes, the person commits.

One company across every show

Exhibitors are matched to companies already in the workspace by name and website at extraction and import time. A firm that exhibits at five shows is one record with five booth entries — hall, booth number and stand size for each — so the directory can be sorted by how often a company exhibits or how much floor space it takes. That history is the asset; it compounds with every show added.

Pipeline per show, not per company

A company can be a customer at one show and untouched at the next. Outreach status — identified, contacted, engaged, customer — is tracked per exhibitor per show, and deals are tied to the show they came from. Calls, emails, meetings and follow-up tasks hang off the same records, and the whole app works on a phone for the show floor.

Decision-makers on reveal

Exhibitors are matched to company profiles, then searched for people in marketing, events, sales and leadership. Search results hide surnames; revealing a contact fills in the full name, title, LinkedIn and a verified work email for 2 credits, or a phone number for 8. Saving a contact to the CRM is free — credits are spent only on the data itself.

An agent that never deletes

The AI agent works over the workspace in plain language — 'who at Hannover Messe haven't we contacted?', 'log a call with Lena, remind me Friday'. Its tools can create and update exhibitions, booths, contacts, tasks and deals, but deletion is not one of them. When a name matches more than one record it shows clickable options instead of guessing, and it only runs on AI providers that neither train on nor keep prompts.

Credits and billing on Dodo Payments

Plans run on Dodo Payments subscriptions: a free Starter tier, Pro and Business monthly or annually, extra seats, and Enterprise on contract. Dodo acts as merchant of record, which matters when customers are exhibiting in Germany, the US and the Gulf in the same quarter. Webhooks move the workspace's plan state and its monthly credit allowance; every metered action — 20 credits for an extraction, 2 for an email, 8 for a phone, 1 per agent message — is checked and debited on the server.

05

What it is built with

Application

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Mobile-first UI

Data & auth

  • Supabase Postgres
  • Supabase Auth
  • Supabase Storage
  • Row Level Security

Extraction

  • Python workers
  • PDF parsing
  • Vision models
  • Headless browsers
  • Playwright

AI

  • Tool-calling agent
  • Confidence scoring
  • Entity matching

Billing

  • Dodo Payments
  • Subscriptions
  • Webhooks
  • Usage credits
06

Outcome