CRM skills

Back to the full skill catalog. Each entry states what the skill is, what it does under the hood, how to invoke it, and what you can customize. Commands marked 🔒 are explicit-invocation only.

CRM

/crm [add|log|radar|find|update|next] [contact] [details]CRM

Auto-routes from natural language · writes to crm/contacts/

What it is. The personal relationship CRM: add contacts, log interactions, update records, find people, and surface a health radar of who has gone overdue.

What it does. Parses the first argument as the subcommand. radar (default) runs scripts/crm-health.py and presents RED/YELLOW/GREEN contacts by urgency; next runs scripts/crm_next.py to present the top-3 follow-ups as review-ready drafts. add creates an address-book entity plus a relationship record in crm/contacts/ and appends to the context/people.md index; log, find, and update operate on those files. It resolves CEO versus exec paths from .workspace-identity.json and, on the CEO workspace only, can stamp Odin relevant_principles when the knowledge brain exists.

How to use it. Use to record or query one relationship. To draft nudges for many overdue contacts use /cold-sweep; for the Google address book use /google-contacts.

/crm add Jane Doe --company "Acme Corp" --email jane@acme.com
/crm log Jane Doe met at the summit, sending the proposal Monday
/crm radar
"check CRM contact health"

Customize. Cadence defaults and health thresholds live in crm/config.md. Contact records carry YAML frontmatter (relationship_type, cadence, timezone). Classification rules for new contact files are appended to config/routing-map.yaml. Admin-only company-wide radar reads ../31c-crm-central/aggregated/.

/viraid [action]CRM

Auto-routes from natural language · writes to outputs/operations/viraid/

What it is. A virtual assistant that drains a dedicated Telegram capture channel: it reads new messages, categorizes each (CRM action, calendar, task, research, note), and turns them into approved actions so nothing falls through the cracks.

What it does. The default run fetches new channel messages via the Telegram client, categorizes and priority-tags them (P1/P2/P3), enriches with CRM, calendar policy, and pipeline context, then presents proposed actions behind a mandatory STOP gate before executing (writes tasks, logs CRM interactions). State is the DATA-overlay ledger outputs/operations/viraid/state.json and tasks.md. /viraid sweep triages active tasks with aging flags (AGING >3 days, STALE >7 days). Scheduling messages force a mandatory calendar check, and no meeting is created without explicit slot approval.

How to use it. Use to process the capture channel or triage its task backlog. For general Telegram messaging use /telegram; for the email inbox use /email-intel.

/viraid
/viraid sweep
"check viraid"

Customize. The channel name is not hardcoded: set VIRAID_CHANNEL_NAME in .env (defaults to the built-in channel). Priority classification signals, task aging thresholds, and per-step flow live in the skill's references/ files (message-processing.md, sweep-mode.md, edge-cases.md).

/google-contacts [search|add|edit] [name]CRM

Auto-routes from natural language · standalone connector, no workspace-file writes (Google-side only)

What it is. A standalone connector to Google Contacts via the People API for looking up, adding, editing, listing, and deleting contacts in your Google address book.

What it does. Drives scripts/google-contacts.py (a Haiku-model skill) with subcommands search, add, get, edit, list, and delete; all support --json. It authenticates over OAuth (first run opens a browser consent), caches the token, and resolves contacts by resource names like people/c1234567890. This is completely separate from the workspace CRM: it writes only to Google, never to crm/contacts/.

How to use it. Use to manage contacts inside Google. For workspace relationship tracking and interaction logs use /crm; not for Exchange or Outlook contacts.

/google-contacts search "Acme"
/google-contacts add --name "Jane Doe" --email jane@acme.com --company "Acme Corp"
"find their number in google contacts"

Customize. OAuth setup requires the People API enabled and a Desktop OAuth client saved as .sessions/google/credentials.json; the token caches to .sessions/google/token.json (delete it to re-auth). Add-command flags include --email, --phone, --company, --title, --notes, --address, --url.