Skip to main content
OnPageIQ Documentation

Company Intelligence

Look up firmographic detail for a list of company domains and keep it in a shared, org-level library.

User goal

Turn a list of domains into usable company profiles without leaving the product.

Tier
Pro and up
Nav label
Company Intelligence
Route
/company-intelligence
Gates
company-enrichment-addon company-enrichment-addon

Prerequisites

  • company-enrichment-addon active for the org (Pro and up)
  • A list of company domains to submit
  • Credits available if the month's included unlocks are already spent

QA focus

  • The library is org-level: entitlement is per-org, and reading a profile requires an unlock the org holds — same-tenant is NOT the boundary
  • A submission is capped per request (config/company-enrichment-addon.php → per_request_domain_cap)
  • Included unlocks are per calendar month and per tier; beyond them each unlock draws credits
  • Enrichment is asynchronous — the provider is polled, so the UI must show progress rather than block
  • In-flight coalescing is bounded on recency: a stalled run must stop holding its domains, the monthly allowance and the progress row (config company-enrichment-addon.stuck_after_minutes)

Overview

Company Intelligence turns a list of company domains into firmographic profiles in a shared, organization-level library — available from the top-level sidenav, not tied to a single project.

What you get

  • Submit domains for enrichment (capped per request so huge pastes are split)
  • An org-wide library everyone on the org can browse and reuse
  • Per-company unlocks: browse is open with the add-on; reading a profile needs an unlock the org holds
  • Monthly included unlocks per tier; further unlocks draw from org credits

How it works

  • Submit domains; enrichment runs in the background with visible progress
  • Browse the library; locked vs unlocked companies are clearly distinguished
  • Opening a profile spends an included unlock first, then credits — reopening an already-unlocked company does not charge again
  • Submitting a domain that is already being enriched rides on that run instead of charging twice. If a run stops making progress it releases its domains after 30 minutes by default (configurable), so resubmitting does a real enrichment rather than silently attaching to a run that will never finish
  • A run that stalls is resumed automatically by a scheduled reconciler; one that cannot be resumed within the provider's retention window is failed and its reserved credits returned

Common issues & false alarms

  • Submission rejected → more domains than the per-request cap; split the list
  • Profile visible in the library but not readable → the org has not unlocked that company yet
  • Results not appearing immediately → enrichment is asynchronous; the provider is polled and reconciled
  • Resubmitting a domain seems to do nothing → it is attaching to an enrichment already in flight for the org (not a second charge). If that run has stalled, its domains are released after 30 minutes by default (configurable) and the next submission enriches for real
  • Progress row says the enrichment stopped responding → the run went quiet past the threshold. It stops polling and the domains are released; submit again to retry

Interactive guide

Step of

All steps (reference)

  1. Step 1. Submit domains to enrich

    Paste or upload the company domains you want. A single submission is capped so one huge paste cannot swamp the queue; split a longer list across submissions.

    What to do: Company Intelligence → submit a list of domains.

    Where: company-intelligence.index

    Expected (pass)

    • The request is accepted and enrichment starts in the background
    • Progress is visible rather than the page blocking

    Negative cases (must fail safely)

    • More domains than the per-request cap → rejected with the applied cap named
    • Org without the addon → upgrade page, not a bare 403
  2. Step 2. Browse the org library

    Enriched companies land in a library shared across your organization, so a domain someone else already looked up does not cost a second unlock.

    What to do: Company Intelligence → browse and search the library.

    Where: company-intelligence.index

    Browse the org library

    Expected (pass)

    • Previously enriched companies are listed for the whole org
    • Locked and unlocked companies are visibly distinguished

    Negative cases (must fail safely)

    • Another organization's library is never visible
  3. Step 3. Open a company profile

    Opening a profile spends an unlock if your org does not already hold one for that company. The month's included allowance is used first; after that each unlock draws credits.

    What to do: Open a company from the library.

    Where: company-intelligence.show

    Open a company profile

    Expected (pass)

    • The firmographic detail renders for an unlocked company
    • Re-opening an already-unlocked company does not spend a second unlock
    • The remaining monthly allowance is visible before spending

    Negative cases (must fail safely)

    • Allowance spent and no credits → blocked with a top-up prompt, nothing charged
    • A profile id the org holds no unlock for → refused, even though it is the same tenant
  4. Step 4. Admin: enable for an org in Filament

    SuperAdmins can grant Company Intelligence without a Stripe subscription by flipping the per-org Pennant override. After enabling, the org sidenav shows Company Intelligence. Enriched profiles (including raw provider JSON) are visible under Filament → Intelligence → Company Profiles.

    What to do: Filament Admin → Organizations → edit org → Add-ons → enable “Company Intelligence”. Then Filament → Intelligence → Company Profiles to inspect cache rows.

    Expected (pass)

    • The Add-ons toggle writes a Pennant override for company-enrichment-addon
    • Tenant sidenav shows Company Intelligence for that org
    • Company Profiles resource lists enriched domains after a successful submit

    Negative cases (must fail safely)

    • Toggle off → tenant route shows the upgrade page / forbidden for gated routes
    • Jobs stuck queued → ensure Horizon watches the company-enrichment queue (supervisor-company-enrichment)

    Tips

    • Requires BRIGHTDATA_API_TOKEN and a worker/Horizon supervisor on the company-enrichment queue.

Related guides