From personal-crm
This skill should be used when the user mentions "met with", "had coffee with", "breakfast with", "lunch with", "dinner with", "meeting with", asks to "log event", "capture meetup", "add to CRM", "new contact", or describes an interaction with people that should be recorded. Handles natural language and voice transcripts to create structured CRM entries.
npx claudepluginhub pwarnock/pwarnock-cc-plugins --plugin personal-crmThis skill uses the workspace's default tool permissions.
Capture meetups, events, and contacts from natural language input into Notion.
Enhances Granola meeting notes post-transcript with AI templates, shares to Slack/Notion/CRM, extracts action items, and supports follow-ups.
Prepares meetings by searching Notion for context, enriching with research, and creating internal pre-read and external agenda pages in Notion.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Share bugs, ideas, or general feedback.
Capture meetups, events, and contacts from natural language input into Notion.
When user describes a meetup or interaction:
mcp__plugin_Notion_notion__notion-searchmcp__plugin_Notion_notion__notion-create-pagesExtract from user's message:
Date conversion examples:
For EACH attendee name, search the contacts database:
Tool: mcp__plugin_Notion_notion__notion-search
Parameters:
query: "<attendee name>"
data_source_url: $PERSONAL_CRM_CONTACTS_DB
The environment variable PERSONAL_CRM_CONTACTS_DB contains the collection URL (e.g., collection://2776e226-b9f6-8154-abb5-000b7b90f6f7).
For each search result:
When asking about ambiguous names:
Question: "Which Brian did you meet with?"
Options:
- Brian Pollard (Acme Corp)
- Brian Smith (TechStart)
- Both of them
Once all attendees are resolved, create the event:
Tool: mcp__plugin_Notion_notion__notion-create-pages
Parameters:
parent: {"data_source_id": "<ID from PERSONAL_CRM_EVENTS_DB without collection:// prefix>"}
pages: [{
"properties": {
"Name": "<event description>",
"date:Event Date:start": "<YYYY-MM-DD>",
"date:Event Date:is_datetime": 0,
"Attendees": ["https://www.notion.so/<contact-page-id-1>", "https://www.notion.so/<contact-page-id-2>"]
}
}]
Extract the UUID from $PERSONAL_CRM_EVENTS_DB by removing the collection:// prefix.
Format Attendees as a JSON array of Notion page URLs.
When user confirms they want to add someone new:
Tool: mcp__plugin_Notion_notion__notion-create-pages
Parameters:
parent: {"data_source_id": "<ID from PERSONAL_CRM_CONTACTS_DB without collection:// prefix>"}
pages: [{
"properties": {
"Name": "<full name>"
}
}]
After creating entries, tell the user:
Required:
PERSONAL_CRM_EVENTS_DB - Events database collection URLPERSONAL_CRM_CONTACTS_DB - Contacts database collection URLInput: "had coffee with Alice and Bob yesterday" → Parse: event="coffee", date=yesterday, attendees=["Alice", "Bob"] → Search each name in contacts → Create event with resolved attendees
Input: "met with Brian for lunch last Friday" → If multiple Brians found, ask which one → Create event after user selects