ChatGPT App
Ask ChatGPT about your identified website visitors. The Bullseye plugin for ChatGPT gives ChatGPT read-only access to one Bullseye organization, so you can ask things like:
- “Show me ICP-matched visitors this week and explain who deserves a follow-up.”
- “What did Jordan Holloway look at on our site?”
- “Which companies visited this week? Split them by ICP fit.”
- “How is identified traffic trending versus last month?”
ChatGPT only sees data when you ask a question that needs it, and only for the organization you connected.
Info: Looking to build ad audiences in ChatGPT instead? See ChatGPT Ads.
Eligibility
| Plan | Can connect? |
|---|---|
| Active paid plan | Yes |
| Free trial | No (available once the trial converts to paid) |
| Past due or canceled | No |
| AppSumo | Yes, with the API Access add-on |
| Managed partner organizations | Yes, on paid tiers |
Any member of an eligible organization can connect. If your organization becomes ineligible later (for example, the subscription lapses), existing connections stay listed but every request returns an explanation instead of data until the plan is active again.
Connect
- In ChatGPT, open Plugins and search for Bullseye, then click Connect.
- You’re sent to
app.bullseye.so. Sign in if prompted. - Pick the organization ChatGPT should read. Ineligible organizations are shown but disabled, with the reason.
- Review the access summary and click Allow.
You’re returned to ChatGPT and can start asking questions. To connect a different organization, disconnect and connect again; each connection is bound to exactly one organization.
What ChatGPT can do
All tools are read-only. The app can’t send email, edit lists, change settings, buy data or delete anything.
| Tool | What it returns |
|---|---|
search_visitors | Identified visitors for a date range, filterable by name, ICP, persona, domain, page viewed or company. Sortable by last visit, visits or ICP score. |
get_visitor | One visitor’s profile, company and recorded sessions with pageviews, landing page, referrer and UTM parameters |
search_companies | Companies whose employees visited, with ICP fit, visit counts, top pages and a preview of their visitors |
get_company_visitors | A company’s details and its identified visitors |
get_traffic_summary | Identified visitors, companies, visits, sessions and unidentified visitors, compared with the previous period, overall and per domain |
get_visitor_trend | Daily identified and unidentified visitor counts per domain |
list_saved_lists | Your saved lists with sizes and sync status (not list members) |
list_icp_configs | Your ICP definitions and rules |
Data returned
For visitors: name, job title, work email, LinkedIn URL, location, company (name, industry, employee count, website), ICP and persona match, visit and session counts, and pages viewed.
Never returned: personal (non-work) email, phone numbers, IP addresses, user agents, or demographic, income or home-address data.
Limits
| Topic | Detail |
|---|---|
| Default date range | Last 7 days |
| Maximum date range | 366 days per request |
| Page size | 25 by default, up to 100. ChatGPT fetches more pages when you ask for everything. |
| Rate limit | 120 requests per minute per connection |
| Coverage | US website traffic only, same as the Bullseye dashboard |
Website activity is evidence of interest, not proof of buying intent. The app tells ChatGPT this so its recommendations stay grounded in what visitors actually did.
Disconnect
You can disconnect from either side:
- In Bullseye: go to API Keys → Connected apps and click Disconnect next to the connection. Access is revoked immediately. You can disconnect your own connections; organization owners can disconnect anyone’s.
- In ChatGPT: open Settings → Plugins, select Bullseye and disconnect.
Bullseye also revokes a connection automatically when:
- The user who connected leaves the organization
- A stolen or replayed refresh token is detected
- The same user reconnects the same organization (the old connection is replaced)
Security
- Sign-in uses OAuth 2.1 with PKCE. ChatGPT never sees your Bullseye password or API keys.
- Access tokens expire after 1 hour and refresh tokens after 30 days of inactivity; refresh tokens are rotated on every use.
- Bullseye stores only one-way hashes of tokens, never the tokens themselves.
- The organization is fixed by the token. ChatGPT can’t ask for another organization’s data, even one you belong to.
- Every request re-checks your organization membership and plan.
See Data & Privacy for how Bullseye handles visitor data.
Troubleshooting
My organization is greyed out on the consent page
It isn’t on an eligible plan. The consent page shows the reason. Trials become eligible when they convert to paid; AppSumo organizations need the API Access add-on.
ChatGPT says “Not connected to Bullseye”
The connection was revoked or expired. Reconnect from ChatGPT’s plugin settings.
Results look empty
Check the date range (it defaults to the last 7 days) and confirm the tracking pixel is installed on the domain you’re asking about. See Verify Installation.
For developers
The plugin is a remote MCP server using Streamable HTTP:
| Item | Value |
|---|---|
| MCP endpoint | https://api.app.bullseye.so/mcp |
| Protected resource metadata | https://api.app.bullseye.so/.well-known/oauth-protected-resource |
| Authorization server metadata | https://api.app.bullseye.so/.well-known/oauth-authorization-server |
| Client registration | Dynamic (RFC 7591), public clients, none token auth |
| Scope | bullseye:read |
Partners can list and revoke connections for their managed organizations through the Partner API.