LinkedIn automation (sending invites, scraping search URLs, reply detection) cannot run from a browser — LinkedIn blocks CORS + requires session cookie auth server-side. This panel stores campaigns, messages, and contacts in localStorage so the UI is fully usable now. When you're ready to automate, wire these data shapes to a worker (see "Settings → Integration").
Active Campaigns
Contact Pipeline
Unified Inbox
AllRepliedConnectedHotFollow Up
Message Templates
◆ Merge Tag Reference
Tags pulled from each contact record at send time.
Basic:{FirstName}{Company}{Title}{Mutual}{ContactID} Fallback:{Company|your company} — if no Company, uses "your company" Spintax:{{Hi|Hello|Hey}} — random variant per contact Conditional:{if:Tag}text{else}fallback{/if} — branches on a tag
Automation Settings
LinkedIn Session
Paste your li_at cookie value. Never leaves your browser. Used by the automation worker when you deploy one. (how to find it)
Rate Limits
LinkedIn flags accounts that exceed ~200 connection requests/week. These settings get enforced by your automation worker.
Integration
Two deployment paths to wire this UI to real LinkedIn actions:
Build an automation worker — Cloudflare Worker or Node service. Reads campaigns from this CRM's exported JSON, takes the li_at above, runs on a cron schedule, logs back replies via webhook.
Webhook in from GuardianCEO — keep using GuardianCEO for execution, push their reply/status webhooks into this CRM via an endpoint like /webhook/linkedin. Your CRM becomes the unified inbox.
New Campaign
Compose email
Sends from your connected Gmail (To / Cc / Bcc accept any address — recipients don't have to be in the CRM). For multi-step nurture flows or batch sends, use Sequences or Blasts instead.
— Checking Gmail connection —
— / — sent today
Email Sequences
No sequences yet
Ask Julie: "Build me a 3-email drip for Utah PD chiefs about OraPlex"
Email Blasts
One-off campaigns — send a single email to a segment. Great for product announcements, events, deck drops.
Contact Segments
Utah PD Chiefs
industry=government AND state=UT AND title contains "chief"
— contacts
Rehab Centers · West
industry=treatment AND region=west
— contacts
Unanswered After 14d
last_activity > 14 days AND status=connected
— contacts
Email Templates
Save reusable snippets reps can drop into any sequence or manual email.
Campaign Analytics
Sent · MTD
0
—
Open Rate
0%
—
Click Rate
0%
—
Reply Rate
0%
—
Charts ship once backend is live — opens and clicks pulled from email_sends + email_events tables.
Team KPIs
Team Pipeline
$0
—
Won MTD
$0
0 deals closed
Active Deals
0
across all reps
Quota Pace
0%
—
Rep
Revenue
Quota Progress
Deals Won
Outreach
Calls
No users in the org yet. Invite reps from .
◆ Team Activity · Live
No recent team activity yet. Activity will appear here as your reps work leads.
◆ Lead Assignments
Reassign unclaimed leads or rebalance across the team.
Click any contact → "Reassign to…" now that contacts are org-scoped.
Every conversation you've had with Julie. Open one to pick up where you left off — your context follows you across devices.
Edit pipeline
Rename, recolor, reorder (↑↓), or hide stages. Built-in stage keys never change — your data keeps working — only display does. You can also add custom stages; deals that haven't reached one yet just won't appear in that column. Applies org-wide for every rep on save.
Welcome to OraTek
Let's get you set up. Five quick steps. You can skip anything and come back from Settings.
0 / 5
Connect your AI
Paste an Anthropic, OpenAI, or Gemini key so Julie can help. Each rep brings their own — keys stay in your browser.
✓ Done
Connect Gmail
Send 1:1 sales emails from your address. Julie drafts in your voice and pauses sequences when a prospect replies.
✓ Done
Connect Google Calendar
Real schedule on the dashboard, "next meeting" context for Julie, and one-click demo booking.
✓ Done
Connect LinkedIn (optional)
Paste your li_at cookie to power drip campaigns. Encrypted at rest, never exposed to the browser.
✓ Done
Add your first lead
Use the Map to find prospects in your territory, or click + Add Lead on the Contacts toolbar.
✓ Done
Commissions
Clinical payouts based on kit counts from lab data. Run any period — weekly, bi-weekly, monthly, or custom — import lab data, then pay out from Payouts by Person.
Run
Kits this run
—
Revenue
—
Kit count × price/kit
Total commissions
—
Net to OraTek
—
Revenue − commissions
Lab data
Drop CSV / XLSX here or click to pick a file Or paste rows directly into the textarea below (one row per line, tab- or comma-separated; header row optional)
Commission report
Per customer — kits, revenue, every role's slice, total commission, net to org
Practice
Kits
Revenue
Rep
Specialist
Sales Mgr
Regional
Sub-Reg
Division
Sub-Div
Sales Div
Total Comm
Net
Pick a run or create one to get started.
Payouts by person
One row per person/team. Pay the outstanding amount, then mark Date Paid + Method.
Person / Team
Total owed
Outstanding
Rep
Spec.
SM
Reg.
Sub-R
Div.
Sub-D
Sales Div
Status
No payouts yet.
Customer setup
One row per practice. Role slots pull from your org users — kit counts auto-fill from lab imports.
Loading customers…
Loading your commissions…
Mark paid
New commission run
Pick any range — weekly, bi-weekly, monthly, custom. Defaults to the same length as your last run.
Name this run by the lab or batch (Express Labs, Western Slope, etc.) so you can tell them apart when you have multiple runs in the same period. Auto-fills from the dates; type your own to override.
Confirm
Add practice
You can wire reps + price-per-kit in the customer grid after creating.
Settings
Customization, lead types, dedup tools, and account preferences. Connection setup (Gmail, LinkedIn, AI provider, API endpoint) lives in the Connections view.
Chat notifications
Control what triggers a push to your phone. Direct @mentions always come through unless you turn that off explicitly.
Delete account
Removes your personal info from the OraTek CRM and signs you out everywhere. The organization's data (deals you owned, tasks you created, messages, etc.) stays with the org. Hard-purge runs 30 days later — an admin can restore your account within that window. More details.
Delete your account?
This will:
Sign you out of every device immediately.
Scrub your name, email, phone, avatar, OAuth links, and AI keys from your account row.
Schedule a hard purge 30 days from now.
Leave the work you owned (deals, tasks, contacts, messages) in the organization, attributed to "Deleted user".
Type to confirm.
Setup checklist
Re-open the first-run wizard to finish connecting integrations or check what's still pending.
Email signature
Auto-appended to every email you send through the CRM (compose modal + scheduled sends). Plain text or simple HTML — bold, italic, links work. Leave blank for none.
Team logo
Pick one of your existing teams (created in the Users section), then click Upload or drag an image anywhere onto this card. It appears on the org chart and on that team's cards in the recruiting pipeline. PNG/JPG/SVG, kept small (auto-resized to 256px).
PREVIEW
none
Commission rates
Flat dollar amounts per kit. Mirror of Julie's Rates tab. Edit any value below — the next commission run (and live calculations on the current open run) use these. Finalized runs are unaffected (rates are snapshotted at finalize).
Sales divisions
Managed list of division / team names you pay commissions to (e.g. "Team Teamwork", "OraTek Clinical"). Used as the Sales Division dropdown on Customer Setup. Archiving keeps past payouts intact.
Loading…
Pipeline categories
Rename, recolor, reorder, or hide the columns in the Sales pipeline + Recruiting pipeline kanbans. Changes apply org-wide for every rep.
Bulk import
Upload a CSV of contacts (with email, phone, company, title, location, deal stage). We'll match on email + dedupe so existing rows get enriched rather than duplicated. Up to 10,000 rows per upload.
Contact exclusivity
How long does one rep "own" a contact after they touch it? Other reps see it red (locked) until the warning window passes, then yellow (cooling), then it loses color and is fair game. Applies to every rep in the organization.
days
days
Commission plans
Set the payout rule per role. Flat = same rate on every won deal. Tiered = rate steps up as a rep's MTD value climbs (rewards top performers). Defaults to 10% flat when nothing is set. Reps see their MTD/QTD/YTD commission on the dashboard widget; admins get a monthly payout CSV.
Set the starter dashboard layout each role sees on first sign-in. After the rep customizes their own layout, their personal version overrides — this only applies to new hires (or anyone who hasn't customized yet). Pin your current dashboard layout as the default with one click.
Pipeline WIP limits
Set the maximum number of deals a rep should hold in each stage at once. Optional — leave 0 for "no limit". The kanban column tints red when over, so the rep is nudged to close or kill stale deals before pulling in new ones. Classic kanban discipline.
Sales playbooks
Define the prescribed step-by-step for each customer profile. Reps see the matching playbook on every deal's detail drawer with a check-off list. Best-fit auto-selects based on industry, type, and deal size — reps can switch manually if the match isn't right.
Win celebration webhook
Auto-broadcast every Closed Won deal to your team's Slack, Microsoft Teams, or Discord channel. Paste your incoming webhook URL below — we auto-detect the platform. Only fires on deals marked Closed Won; no other stage triggers a message.
Daily email send cap
Hard ceiling on how many emails each rep can send per day across Compose, Sequences, and Blasts combined. Protects sender reputation if someone goes too aggressive. Resets at midnight in each rep's local time zone. Hard maximum is 500/day per rep regardless of what's set here. Per-rep overrides live on the People profile.
/ day
Lead trash
Deleted leads land here for 30 days before they're permanently removed. Restore any time — the contact returns to the Leads list with the same id, owner, and history.
Push notifications
Get OS-level notifications for chat DMs and @announce posts even when the CRM tab is closed. Works on Mac, Windows, Android. On iPhone, install this site to your home screen first (Share → Add to Home Screen) — that's an iOS requirement.
Checking support…
My profile
Your personal contact info. Pronouns + personal email + personal phone are person-controlled — visible to everyone in the org, but only you (or an admin) can change them.
··
Profile picture
PNG / JPG. Auto-resized to 256×256.
Saves immediately
Daily digest
A 7am morning email summarizing yesterday's revenue, new deals, churn signals, attention items, and your open tasks. Pick which sections you want.
Reports builder
Pivot-style reports across deals + tasks. Group by stage, owner, company, industry, label. Metrics: count, sum of deal value, average deal value, overdue task count.
Workflow automations
If-this-then-that rules. Trigger on deal stage changes, stale deals, overdue tasks, new contacts. Actions: send a team chat message, create a task, send an email. Conditions are optional AND-list filters on the trigger payload.
Audit log
Every authentication event, record change, billing event, and deletion — captured with who, what, when, from where. Required for buyer security reviews and compliance audits.
Bearer tokens for the public REST API at /api/v1/*. Useful for Zapier-style integrations or any system that needs programmatic access to your contacts, deals, and tasks. API docs →
Webhooks
POST event payloads to a URL of your choice when things happen — deal stage changes, new contacts, completed tasks. Signed with HMAC-SHA256 so you can verify the sender.
Two-factor authentication
Protect your account with an authenticator app (Google Authenticator, 1Password, Authy). Required for Enterprise customers; recommended for everyone.
Data rights
Export everything we have on you (or your org if you're an admin) as a single JSON file. Reps can request account deletion; admins can request org deletion. Both have a 30-day undo window before the nightly worker hard-scrubs the rows — required for GDPR / CCPA compliance.
⏳Deletion pending
Demo data
Populate this org with fake lab-sales data for a sales demo or video shoot — Dunder Mifflin cast as teammates, ~30 Utah-region lab contacts at every pipeline stage, tasks, candidates, a team chat conversation. Idempotent and reversible. Don't run on an org with real customer data.
Lead Types
Manage the categories your team uses to classify leads — police, clinics, workplaces, etc. Add custom types, edit colors, change icons.
Theme Studio
Customize accent colors and gradients. Per-user — your changes don't affect anyone else on the team.
Duplicate Scanner
Find leads that look like the same person — by email, phone, or LinkedIn URL. Resolve dupes manually or in bulk.
View as Role
Admin testing tool — override the role used for nav visibility. Only changes what you see; permissions are still enforced server-side.
OraTek Portal
Back to the team portal home page. The CRM is one tool among several — training, maps, tools all live there too.
Each rep brings their own accounts. Everything below is tied to your personal access — your keys stay in your browser or encrypted per-user in the CRM. Nothing is shared across the team.
AI Provider
—
Julie works with any major LLM. Pick one, paste the key, done. Each rep brings their own — keys stay in your browser.
◆ Browser-key warning
◆ Help · Paste your LLM provider's API key above (Anthropic, OpenAI, or Gemini — depending on what you picked). Don't have one? Show me how to get one →
Gmail
—
Send 1:1 sales emails from your own address. Julie drafts in your voice and uses your signature. Reply detection pauses drip sequences when a prospect writes back.
Puts your real schedule into the dashboard Calendar widget, powers "next meeting" context, lets Julie book demos and send Calendly-style invites on your behalf.
Scope: calendar.events
Google Workspace (admin)
—
Admin-only. Connect a Google Workspace super-admin account (e.g. julie.moon@oratekdx.com) so the CRM can create new-hire @oratekdx.com accounts and add them to the standard-meetings group during onboarding. Connect once for the whole org.
Paste your LinkedIn li_at session cookie. Used only by the automation worker — never returned to your browser. Encrypted at rest. Rotate quarterly or whenever LinkedIn logs you out.
◆ How to find it · DevTools (F12) → Application → Cookies → linkedin.com → copy the value of li_at. Looks like AQED... (long string).
Zoho Books
SETUP NEEDED
Pull invoice + payment data per rep so the CRM can show commission projections (open invoices × rep split) and commission history (paid invoices, by month/quarter). Needs Zoho Books OAuth client id + secret in the backend env.
Send offer letters, NDAs, and customer contracts for signature from inside the CRM via Zoho Sign (decision locked 2026-05-19 — OraTek is on Zoho One Enterprise). Webhook back to OraTek when signed → envelope flips to signed and the PDF is downloadable inline. From any contact's drawer, click Send for Signature → pick a template → enter recipient → done.
Google OAuth verification — OraTek's Google OAuth app is pending verification. Until it passes, you'll see an "unverified app" warning on first connect. Click Advanced → Go to OraTek CRM (unsafe) — it's safe; it's ours.
LinkedIn cookies — LinkedIn invalidates sessions whenever they detect unusual activity. If your automation worker errors, it's usually time to paste a fresh cookie.
Anthropic billing — heavy Julie use (Focus Mode daily, long chats) runs $30–80/month on Sonnet 4.6. Set spend limits in console.anthropic.com.
Setup guide
Connector help
—
Users
Every user in the org — reps, managers, marketers, contractors. Admins can invite, promote, demote, and disable accounts here. HR records (compensation, performance notes, emergency contacts) are gated behind the HR-only flag in addition to admin role.
◆ Users
—
Name
Email
Role
Status
Actions
Loading roster…
◆ Pending invites
—
Loading invites…
◆ Teams
—
Loading teams…
Invite a teammate
Reps must have a team AND a manager so they roll up to the right person on the leaderboard and inherit team-specific chats automatically.
✓ Invite created — send them this link
Events & Conferences
Ask Julie: "Find me upcoming oral fluid / drug testing conferences in Texas for 2026" and it will research + fill in all the event details (dates, location, price, industry fit).
New Event
HR workspace
All locked employee records, offboarding workflow, compliance certs, and a complete audit trail of every HR-record access. Restricted — only admins and users with the HR access flag can see this section.
HR · ADMIN ONLY
Active heads
—
in the org
Contractors
—
— W-2
Offboarding
—
active separations
Compliance gaps
—
missing docs
ActiveInactiveOffboardingOnboarding
Loading directory…
Loading offboarding…
Loading compliance…
Loading audit…
Vault
Your personal vault for work passwords — encrypted at rest, private to you. Share an entry with a teammate and it appears in their vault read-only, marked with your name; revoke any time. Every view + edit is logged in the audit trail.
0 ENTRIES
Loading vault…
Org Chart
0Users0Teams0Levels deep0Managers
⇅ DRAG A CARD ONTO ANOTHER TO REPARENT
Add person
Manage teams
Loading…
Sales Recruiting
Candidate
Target Role
Stage
Source
Exp. Comp
Last Activity
No candidates yet. Click + Add Candidate or ask Julie to research sales reps in Utah.
Interview calendar loads from Google Calendar when connected (via Connections panel).
Candidate
Resume & files
Drop a resume here — auto-fills the form, then attaches when you Save
PDF, Word, RTF, or images · 10 MB max each
▸ Unassigned Leads 0
Leads color key
Each column on the leads table is color-coded. Here's what every color means.
Lead score
● 80+Hot — high intent / strong signals, work it now
⭑ 60–79Warm — engaged, keep nurturing
◐ 40–59Cool — some activity, lower priority
· <40Cold — little/no signal yet
Status
ProspectIdentified, not yet contacted
VisitedContacted or met with
SoldClosed-won customer
SkipDon't pursue (bad fit / lost)
UntouchedNo status set
Deal stage
LeadQualifiedProposal
NegotiationClosed WonClosed Lost
Priority dot
LowMediumHighUrgent
Category & Segment
The Type badge (clinic, trucking, corrections, etc.) and the Segment filter (Workplace / Forensic / Clinical / Distributor) each use their own brand color — these describe what kind of org the lead is, independent of score or status.
0 selected
No leads found
Add leads here or search for them on the Sales Map
$0 book · 0 accounts · 0 kits delivered
Account
Primary Contact
Type
Owner
Deal Value
Kits
Customer Since
Last Activity
Health
Reorder
Renewal
Actions
No active clients yet
A lead becomes a client when its status flips to Sold or its deal stage hits Closed Won.
Tips: tomorrowfri2026-06-01 for dates · !!!/urgent for priority · #finance/#sales/#ops/#hr/#strategy/#cs for department · recur:weekly|biweekly|monthly|quarterly|annual · [Month End] for list · prefix with log: to add a Weekly Log entry instead
Filters
All tasks0
Inbox0
Lists
Weekly log.
Decisions, customer calls, learnings — the non-task work that still belongs in your Friday Report.
Friday Report
Auto-rollup of the last 7 days — completed tasks, open work, blockers, and log entries. Refresh to recompute.
Click Recompute to assemble this week's report.
Drop files here
PDF, Word, Excel, PowerPoint, images
Companion tools.
Maps, directories, training, and one-pagers that live next to the CRM. Each opens in a new tab so your pipeline stays open.
Pick a whiteboard from the left, or click + New to start one.
Drag shapes from the toolbar onto the canvas. Boxes, ovals, and text. Click to select; drag to move; double-click text to edit; Delete key to remove.
Pick a tool, then click-drag on the canvas.
Clinical training
QuickSwab · Clinical Script · Version 3.1
Industry Call Scripts
Select an industry to get customized call scripts, discovery questions, objection handlers, and closing techniques. Click Edit Scripts to author your own.
Call Queue
00:00
0
Calls Today
0
Connects
0
Voicemails
0%
Connect Rate
0/ 50 goal
Ready to dial
Hit "Start Session" to load your first lead, or click any lead in the queue.
Log & Disposition
Connected
No Contact
Other
Quick Notes
Workflow Automations
Automate actions when deal stages change, follow-ups are due, or contacts are updated.
Example Automations
Proposal → Create Task
When deal moves to Proposal, auto-create "Send proposal" task
Closed Won → Celebrate
When deal is won, log a celebration note and show notification
Overdue → Priority Bump
When follow-up becomes overdue, set priority to High
Qualified → Schedule Follow-up
When deal moves to Qualified, auto-set 3-day follow-up
Leaderboard
#
Rep
Streak
Calls
Trend
Achievements
Add Deal Value?
You're moving this deal forward — what's the estimated yearly total revenue from this account?
No plan yet. Auto-generate one tailored to this deal's stage + history.
Email
Notes · thread
Pipeline
Order History
Commission Chain
Custom Fields + Add Field
Contacts + Add
Lead Info
Dates
✓ LAST OPENED—
Tags
Tasks + Add
Stage Playbook
Attachments + Add
Pinned notes
Activity Timeline
AssignedUnassigned
Segment—
Saved Lists
Save List
Add Lead
Got a business card? Snap a photo — I’ll fill this in for you.
Import Contacts
Drop a CSV or Excel file here, or click to browse
Supports .csv, .xlsx, .xls
Fill this out for a clean import — Julie + the importer flag anything off.
Columns:Company (required), Contact Name, Title, Email, Phone, Address, Website, Category, Status, Source, Deal Value, Tags, Notes.
Status must be one of: prospect · visited · sold · skip (or blank).
Segment (Workplace/Forensic/Clinical/Distributor) is set with the picker below at import — leave it to Julie if unsure.
Paste a messy list and Julie will extract names, emails, phones, companies, and addresses — no template required. She also handles screenshots and photos of lists.
+ New Category Type
Create a new industry or company type. It'll be available everywhere — CRM filters, map, imports, and contact records.
Manage Lead Types
Customize categories for your contacts. Default types can't be removed. Custom types sync to the Sales Map.
Add New Type
Click Use to open composer · tokens auto-fill from a lead