How to use icantcrm
Everything runs through Gmail. You get emails every morning; you reply to approve, edit, or give feedback. You give commands by emailing yourself.
1. Your daily flow
icantcrm runs automatically in the background. Each morning you'll find a small set of Gmail drafts labeled crm, ready to review:
- Outreach drafts — personalized follow-up emails written in your voice, one per contact who's due for a touchpoint. Open, tweak if needed, and send.
- Admin review — a single email summarizing every contact that needs attention: suggested status changes, next actions, and AI reasoning. You approve or reject each suggestion by editing a table and sending it back to yourself.
Outside of reviewing those drafts, you can interact with the CRM by emailing yourself commands (see Email commands) or logging calls (see Logging calls).
2. The admin review email
Every morning at 5 am the CRM builds an admin-review draft addressed to you. Each contact that has been flagged for attention gets a table with editable fields.
Reviewing a contact
Each contact block has four columns: Field, Before, After (the AI's suggestion, editable), and Why (AI reasoning, also editable). To review:
- Edit the After cell to change a suggested value.
- Edit the Why cell to leave a note or give feedback.
- Set Approve? (y/n) to
yto apply ornto skip. - Add a Refinement — a free-text note for that contact — to guide the AI's next suggestion for them.
Bulk controls (bottom of the email)
| Field | What it does |
|---|---|
| Approve ALL? | Set to y to apply every contact not explicitly rejected. |
| Regenerate unapproved? | Set to y to re-run AI on any contact you said n to (using your refinement as extra context). |
| Global refinements | Free-text note that applies across all contacts on this run. The AI uses it on the next cycle. |
Teaching the AI inline
If you write the word rule anywhere in a Why or Refinement cell, the rest of the text is automatically promoted to a standing rule (see Rules). For example: "rule: never suggest dormant for school contacts".
3. Logging calls
Email yourself with a subject line containing the word call and the contact's name, email, or ID. No command prefix is required.
The body of the email becomes the call note, stored in the Activity log and used by the AI in the next analysis.
Subject formats
| Subject | Matches contact by |
|---|---|
call with Jane Smith | Full name |
call follow-up jane@example.com | Email address |
call notes - 642bb79e9e34453d9948a9b7 | Contact ID (shown in admin emails) |
[crm] call Jane Smith | Full name (prefix is stripped) |
If the name matches more than one active contact, you'll receive a disambiguation draft to pick the right one.
4. Email commands
Send yourself an email with one of the subject lines below. You can use crm or [crm] as the prefix — both work, and capitalization doesn't matter.
| Subject line | What it does |
|---|---|
crm action |
Sends this command reference to your drafts. |
crm learn my voice |
Re-analyzes your recent sent mail and refreshes the writing-voice profile used to generate drafts. |
crm refresh <name, email, or id> |
Forces an immediate AI update (communication summary + next action) for one contact. Use their name, email address, or 24-character ID from an admin email. |
crm suggest contacts |
Scans your last year of email for people you've had genuine back-and-forth with. Creates a pre-filled contact draft for you to review and prune before importing. |
crm add rule <text> |
Adds a standing rule to the Rules tab. The rule is injected into every AI prompt going forward. Example: crm add rule Never suggest dormant for school contacts |
crm signature |
Sends a blank draft. Delete the contents, paste your email signature, and send it back to yourself — it will be appended to future outreach drafts. |
crm todo <text> |
Saves a todo item. A reminder draft appears in your Drafts on the due date (default: tomorrow). Send that draft to yourself to mark it done. You can prefix with a date or day shorthand: crm todo friday Call Jane or crm todo 06/15 Follow up on proposal. |
crm todo list |
Creates a draft showing all pending todos (with due dates) and recently completed ones. |
crm settings |
Opens the settings editor: a draft listing every configurable setting with its current value. Edit the yellow cells and send it back to save. |
crm use my key |
Sends a step-by-step checklist for switching to your own Claude API key (added via Script Properties — never typed into an email). Send the checklist back when done to test the key. |
crm onboarding |
Re-generates the initial setup form (contact list, voice, identity). |
crm onboarding 2 |
Re-generates the phase-2 setup email: pipeline stages, contact types, channels, and preferences. |
5. Teaching the AI with rules
Rules are standing instructions that shape every AI suggestion. They live in the Rules tab of your Sheet and are injected into every AI prompt automatically.
Adding a rule
Three ways to add a rule:
- Email command: Send yourself
crm add rule <text>. - Inline shortcut: Write the word rule anywhere in a Why or Refinement cell in the admin review email. The text after "rule" is promoted automatically — e.g. "rule: completed customers are good referral candidates".
- Directly in the Sheet: Add a row to the Rules tab.
AI-proposed rules
When the AI notices a recurring pattern in your corrections — the same type of edit made three or more times — it surfaces a proposed rule for your approval. You'll receive a Proposed rules draft listing each suggestion. Reply with y or n next to each one.
Rules tab columns
| Column | Notes |
|---|---|
| Rule | Plain-English instruction for the AI. |
| Scope | all, analysis, drafts, or triage. Comma-separate to apply to multiple scopes. |
| Type Filter | Optional. Limit to a contact type (e.g. parent, school). Blank = all types. |
| Status Filter | Optional. Limit to a contact status (e.g. client-active). Blank = all statuses. |
| Enabled | TRUE or FALSE. Toggle rules on/off without deleting them. |
| Source | operator (manual), inline (why/refinement shortcut), or distilled (AI-proposed). |
6. Settings
Send yourself crm settings to open the settings editor. Edit the yellow cells and send it back to save. You can also edit the Config tab in your Sheet directly under the ## SETTINGS section.
| Setting | What it does | Default |
|---|---|---|
operator_name | Your first name — used in sign-offs and AI prompts. | — |
business_name | Your business name (feeds AI context). | — |
business_description | One-line description of your business. | — |
timezone | IANA timezone for dates and triggers. | America/Chicago |
admin_max_contacts | Max contacts in each daily admin-review draft. | 20 |
max_suggested_contacts | Max contacts returned by "crm suggest contacts". | 60 |
use_crm_label | Apply a "crm" Gmail label to all CRM-created drafts. | true |
error_alerts | Email you when a background job fails (rate-limited to once per error per 6h). | true |
usage_alerts | Email you when daily AI token usage is abnormally high. | true |
usage_alert_multiple | Alert when today's tokens exceed this multiple of your trailing daily average. | 3 |
7. Sheets menu
Open your icantcrm Sheet and look for the icantcrm menu in the top toolbar. These run the same functions as the background triggers, useful for testing or on-demand runs.
| Menu item | What it does |
|---|---|
| Sync inbox now | Scans your inbox immediately for new emails, call notes, and commands (normally runs every minute automatically). |
| Suggest new contacts | Same as the crm suggest contacts command. |
| Run AI on pending | Runs AI analysis immediately on all contacts flagged for it (normally runs at 3 am). |
| Build admin review | Generates the admin-review draft immediately (normally runs at 5 am). |
| Create today's drafts | Generates outreach drafts immediately (normally runs at 4 am). |
| Learn writing voice | Analyzes your sent mail and builds a writing-voice profile from scratch. |
| Update writing voice | Refines the existing voice profile with recent emails. |
| Refresh outdated contacts | Runs a triage pass on contacts that haven't been analyzed recently. |
| Install / refresh triggers | Re-installs all background triggers. Run this if automations stop firing. |
8. Setup & onboarding
When you first run authorize(), a setup form arrives in your Gmail drafts. There are two phases:
Phase 1 — Identity & contacts
Fill in the yellow cells and send it back to yourself:
- Your name, business name, and a one-line description of what you do
- Your starting contacts — one per row: name, email, phone, type, source, and any initial notes
- Whether to add an email signature to outreach drafts (you'll get a follow-up draft to paste it in)
Phase 2 — Preferences
Send yourself crm onboarding 2 to open the advanced setup form:
- Pipeline stages (the statuses your contacts move through)
- Contact types in use for your business
- Preferred outreach channels
Automatic schedule
After authorization the following triggers run without any action from you:
- Every minute — watches your inbox for contact activity, call notes, and commands
- 3 am daily — runs AI analysis on contacts flagged for review
- 4 am daily — creates today's outreach drafts
- 5 am daily — builds the admin review email
- Weekly (Monday) — refreshes your writing-voice profile