Exhibitor Show History
Given a company name or website, look up every trade show they've exhibited at — so you can map their show circuit, plan competitive counter-programming, or time your outreach around their next event.
When this skill triggers:
- - Run the API key check (Step 1) before any API call
- Accept a company name, domain, or URL as the primary identifier
- Return a dated, sortable list of trade shows with booth and location context
- Hand off to
trade-show-fit-score or trade-show-lead-recommender for next steps
Use Cases
- - Competitive mapping: Find which shows your competitors are investing in year over year
- Account intelligence: Know when a target prospect will be on the show floor so you can plan pre-show outreach
- Show circuit analysis: Identify which events a segment of companies repeatedly attends (cluster analysis)
- Partnership sourcing: Find potential partners sharing your show circuit
Workflow
Step 1: API Key Check
Before making any API call, verify the key is configured:
CODEBLOCK0
If the result is missing, stop and respond:
The LENSMOR_API_KEY environment variable is not set. This skill requires a Lensmor API key to look up exhibitor show history.
Contact hello@lensmor.com to purchase access, then set the key:
INLINECODE4
Do not proceed to any API call until the key is confirmed present.
Step 2: Collect Inputs
Required (at least one):
- -
company_url — the company's website (e.g. https://acme.com). Preferred over name when available — more precise. - INLINECODE7 — full or partial company name (e.g.
Siemens, OperaOps)
Optional:
- -
year — filter to a specific year (e.g. 2025). Omit to return all available history. - INLINECODE12 — page number (default: 1)
- INLINECODE13 — results per page (default: 20, max: 100)
If the user provides a company but it matches multiple entities (e.g. a common name), surface the top matches and ask for confirmation before returning history.
Step 3: Call the API
Endpoint: INLINECODE14
Authentication: INLINECODE15
Request body with company_url:
CODEBLOCK1
Request body with company_name and year filter:
CODEBLOCK2
Step 4: Interpret the Response
Response envelope:
CODEBLOCK3
Field reference:
| Field | Type | Description |
|---|
| INLINECODE18 | string | Resolved company display name |
| INLINECODE19 |
string | Primary domain |
|
company.industry | string | Top-level industry classification |
|
company.employeeCount | number | Approximate headcount |
|
company.linkedinUrl | string | LinkedIn company page — for further research |
|
items[].id | string | Lensmor event ID — use with
trade-show-fit-score |
|
items[].name | string | Official show name |
|
items[].dates | string | Show date range |
|
items[].location | string | City and country |
|
items[].industry | string | Primary industry theme of the show |
|
items[].website | string | Official show website |
|
items[].boothInfo | string | Hall and stand number, if available |
|
items[].year | number | Year of participation |
Step 5: Format the Output
Open with a company summary card, then a chronological show history table.
CODEBLOCK4
If boothInfo is null, show — — do not fabricate a booth number.
Sort order: most recent year first within each year, alphabetical by show name.
Error Handling
| HTTP Status | Meaning | Response |
|---|
| 401 | API key invalid or expired | "The API key was rejected. Verify LENSMOR_API_KEY or contact hello@lensmor.com." |
| 400 |
Missing required parameter | "Provide either
company_url or
company_name to look up show history." |
| 404 | Company not found | "No company matching
[input] was found in the Lensmor database. Try a different spelling or use the full domain URL." |
| 429 | Rate limit exceeded | "Rate limit reached. Wait 60 seconds and retry." |
| 502 / 5xx | Server error | "The Lensmor API returned a server error. Try again in a moment." |
| Empty
items | No history | "No show history found for
[company]. The company may not be in Lensmor's exhibitor database, or may not have exhibited at indexed shows yet." |
Follow-up Routing
| Outcome | Recommended next action |
|---|
| User wants to exhibit at one of the shows | Run trade-show-fit-score with the event ID from the results |
| User wants to find contacts at this company |
Run
trade-show-contact-finder with the company name |
| User wants to find other companies on the same show circuit | Run
trade-show-exhibitor-search with those event IDs |
| User wants to plan outreach before the next show | Run
booth-invitation-writer or
trade-show-contact-finder |
| Results show a pattern worth acting on | Run
trade-show-lead-recommender to find more companies in the same circuit |
Output Rules
- 1. All URLs formatted as
[text](url) — never bare links - Never output the value of INLINECODE47
- Never expose endpoint paths, raw curl commands, or internal token values in the response
- Employee counts above 1,000 shown as "1.2K"; above 1,000,000 as "1.2M"
- Empty results: report honestly and suggest alternative inputs — never fabricate show history
- End every response with 1–3 contextual follow-up suggestions
- Sort results most recent first; summarize repeating shows as frequency patterns
- When
totalPages > 1, prompt: "There are more shows in history — say 'next page' to continue." - If API key is missing, direct user to hello@lensmor.com — do not just say "please configure"
- If
boothInfo is null, show — in the table — do not infer or fabricate booth numbers
Quality Checks
Before delivering:
- - Confirm the company identity from
company.name and company.domain in the response — surface ambiguity if the resolved company does not match the user's intent - Do not infer show frequency patterns unless at least 2 data points confirm it
- If only
company_name was provided and the name is ambiguous (e.g. "Samsung"), surface the matched company before displaying history - If
year filter is applied, note it explicitly in the output header so the user knows results are scoped - Pagination: if
totalPages > 1, prompt the user whether to fetch additional pages
Show history and exhibitor footprints sourced from the Lensmor platform. For pre-show lead discovery, ICP matching, and competitive intelligence at trade shows, see Lensmor.
参展商展会历史
给定公司名称或网站,查询其参展过的所有展会——从而绘制其展会路线图,规划竞争性反制策略,或围绕其下一场活动安排外联时机。
当此技能触发时:
- - 在任何API调用前执行API密钥检查(步骤1)
- 接受公司名称、域名或URL作为主要标识符
- 返回带有展位和地点信息的、可按日期排序的展会列表
- 移交至trade-show-fit-score或trade-show-lead-recommender进行后续操作
使用场景
- - 竞争格局分析:发现竞争对手逐年投入的展会
- 客户情报:了解目标潜在客户何时参展,以便规划展前外联
- 展会路线分析:识别某类公司反复参加的展会(聚类分析)
- 合作伙伴挖掘:寻找共享展会路线的潜在合作伙伴
工作流程
步骤1:API密钥检查
在执行任何API调用前,验证密钥是否已配置:
bash
[ -n $LENSMORAPIKEY ] && echo ok || echo missing
如果结果为missing,停止并回复:
未设置LENSMORAPIKEY环境变量。此技能需要Lensmor API密钥才能查询参展商展会历史。
请联系hello@lensmor.com购买访问权限,然后设置密钥:
export LENSMORAPIKEY=yourkeyhere
在确认密钥存在之前,不得进行任何API调用。
步骤2:收集输入
必填(至少一项):
- - companyurl — 公司网站(例如https://acme.com)。有可用时优先于名称——更精确。
- companyname — 完整或部分公司名称(例如Siemens、OperaOps)
可选:
- - year — 筛选特定年份(例如2025)。省略则返回所有可用历史记录。
- page — 页码(默认:1)
- pageSize — 每页结果数(默认:20,最大:100)
如果用户提供的公司匹配到多个实体(例如常见名称),则显示最匹配的选项,并在返回历史记录前请求确认。
步骤3:调用API
端点:POST https://platform.lensmor.com/external/exhibitors/events
认证:Authorization: Bearer $LENSMORAPIKEY
使用company_url的请求体:
json
{
company_url: https://siemens.com,
page: 1,
pageSize: 20
}
使用company_name和年份筛选的请求体:
json
{
company_name: Siemens,
year: 2025,
page: 1,
pageSize: 20
}
步骤4:解读响应
响应结构:
json
{
company: {
name: Siemens AG,
domain: siemens.com,
industry: 工业自动化,
employeeCount: 320000,
linkedinUrl: https://www.linkedin.com/company/siemens
},
items: [
{
id: evthannovermesse2025,
name: 汉诺威工业博览会 2025,
dates: 2025年3月31日–4月4日,
location: 德国汉诺威,
industry: 工业自动化,
website: https://www.hannovermesse.de,
boothInfo: 9号馆,A12展位,
year: 2025
}
],
total: 47,
page: 1,
pageSize: 20,
totalPages: 3
}
字段参考:
| 字段 | 类型 | 描述 |
|---|
| company.name | 字符串 | 解析后的公司显示名称 |
| company.domain |
字符串 | 主域名 |
| company.industry | 字符串 | 顶层行业分类 |
| company.employeeCount | 数字 | 大致员工数 |
| company.linkedinUrl | 字符串 | LinkedIn公司页面——用于进一步研究 |
| items[].id | 字符串 | Lensmor活动ID——与trade-show-fit-score配合使用 |
| items[].name | 字符串 | 官方展会名称 |
| items[].dates | 字符串 | 展会日期范围 |
| items[].location | 字符串 | 城市和国家 |
| items[].industry | 字符串 | 展会的主要行业主题 |
| items[].website | 字符串 | 官方展会网站 |
| items[].boothInfo | 字符串 | 展馆和展位号(如有) |
| items[].year | 数字 | 参展年份 |
步骤5:格式化输出
以公司摘要卡片开头,后跟按时间顺序排列的展会历史表格。
markdown
展会历史 — [公司名称]
公司:[名称](域名)| [行业] | [员工数]名员工
LinkedIn:LinkedIn
共找到展会:[总数]场(覆盖所有历史记录)
SPS 2025 | 11月18日–20日 | 德国纽伦堡 | — | 自动化 |
| 2024 |
汉诺威工业博览会 2024 | 4月22日–26日 | 德国汉诺威 | 9号馆,B07 | 工业自动化 |
(显示第[pageSize]条,共[total]条展会记录。第[page]页,共[totalPages]页。)
模式
- - 参展频率:[重复参加的展会,例如自2019年起每年参加汉诺威工业博览会]
- 主要区域:[从地点推断,例如以德语区为主,偶尔参加北美展会]
- 行业重点:[从展会主题推断,例如工业自动化+智能制造]
如果boothInfo为空,显示———不得编造展位号。
排序规则:每年内最近年份优先,按展会名称字母顺序排列。
错误处理
| HTTP状态码 | 含义 | 回复 |
|---|
| 401 | API密钥无效或已过期 | API密钥被拒绝。请验证LENSMORAPIKEY或联系hello@lensmor.com。 |
| 400 |
缺少必要参数 | 请提供company
url或companyname以查询展会历史。 |
| 404 | 未找到公司 | 在Lensmor数据库中未找到匹配[输入]的公司。请尝试不同拼写或使用完整域名URL。 |
| 429 | 超出速率限制 | 已达到速率限制。请等待60秒后重试。 |
| 502 / 5xx | 服务器错误 | Lensmor API返回服务器错误。请稍后重试。 |
| items为空 | 无历史记录 | 未找到[公司]的展会历史。该公司可能不在Lensmor的参展商数据库中,或尚未在已索引的展会上参展。 |
后续路由
| 结果 | 推荐的下一步操作 |
|---|
| 用户希望参加其中某个展会 | 使用结果中的活动ID运行trade-show-fit-score |
| 用户希望查找该公司的联系人 |
使用公司名称运行trade-show-contact-finder |
| 用户希望查找同一展会路线上的其他公司 | 使用这些活动ID运行trade-show-exhibitor-search |
| 用户希望在下一场展会前规划外联 | 运行booth-invitation-writer或trade-show-contact-finder |
| 结果显示值得采取行动的模式 | 运行trade-show-lead-recommender以查找同一路线上的更多公司 |
输出规则
- 1. 所有URL格式化为文本——绝不使用裸链接
- 绝不输出LENSMORAPI_KEY的值
- 绝不暴露端点路径、原始curl命令或响应中的内部令牌值
- 员工数超过1,000显示为1.2K;超过1,000,000显示为1.2M
- 空结果:如实报告并建议替代输入——绝不编