Help Center

Your CRM

The πŸ‘‹ CRM tab is the center of everything. One row per person — synced live with Google Contacts and updated automatically by Gmail and Calendar.

How the CRM Works
CRM Overview (3 min)
LOOM_CRM_OVERVIEW

The CRM is a live two-way link between your spreadsheet and Google Contacts. Every contact has a Contact ID — a unique identifier assigned by Google — that ties the CRM row to the Google Contact record. When you sync, Water LLM matches rows to contacts by ID, not by name or position.

What You GetHow It Works
One row per person Every contact — clients, prospects, partners — lives as a single row
Synced with Google Contacts Changes in the CRM push to Google Contacts (and vice versa) on your sync schedule
Communication history auto-filled Gmail and Calendar scans populate last email dates, last meeting, and next meeting
Column order doesn't matter Rearrange, hide, or freeze any column — Water LLM finds everything by header name
Understanding the Column Layout
CRM Column Tour (4 min)
LOOM_CRM_COLUMNS
Header color guide
Header ColorMeaningWhat To Do
White Editable — your data entry fields Enter and edit freely
Gray Auto-calculated by Water LLM (email dates, meeting dates, sync timestamps) Do not edit. Overwritten on every sync or refresh.
Blue System column — found by header name Don't rename. You can reorder or hide safely.
Identity columns
ColumnWhat It IsEditable?
Contact ID Unique ID from Google Contacts. The CRM–Google link. No — assigned automatically
First Name / Last Name Used in email templates, AI features, and the Name formula Yes
Name Auto-generated from First + Last Name by an array formula No — formula column. Do not type here.
Company / Title / Department Used in outreach templates, meeting prep, and AI context Yes
Nickname Informal name — usable as a template placeholder ({{NICKNAME}}) Yes
Birthday Syncs with Google Contacts. Used by Birthday Drip. Yes
Photo Profile photo URL from Google Contacts No — synced automatically
Contact information — emails, phones, websites

Up to 4 email addresses, 3 phone numbers, and 3 websites are supported. Each field has a companion Type column that maps to the label in Google Contacts.

Always use the dropdown in Type columns — never type free text

Typing something not in the dropdown into a Phone or Email Type column (like "cell," "biz," or anything other than the preset values) causes Google Contacts to silently reject the sync for that entire contact — no error message, it just skips the update. Valid values are: Mobile, Work, Home, Main, Other for phones; Work, Personal, Other for emails.

The Contact Composer only offers valid values — when in doubt, use it instead of editing the cell directly.

Why two email addresses matter

Communication Refresh scans Gmail for the most recent email sent to and received from Email 1 and Email 2 separately. If someone uses different addresses for work and personal correspondence, having both gives you a complete picture of your history with them.

Communication tracking columns

These are filled automatically by Communication Refresh. Do not edit them manually — they're overwritten on every refresh run.

ColumnHow It's Calculated
Last Email Received From Email 1 Most recent email received from Email 1, up to 3 years back in Gmail
Last Email Received From Email 2 Same for Email 2
Last Email Sent To Email 1 / 2 Most recent email you sent to that address, up to 3 years back
Last Met With Contact Most recent past calendar event where the contact was a guest and didn't decline. "Free" events excluded.
Next Meet With Contact Earliest upcoming calendar event with this person, within the next 6 months
LI Message Received / Sent Most recent LinkedIn message dates (from LinkedIn archive import)
Last Contact The most recent date across all communication columns above
Last Contact Method Which source produced the Last Contact date (e.g., "Meeting," "Sent to Email 1")
Days Since Last Contact Array formula: today minus Last Contact. Recalculates every time you open the sheet. Do not type here.
Notes vs. Private Notes
FieldSyncs to Google Contacts?Use It For
Notes Yes — visible in any app that reads your Google Contacts Context you'd want on your phone or in Gmail (how you met, company overview)
Private Notes No — CRM only, never synced Sensitive internal notes, deal context, things you don't want on your phone
User-defined fields — your 8 custom columns

Eight fully customizable columns you name anything you need: "Lead Status," "Referral Source," "Program Tier," "Industry," etc.

  • Set labels in βš™οΈSettings, row 3 (columns A–H)
  • Set dropdown values in βš™οΈSettings rows 4+ (same columns)
  • These are the only headers safe to rename — renaming goes through the settings UI, not by editing the header cell directly
  • Values sync with Google Contacts using stable internal IDs, so renaming a label doesn't lose existing data
The Delete Contact? column

Set it to DELETE from the dropdown to remove a contact. Never delete the row by right-clicking.

On the next Sync to Google run, a flagged contact is deleted from Google Contacts, removed from the CRM, and backed up to the Deleted Contacts sheet — which acts as a suppression list to prevent re-import from LinkedIn or sync.

Deletion from Google Contacts is permanent

The CRM backup preserves the row data, not the full Google Contact record. Make sure you intend to delete before flagging.

Syncing with Google Contacts
Syncing Contacts (3 min)
LOOM_SYNC
DirectionWhat It DoesWhen to Use It
Sync to CRM
Google β†’ Sheet
Reads your Google Contacts and updates/creates CRM rows After editing contacts on your phone, in Gmail, or on contacts.google.com
Sync to Google
Sheet β†’ Google
Pushes edited CRM rows to Google Contacts After editing contact details in the spreadsheet

Run manually via Water LLM β€Ί Contacts & Sync. Automate by toggling on βš™οΈAutomation rows 16–17 and setting a schedule.

What syncs bidirectionally
  • Name, nickname, company, title, department
  • Up to 4 emails, 3 phones, 3 websites (with type labels)
  • Full address, birthday, notes, photo
  • All 8 user-defined fields
What lives only in the CRM (doesn't sync)
  • Communication tracking dates (email, meeting, LinkedIn)
  • Last Contact / Days Since Last Contact
  • Invoice and billing data
  • Biz Dev / pipeline data
  • Private Notes
If you edited the same contact in two places

Water LLM uses an eTag (a version fingerprint from Google's API) to detect when a contact changed outside the CRM. If both sides changed, it flags the conflict rather than silently overwriting.

Edited in both places? Run Sync to CRM first.

Run Sync to CRM first to pull the Google version in, then make your edits in the sheet, then run Sync to Google. This prevents a conflict.

Communication Refresh — Email and Meeting Dates
Communication Refresh Explained (4 min)
LOOM_COMM_REFRESH

Communication Refresh scans your Gmail and Google Calendar to fill in all the communication tracking columns — last emails, last and next meeting dates, Last Contact, and Last Contact Method.

Run manually: Water LLM β€Ί Contacts & Sync β€Ί Communication Refresh. Automate via βš™οΈAutomation row 18.

The first run won't finish everything — and that's expected

Water LLM processes contacts in batches. Google Apps Script imposes a 6-minute execution limit per run. When that limit is hit, the job saves its progress and picks up where it left off on the next run.

For a CRM with 100+ contacts, the first Communication Refresh may need 2–5 passes before all contacts have updated dates. You'll see dates filling in gradually — some contacts show recent dates while others still show blank. This is by design, not a bug.

Don't run it manually over and over in quick succession. Rapid re-runs restart from the beginning of the batch, so progress doesn't accumulate. Let the automated schedule run (set it to hourly in βš™οΈAutomation), or wait at least a minute between manual runs and check the βš™οΈStatus tab to confirm each run completed before starting the next.

What it does in each pass
  1. Scans Gmail for last sent/received dates per contact email address
  2. Looks up the most recent past calendar meeting per contact
  3. Looks up the next upcoming calendar meeting per contact
  4. Recalculates Last Contact and Last Contact Method across all contacts
What counts as a meeting?

Any Google Calendar event where the contact's email appears in the guest list and they did not decline. Events marked "Free" (transparent) are excluded.

Add shared calendars if you use them

If you use a team or coaching calendar, add it via Water LLM β€Ί Settings β€Ί Shared Calendars. Events from shared calendars are included in meeting scans.

Checking refresh progress

The βš™οΈStatus tab logs every run — timestamp, how many contacts were processed, and any errors. If a run ends early due to the time limit, you'll see the partial count there.

Creating Contacts
Creating & Managing Contacts (3 min)
LOOM_CREATE_CONTACT
MethodBest ForHow
Contact Composer Creating a fully detailed contact with validation on every field Water LLM β€Ί Create β€Ί Contact
Sync to CRM Importing contacts already in Google Contacts Water LLM β€Ί Contacts & Sync β€Ί Sync to CRM
LinkedIn Import Adding your LinkedIn connections in bulk LinkedIn Import guide →
CSV Import Bulk import from another CRM or spreadsheet Water LLM β€Ί External Data Sources β€Ί Import CSV Contacts
Calendar Invite Parser Extracting contacts from Calendly/Acuity/Google scheduling confirmations automatically Water LLM β€Ί Contacts & Sync β€Ί Parse Calendar Invites
Manual row entry Quick one-off additions Type into a new row in the CRM. Leave Contact ID blank — assigned on next sync.
The Contact Composer (recommended)

A guided form that validates inputs and only offers valid values for Type dropdowns — impossible to enter an invalid phone/email type by accident. Available on desktop and via the mobile web app.

  1. 1
    Open Water LLM β€Ί Create β€Ί Contact
  2. 2
    Fill in the fields you need. Only First Name is required.
  3. 3
    Click Save. The contact is added to the CRM and queued for sync to Google Contacts.

To edit an existing contact, open the Composer and search by name, email, or company. Their current data loads into the form.

Calendar Invite Parser

If you use Calendly, Acuity, or Google Event Scheduler, this feature reads each event description and extracts name, email, phone, company, and title — then creates or updates the CRM contact automatically.

Configure it at Water LLM β€Ί Configure Tools β€Ί Calendar Invite Parser — select your scheduling platform and optionally filter by keywords so only certain meeting types trigger extraction (e.g., "Discovery Call", "Consultation").

Finding Contacts
  • Contact FinderWater LLM β€Ί Contacts & Sync β€Ί Find Contact: searches name, email, or company. Also available in the mobile web app.
  • Sheets searchCtrl+F / Cmd+F to search within the sheet directly. Great for a quick scan.
Need to find a segment? Use a filter.

To find all contacts at a specific company, or all contacts with a status value, create a filter on that column. See Filtering Your Data for how.

Cleaning Up Contact Names

Contacts imported from LinkedIn often carry clutter in their names — credentials (MBA, PhD, PCC, MCC, ACC), titles (Dr., Prof.), pronouns (she/her), and emoji characters. These cause issues in outreach templates and AI features.

To clean your entire CRM in one pass: Water LLM β€Ί Contacts & Sync β€Ί Clean Up Names

Run this once after your first LinkedIn import. Nobody wants to receive an email that opens with "Hi Sarah Johnson MBA PCC,"

The Dashboard — Your Business at a Glance

The πŸ“Š Dashboard tab is auto-generated from your CRM, Invoices, Client Tracker, and Biz Dev data. You don't enter data there — just read it and refresh when you want an updated view.

SectionWhat It Shows
Relationship Health Active vs. dormant contacts, average days since last contact
Engagement Momentum New contacts added, ghosting risk count, communication trends
Pipeline Overview Deals by stage, win rate, 30/60/90-day revenue forecast
Who's Going Cold Contacts 25–45 days since last contact — warm-to-cooling zone where a quick message can make a difference
Quick Wins Upcoming birthdays, overdue deals, stale pipeline items to act on today
Financial Details Invoiced, paid, and outstanding totals; monthly revenue breakdown; revenue by product/service
AI Insights AI-generated narrative about your client portfolio, revenue trends, and business health

To refresh: go to Water LLM β€Ί Dashboard or enable automatic nightly refresh in βš™οΈAutomation.

Rows 1–3 are yours to customize

The Dashboard preserves rows 1–3 as a user-owned area. Put your logo, title, or notes there — they won't be overwritten on refresh.