CaptureOS

Capture Intelligence Platform

⚙ Connect Supabase
CaptureOS uses Supabase for real authentication. Free tier handles thousands of users. Setup takes 5 minutes.
1. Go to supabase.com → New project
2. Settings → API → copy Project URL & anon key
3. Authentication → Providers → enable Email + Google
4. SQL Editor → run the schema below → Paste keys & save
5. Team setup: The first person to sign up becomes the org owner. To add teammates, go to Supabase → Authentication → Users → invite them, then set their user_metadata.org_id to match the owner's user ID. All teammates sharing the same org_id see the same data.
▶ Required SQL — run once in Supabase SQL Editor
-- SHARED TEAM DATA MODEL
-- All users in the same organization share one row per table (org_id).
-- The org_id is the Supabase user ID of whoever first set up the workspace.
-- Team members set org_id in their profile metadata at signup.

create table if not exists crm_org_settings (
  org_id text primary key,
  org_name text,
  created_at timestamptz default now()
);
create table if not exists crm_opportunities (org_id text primary key, payload text, updated_at timestamptz);
create table if not exists crm_customers     (org_id text primary key, payload text, updated_at timestamptz);
create table if not exists crm_funding       (org_id text primary key, payload text, updated_at timestamptz);
create table if not exists crm_expansions    (org_id text primary key, payload text, updated_at timestamptz);
create table if not exists crm_contacts      (org_id text primary key, payload text, updated_at timestamptz);
create table if not exists crm_activity_log  (org_id text primary key, payload text, updated_at timestamptz);

-- Enable Row Level Security
alter table crm_opportunities enable row level security;
alter table crm_customers     enable row level security;
alter table crm_funding       enable row level security;
alter table crm_expansions    enable row level security;
alter table crm_contacts      enable row level security;
alter table crm_activity_log  enable row level security;

-- Team members share data if they have the same org_id in their metadata
create or replace function get_org_id() returns text language sql stable as $$
  select coalesce(
    (auth.jwt() -> 'user_metadata' ->> 'org_id'),
    auth.uid()::text
  );
$$;

create policy "team data" on crm_opportunities for all using (org_id = get_org_id());
create policy "team data" on crm_customers     for all using (org_id = get_org_id());
create policy "team data" on crm_funding       for all using (org_id = get_org_id());
create policy "team data" on crm_expansions    for all using (org_id = get_org_id());
create policy "team data" on crm_contacts      for all using (org_id = get_org_id());
create policy "team data" on crm_activity_log  for all using (org_id = get_org_id());
create policy "own data" on crm_customers     for all using (auth.uid() = user_id);
create policy "own data" on crm_funding       for all using (auth.uid() = user_id);
create policy "own data" on crm_expansions    for all using (auth.uid() = user_id);
create policy "own data" on crm_contacts      for all using (auth.uid() = user_id);
Saved

CEO Dashboard

Pipeline health at a glance

Logo
CaptureOS Capture Intelligence Platform
Pipeline by Product Line
Pipeline Health
Pipeline by Stage
🔥 Deals Closing This Quarter
OpportunityAccountProductStageValueClose DateOwner
📋 Follow-Ups DueView All
📄 RFPs UpcomingView All
RFPDeadlineValue
Recent Opportunities
OpportunityAccountStageProductValueNext ActionOwner
⚡ Team Activity Feed Shared across your team
Score 🔥 80–100 = Smoking hot ⚡ 60–79 = Warm ❄ <60 = Cool
OpportunityScoreStage ValueCloseOwnerWhy Hot
Opportunity Account Stage Product Prob% Total Value Close Date Next Action Due Owner Last Touch Health ↕ Actions
Deal Overview
Timeline & Activity
🎯
Deal Coach
Analyzing deal…
HIGH
Log next action →
click to open activity log
Add your Anthropic key in
Company Brain → Settings
to activate Deal Coach
Next Action
Contacts
Financials
Upcoming Meetings
No meetings linked yet
Status Opportunity Account Next Action Due Date Stage Owner Actions
Status Opportunity Account Product Stage Value Last Touch Days Silent Owner Health ↕ Actions
RFP Name Agency / State Release Date Deadline Days Left Est. Value Status Owner Actions
OpportunityAccountProduct OwnerLicenseConsultingRecurring TotalClose DateCampaign Source

Stage Funnel & Avg Time in Stage

How long deals spend at each stage · where pipeline stalls

Avg Days to Close by Product

Won deals only

Rep Velocity

Avg days to close by owner

Stall Risk — Open Deals

Deals sitting longest relative to avg close time for their stage

DealAccountStage Days in StageStage AvgStall IndexValue
All
In Progress
Planned
Completed
📞 Cold Call Campaigns
Campaign Name TypeStart EndStatus ContactsRespondedOpps CreatedActions
Revenue by Source
Deals Won by Source
Won Deals with Campaign Source
OpportunityAccountProductLead SourceCampaignValueOwnerClose Date
1
Choose Type
2
Upload CSV
3
Map Fields
4
Preview
5
Done
How to export from Salesforce — exact steps
1
In Salesforce, go to Setup → search Data Export → click Export Now
2
On the Data Export screen, check Replace carriage returns with spaces (already checked by default — keep it on)
3
Under Exported Data, check exactly these boxes — nothing else needed:
Opportunity
Contact
OpportunityHistory
OpportunityContactRole
Task (calls/emails/tasks)
Event (meetings)
Account
Campaign (optional)
Everything else (Contract, Approval, Lead, RecordType, etc.) can be left unchecked.
4
Click Start Export. Salesforce emails you a download link when ready (usually a few minutes). You'll get a ZIP with multiple CSV files inside.
5
From the ZIP, upload these files here in this order:
1st Opportunity.csv → select Opportunities
2nd Contact.csv → select Contacts
3rd Task.csv + Event.csv → select Activities / Tasks
Opportunities must be imported first — Contacts and Activities link to them by Opportunity Name.
What are you importing?
📈
Opportunities
Deals, pipeline, won/lost
📞
Activities / Tasks
Calls, emails, meetings linked to opps
👤
Contacts
People linked to opportunities
📣
Campaigns
Marketing campaigns
📄
RFPs / Bids
From opportunities marked as RFP
Name Role / Title Agency / Account Opportunity Email Phone Stage MQL
CustomerContract #Vehicle Ceiling ValuePeriod HealthEngagementRenewal RiskRenewal
Published posts are saved locally and can be exported to your website CMS.
All Posts
Published
Drafts
Opportunity Radar — Contracts You Could Win
📡 YOU are the vendor — these are RFPs you could win, not grants your customers apply for
Last scan: never · Click AI Scan to detect predicted opportunities
High Probability Opportunities 0
Emerging Opportunities 0

Budget Signals

Expiring Contracts

💰
Grant Tracker — Money Flowing TO Your Customers
Track federal grants & NOFAs that tribal programs can apply for. Alert customers to new funding → they get the grant → they fund your software. Looking for contracts where you are the vendor? → Opportunity Radar
Active NOFAs & Grant Opportunities
Federal money your customers can apply for · Alert them before deadlines → new grant = new budget for your software
Alert Your Customers
These customers may qualify. Send them a funding alert → they apply → new budget flows to your platform.
Coverage Map
Customer (active) Prospect (in pipeline) At-Risk Customer Lost Deal
All Pins
White Space
States with no presence
Templates
Select a template or create a new one

RFP Answer Library

Upload past RFPs → AI extracts Q&A pairs → Auto-match to new RFPs · ✦ AI-powered
Answer Library
No answers yet.
Upload a past RFP to get started.
Select a question
← Select a question from the library to view and edit its answer.
📚 Knowledge Library 🧠 FEEDS BRAIN
📚
Your Knowledge Library is empty
Everything you add here gets injected into the Company Brain when it's relevant to a question. Great things to add: blog posts about your solution, tribal policy articles, battle cards, customer stories, RiteTrack differentiators, federal funding updates.
Suggested Questions
📋 Pipeline
🏛 Customers & Renewals
💰 Grants & Funding
🎯 Strategy
Anthropic API Key
Key stays in your browser. Never sent anywhere else.
Context Included
All opportunities
Activity timelines
RFP tracker
Meeting logs from Memoro
Data Management
🧠
Company Brain
Ask anything about your pipeline, accounts, deals, or meeting history. I have full context across every opportunity and activity in this CRM.
Sequence Library
Active Enrollments
Your sequences
Sequence nameStepsTriggerActiveRepliedModified
No sequences yet
Total proposals
0
all time
Sent & viewed
0
awaiting response
Accepted
0
closed from proposal
Avg value
$0
per proposal
All proposals
ProposalAccountValueStatusTrackingCreatedExpires
No proposals yet — click + New Proposal to build one
Meetings today
0
on your calendar
This week
0
upcoming
Linked to deals
0
auto-matched
Calendar
--
not connected
Upcoming meetings
MeetingDate & timeLinked dealAttendees
No meetings yet
Google Calendar

Paste your Google Calendar API key to auto-import meetings. Meetings are linked to deals by matching attendee emails and account names.

Google Cloud Console → Create API key → enable Calendar API → paste above

Auto-link settings
NAICS Prospecting
Recompete Tracker
Competitor Wins
Agency Spending
Open Solicitations
12
matching your NAICS
90%+ Match
4
high-fit opportunities
Set-Asides
7
tribal / 8(a) / small biz
Closing This Week
2
respond fast
Open Solicitations
Synced today 6:00 AM
SolicitationAgencyNAICSValueSet-AsideIncumbentMatchCloses
📋
Add an Opportunity
📞
Log a Call
☀️
Morning Briefing
🏢
Add a Customer
🧠
Ask Company Brain
🎯
CaptureOS Assistant
● Online · Ready to help
How did the call go?
Log activity for
Went well Positive, moving forward
🔁
Needs follow-up Action required
Dead end No response / lost
📋 Meeting Prep
Preparing...