Admin Companies
Browse and edit the shared company catalog from the web or the extension; the extension's pen icon opens a full editor that covers identity, location, size, support details, and call-handling config in one place.
The shared company catalog can now be browsed and edited from the web — no browser-extension sideload required. The bulk-import flow also accepts a new optional Secondary Industry column so each company can carry both a primary vertical and a sub-vertical.
Bulk import
-
Sign in as an admin and go to /AdminImportCompanies.
-
Paste a CSV (or drop a file). The expected header row is:
Name, Industry, Secondary Industry, Support phone, DomainHeaders are optional. Any of
secondary industry,sub industry,subcategory, orindustry 2are accepted as synonyms for the secondary column. Empty cells are fine. -
The preview table shows every parsed row with a status badge. Rows with missing or invalid domains are flagged as skipped.
-
Click Dry run to verify counts without writing to the database.
-
Click Import N companies to commit. The report card shows how many companies were added vs. updated.
-
After a successful commit, click View imported companies → to jump straight to /AdminCompanies filtered to the rows from this batch.
Browse and edit
The /AdminCompanies page lists every company in the shared catalog with server-side pagination and search. From here you can:
- Search by name, primary industry, or secondary industry.
- Click the pencil icon to open an edit dialog for
name,industry,secondary_industry,support_phone, andnotes. - Save — every change is recorded to
audit_log.
The "Just imported" banner only appears when you arrive via the deep-link from the import report card. Click Clear filter to drop back to the full catalog.
Edit a company from the extension
Open the side panel, switch to Admin → Companies, and click the pen icon next to any company row. The full-screen editor opens with every editable field for that company already populated, organised into cards:
- Company identity — name, tagline, logo, primary and secondary industry, support phone, friction and match scores, verified / profile matched flags.
- Domains — the list of hostnames this company activates on.
- Web presence — website, LinkedIn URL, public description.
- Location — street address, city, state, country, ZIP, and HQ region.
- Company size — free-text size, employee range (
1-10…1000+), revenue range (0-1M…250M+). - Support details — support URL, support hours, main phone, and internal admin notes.
- What's possible — channel chips (phone, chat, email, etc.).
- Top intents, Escalation & outcomes — the call-handling metadata used by the Overview and Call Tree tabs.
Companies that have a Supabase row (anything matched, claimed, or
imported) save to both local extension storage and the shared
database. Saves are recorded in audit_log and stamp reviewed_at /
reviewed_by so future admins can see who last touched the row. Local-only
companies (added manually with no Supabase counterpart) keep the same
editor but the Supabase-backed sections are read-only with an inline
explanation.
The editor refuses to write any of the protected columns —
claim_status, owner_id, is_active, plan, Stripe IDs, Vapi phone
ID, enrichment_data, perplexity_data, reviewed_at /
reviewed_by, slug, canonical name, source, confidence score. Those
remain managed by the platform.
Why secondary industry
Some source spreadsheets describe a company with both a top-level industry
(retail) and a sub-vertical (big-box, wholesale-club). Both are useful
for routing and filtering, so we store them as separate columns instead of
collapsing them into one. The CSV importer never overwrites a populated
field; if a row already has industry = retail and the new upload lacks a
secondary industry, the existing primary is preserved.
Related pages
- Admin User Management — message and delete users.