| Rep | Deals | Revenue | Quota |
|---|---|---|---|
| Mira Okafor | 12 | $184K | |
| Devon Reyes | 9 | $152K | |
| Sasha Yi | 6 | $98K | |
| Junior Vance | 5 | $72K | |
| Priya Anand | 3 | $41K |
Score is a numeric rating from 0 to 100+ that prioritizes leads based on fit and engagement. When a lead takes an action (opens an email, visits pricing, books a meeting), Forge adds the rule's points to their score. Leads scoring above the Hot Lead Threshold are flagged with a red pill on the Leads board so reps know to act first. Leads at half the threshold show as warm (orange).
In practice: a lead who opens an email (+5), clicks a link (+10), and visits pricing (+15) scores 30. Add company size > 50 (+10) and they hit 40. Book a meeting (+30) and they jump to 70, well above the default 50-point hot threshold.
{{firstName}}, {{company}}, {{owner}}Upload a CSV to bulk import records. Download the template first to ensure column order.
Credentials are stored in your browser. For production, consider routing through a server-side proxy so keys are never exposed in client code.
Toggling ON performs a real test:
- Brevo: Calls Brevo's account endpoint with your API key. If valid, connects. If invalid, fails and stays off.
- Outlook Desktop: Verifies
mailto:handler is available. Always succeeds if you have any default mail app. - Supabase: Tests a query against your
settingstable. Fails if URL or key wrong, or if schema.sql has not been run. - Slack: Posts a real "Forge connected" message to your channel. If the message arrives, you are connected.
Once connected: Brevo handles real email sends, Outlook opens compose windows, Supabase syncs every change, Slack posts when records are created, leads convert, or quotes are sent.
Forge uses local storage by default. To sync with Supabase, run schema.sql in your Supabase SQL editor and then connect from API Credentials.
Brevo can report opens and clicks via webhooks to a public URL you control. Without a server that listens for these events, the data has nowhere to go.
To make this work:
- Deploy a Cloudflare Worker that accepts POST requests from Brevo
- The Worker writes events to your Supabase
email_eventstable - In Brevo, configure webhooks pointing to your Worker URL
- Forge reads from
email_eventsand displays opens/clicks on each email activity
create table email_events (id uuid primary key default gen_random_uuid(), message_id text, event text, recipient text, ts timestamptz default now());Replies and inbound emails are currently lost. To capture them, you need an inbox listener.
Two ways to do this:
- Forwarding address (easiest): Each user gets a unique address like
your-workspace+log@forge.io. They BCC or forward emails to it. A server parses them and attaches to matching contact by email address. - IMAP poll: A scheduled job logs into Gmail/Outlook IMAP, fetches new mail, parses, and creates activity records.
Both require server-side code (Cloudflare Workers + scheduled Cron, or a tiny VPS).
A local calendar view of your Tasks is fully wired -- see Tasks > Calendar View. External sync (Google Calendar, Outlook 365) requires OAuth which needs a server.
For external sync: Implement an OAuth flow on a Cloudflare Worker, store the refresh token in Supabase, and have a scheduled job push/pull events. Heavy lift but doable.
Define response-time targets. Forge checks SLAs on every page load and creates bell notifications for breached items.
Geographic regions assigned to reps. Used to auto-route leads with matching state/country.
For a manager to see their team's forecast rolled up, the user list needs a managerId field. Add it in Users & Permissions, then this view will aggregate the forecast tree. Currently, Pipeline > By User shows per-rep breakdowns which is the building block.
1. Add your contacts. Click Contacts in the top nav, then New. You can also import in bulk from Setup > Imports.
2. Capture leads. The Leads tab is a Kanban board. Drag cards between stages as they progress.
3. Convert to opportunities. When a lead is qualified, create a deal in Opportunities. Track the quote sent date and amount inline.
4. Run campaigns. Create reusable email templates in Setup, then send them to a list of contacts, leads, or opportunities from Campaigns.
5. Configure everything. The gear icon (top right) opens Setup, where you control stages, scoring, users, branding, and imports.
Open any record by clicking its name. In the detail panel, click the Email button at the bottom to send using one of your templates. The email goes through Brevo (configure your API key in Setup > API Credentials).
For bulk sends, go to Campaigns, create a campaign, choose your template and your audience (contacts / leads / opportunities), and click Send.
Templates support merge fields: {{firstName}}, {{company}}, {{owner}}, and any custom field.
Setup > Imports lets you bulk upload contacts, leads, and opportunities via CSV. Download the template, fill it in, and upload.
For ongoing sync from other systems (HubSpot, Mailchimp, IFS Cloud, BuildOps), connect them on the Integrations tab.
Cmd / Ctrl + K | Focus search |
Esc | Close modal or panel |
Enter in search | Jump to first match |
Forge CRM v1.0
Where relationships become revenue.