Manage contacts, companies, deals, and relationships. Use when adding contacts, logging interactions, or working with CRM data to prevent duplicates and maintain data quality.
Manage contacts, companies, deals, and relationships. Use when adding contacts, logging interactions, or working with CRM data to prevent duplicates and maintain data quality.
Office Admin CRM Management
When to Use This Skill
Use this skill ANY time you:
Add contacts from emails or conversations
Create or update deals
Log interactions with people
Search for existing contacts or companies
Work with relationships between contacts
Backfill CRM data from email history
Need to check if a contact already exists
User CRM Preferences
Load user preferences from ~/.claude/office-admin-config.json:
Adapt your CRM workflow to match these preferences.
Core Principles
1. Always Check Before Adding
NEVER add a contact or company without checking if they already exist first.
# WRONG - adds without checking
mcp__pagen__add_contact(name="John Doe", email="john@example.com")
# RIGHT - check first
mcp__pagen__find_contacts(query="john@example.com")
# Only add if not found
2. Associate Contacts with Companies
When you know someone's company, ALWAYS link them:
# Add company first (if needed)
mcp__pagen__add_company(
name="Acme Corp",
domain="acme.com",
industry="Technology"
)
# Then add contact with company association
mcp__pagen__add_contact(
name="John Doe",
email="john@example.com",
company_name="Acme Corp",
phone="+1-555-0100"
)
3. Log Meaningful Interactions
After ANY significant email exchange, meeting, or conversation, log it (if user has autoLogInteractions enabled):
mcp__pagen__log_contact_interaction(
contact_id="abc-123",
note="Discussed Q4 partnership. They're interested in our AI tool. Follow up after Thanksgiving.",
interaction_date="2025-11-22"
)
Adjust detail level based on user's detailLevel preference:
Minimal: Just key facts
Standard: Context about interaction
Detailed: Thorough notes with quotes, decisions, next steps
Available CRM Tools
Core Tools
mcp__pagen__add_company(name, domain, industry, notes) - Add new company
mcp__pagen__add_contact(name, email, company_name, phone, notes) - Add new contact
qualification - Determining if it's a real opportunity with potential
proposal - Active proposal or pitch in progress
negotiation - Terms being discussed, getting close
closed_won - Deal completed successfully
closed_lost - Deal didn't happen (still valuable to track why)
Workflow: Adding Contact from Email
When processing an email with a new person:
# 1. Check if contact exists
mcp__pagen__find_contacts(query="person@example.com")
# 2. If not found, extract info from email:# - Full name# - Email address# - Company (if mentioned)# - Phone (if in signature)# - Context about them (adapt detail level to user's preference)# 3. Check if company exists (if applicable)
mcp__pagen__find_companies(query="Example Corp")
# 4. Add company if needed
mcp__pagen__add_company(
name="Example Corp",
domain="example.com",
industry="Technology",
notes="[Context based on user's detailLevel preference]"
)
# 5. Add contact with company association
mcp__pagen__add_contact(
name="Jane Smith",
email="jane@example.com",
company_name="Example Corp",
phone="+1-555-0200",
notes="[Context based on user's detailLevel preference]"
)
# 6. Log the interaction (if autoLogInteractions enabled)
mcp__pagen__log_contact_interaction(
contact_id="<returned_id>",
note="[Detail based on user's detailLevel preference]",
interaction_date="2025-11-22"
)
# 7. Track relationships (if trackRelationships enabled)# If they mention knowing someone else in your CRM:
mcp__pagen__link_contacts(
contact_id_1="<jane_id>",
contact_id_2="<bob_id>",
relationship_type="colleague",
context="Jane mentioned working with Bob at previous company"
)
Workflow: Creating a Deal
When you identify a business opportunity:
# 1. Ensure contact and company exist (see above)# 2. Create the deal
mcp__pagen__create_deal(
title="AI Consulting Project - Example Corp",
company_name="Example Corp",
contact_name="Jane Smith",
stage="prospecting",
amount=50000, # in cents
currency="USD",
expected_close_date="2026-03-01",
initial_note="[Detail based on user's detailLevel preference]"
)
# 3. Log updates as deal progresses
mcp__pagen__add_deal_note(
deal_id="<deal_id>",
content="[Detail based on user's detailLevel preference]"
)
# 4. Update deal stage when it changes
mcp__pagen__update_deal(
id="<deal_id>",
stage="proposal",
amount=75000 # updated after scope discussion
)
What Counts as a "Deal"?
Track these as deals:
✅ Consulting or advisory opportunities
✅ Speaking engagements with compensation
✅ Book publishing opportunities
✅ Partnership or collaboration opportunities
✅ Investment opportunities
✅ Real estate transactions
✅ Major purchases or sales
✅ Sponsorships (being a sponsor or receiving sponsorship)
Don't track as deals:
❌ Social lunches with no business angle
❌ Informational coffee chats
❌ Personal favors or introductions
❌ Newsletter subscriptions
❌ Generic networking
Email Backfill Best Practices
When backfilling CRM from email history:
Work in time-bounded batches - Process 1-2 months at a time
Start with SENT emails - You're usually the initiator, so sent emails have better signal
Then do INBOX - Catch incoming opportunities you might have missed
Focus on humans - Only add real people they interact with
Log context - Include what was discussed, not just "sent email"
Check for dupes - Always search before adding
Respect detailLevel - Match note detail to user's preference
Contact Types and Filtering
Based on user's contactTypes setting:
Professional:
Focus on work relationships
Track company associations carefully
Emphasize business context in notes
Create deals for opportunities
Personal:
Focus on personal relationships
Company associations optional
Emphasize personal context (how you met, shared interests)
Deals less common
Mixed:
Handle both types
Clearly distinguish in notes which category
Be flexible with detail level
Track both business and personal context
Common Mistakes to Avoid
❌ Adding without checking
# This creates duplicates!
mcp__pagen__add_contact(name="Bob Jones", email="bob@test.com")
mcp__pagen__add_contact(name="Bob Jones", email="bob@test.com")
❌ Not associating with company
# Missing valuable context
mcp__pagen__add_contact(
name="Jane Smith",
email="jane@bigcorp.com"# Should include company_name="BigCorp"!
)
❌ Wrong level of detail
# User has detailLevel: "minimal" but you write:
mcp__pagen__log_contact_interaction(
contact_id="abc",
note="Had extensive discussion about their company's AI strategy including their plans for Q1 implementation of LLM-based customer support, concerns about hallucinations, budget constraints around $50k, and follow-up scheduled for next Tuesday at 2pm to review proposal draft..."
)
# Should be:
mcp__pagen__log_contact_interaction(
contact_id="abc",
note="Discussed AI strategy. Follow up Tue 2pm with proposal."
)
❌ Not tracking deals
# Someone asks about consulting work - this is a deal!# Don't just log it as an interaction# Create a deal to track the opportunity
❌ Over-logging when autoLogInteractions is false
# If user disabled auto-logging, only log:# - Significant milestones# - Explicit user request# - Deal-related interactions
Data Quality Guidelines
Good Contact Notes (based on detailLevel)
Minimal:
How you met
Their role or what they do
One-line context
Standard:
How you met
What they're interested in
Current conversation or project
Key personal detail (timezone, etc.)
Detailed:
Comprehensive background
Detailed conversation history
Personal preferences and patterns
Relationship mapping
Next steps and follow-ups
Good Company Notes
Include (scaled to detailLevel):
Industry or sector
Company size if relevant
What they do
Context about the relationship
Good Interaction Notes
Include (scaled to detailLevel):
What was discussed
Outcomes or decisions
Next steps or follow-ups
Date of interaction
Integration with Email Skill
When email-management skill identifies a new contact:
Automatically trigger CRM workflow
Check for existing contact
Add if new (respecting CRM preferences)
Log interaction if enabled
Return to email workflow
Summary Checklist
Before adding to CRM, ask yourself:
☐ Did I check user's CRM preferences from config?
☐ Did I search to see if this contact already exists?
☐ Did I search to see if their company already exists?
☐ Did I include company association if I know it?
☐ Did I match the user's preferred detail level?
☐ Is autoLogInteractions enabled? Should I log this?
☐ Is this a deal I should be tracking?
☐ Should I track relationships to other contacts?
☐ Did I include phone number if available?
Remember: The CRM is only valuable if the data is clean and contextual. Quality over quantity, always.
Success Criteria
You're managing CRM well when:
No duplicate contacts are created
Contact notes match user's preferred detail level
Interactions are logged appropriately (not too much, not too little)
Deals are tracked consistently
Relationships are mapped when user has that enabled