People, companies, deals, tasks and a board are a sitting's work for one person. Copper's draw is that it records your Gmail, Calendar and Contacts against them without anyone typing, and that part means Google OAuth: a Cloud project, a consent screen, restricted Gmail scopes and refresh tokens that die after 7 days while the project is in Testing mode. Add the time zones and duplicates that sync always brings and it becomes a weekend.
Before you buildCopper has no free plan, only a trial. If you need contacts and a deal board alone, HubSpot's free CRM or a self-hosted Twenty may cover it.
Build me a personal CRM for Google Workspace to replace Copper. Requirements: - Node.js 22 + TypeScript: a Fastify server and a React UI built with Vite. `npm start` serves http://localhost:4650. - Storage: better-sqlite3 in ./data/crm.db: people, companies, leads, opportunities (pipeline, stage, value, expected close date, source, loss reason), tasks, activities, and custom fields per record type. FTS5 search across every record type. - Pipelines and leads: several named pipelines with ordered stages, a board per pipeline, stage history saved on every move, and a forecast page (value times stage probability, by expected close month). A lead converts into a person, a company and an opportunity in one click; pasting a list of emails creates leads. - Google sync: OAuth with `googleapis` (scopes gmail.readonly, calendar.readonly and contacts.readonly), client ID and secret in .env. Every 10 minutes it pulls Gmail threads and Calendar events for addresses already in the CRM and adds them to the record's activity feed (subject, date, snippet only). Google Contacts are imported on request. - Tasks and reports: due dates, a Today view, reminder emails over SMTP from .env; win rate by source, average days in each stage and open pipeline value as plain tables with CSV download. - Import and export: XLSX or CSV import for people, companies and opportunities with column mapping, and XLSX export of each record type. - Single user. No accounts, no telemetry, local-first. Outbound calls: Google's APIs and SMTP only. - Out of scope: team permissions, workflow automation, bulk email, a Gmail sidebar extension, mobile apps, enrichment. - README: creating the Google Cloud OAuth client (budget an hour for the consent screen) and a warning that a project left in Testing status issues refresh tokens that expire after 7 days.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Copper.
Add a Copper importer to the CRM in this folder. Requirements: - A command `crm import-copper <folder>` that reads the XLSX files from Workspace Settings > Export Data (People, Companies, Opportunities, Leads, Tasks) with `exceljs`. - Keep Copper's record ID in an external_id column and match on it, falling back to email for people, so running the import twice updates records instead of duplicating them. - Link people to companies and opportunities through the name columns; print rows it could not link and every column it did not know how to map. - Dry-run by default, `--write` to apply. - Update the README with the Copper export steps.
Add simple automation rules to the CRM in this folder. Requirements:
- A rules page where each rule is "when an opportunity moves to <stage>" followed by actions:
create a task due in N days, send an email from a template, or set a field.
- Store rules and a run log in SQLite; a rule fires once per move, never in a loop.
- Email templates with merge fields {{person.firstName}} and {{opportunity.name}}, sent through SMTP.
- A dry-run mode that shows what a rule would do for the last 10 moves.
- Update the README.Add a daily agenda to the CRM in this folder. Requirements: - At 07:30 in the timezone from .env, email a plain-text list of today's calendar events matched to CRM people, tasks due today or overdue, and opportunities with no activity for 14 days. - Each line links to the record's page; skip the email if there is nothing to report. - `crm agenda --print` shows the same text in the terminal. - Update the README with the cron or launchd entry.
Teams that live in Google Workspace want email and meetings logged on the right deal without data entry, with permissions and reports for a manager on top. At $29 to $134 a seat the cost is small next to a forgotten follow-up, and Copper is one of the few CRMs built around Gmail rather than bolted onto it.
Estimate · Runs on your machine; a $5 VPS only matters if you want it reachable from your phone. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Basic | $29 | $23 | 2,500 contacts, task automation, pipelines, project management, contact enrichment. |
| Professional | $69 | $59 | 15,000 contacts; adds workflow automation, bulk email, reporting and integrations. |
| Business | $134 | $99 | Unlimited contacts; adds email series, custom reports, multi-currency and premium support. |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The Gmail sidebar and Chrome extension that log mail as you work, Team permissions, shared pipelines and workflow automation.
About $29 a month on the Basic plan per seat, $348 a year (checked 2026-10-19).
The Gmail sidebar and Chrome extension that log mail as you work; Team permissions, shared pipelines and workflow automation; Bulk email and email series sent from inside the CRM; The iOS and Android apps and connections to Zapier, Mailchimp, DocuSign and QuickBooks; Contact enrichment and prebuilt reporting dashboards. If any of those matter to you, keep paying.
Yes: Twenty (open source), EspoCRM (open source), SuiteCRM (open source).