本文へ移動
cccskills
無料GitHub で公開

design-crm

Manage the NV oOS Pro Toolkit CRM — leads, deals, companies, contacts, customers, activities, and support tickets. Covers the complete sales pipeline from lead capture through qualification, deal management, and post-conversion customer tracking with BANT/MEDDIC scoring, activity logging, and workflow automation. Use when working with CRM records, managing pipeline stages, qualifying leads, creating company profiles, logging calls/emails/meetings, or troubleshooting CRM data issues.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md28.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

NV oOS Pro Toolkit CRM

The Pro Toolkit CRM is a complete sales and customer relationship management system built on WordPress Custom Post Types. It manages the full lifecycle: lead capture → qualification → deal management → conversion → customer retention. All entities are stored as CPT records accessible via the toolkit_cpt MCP tool.

WP-CLI Commands

Key mcp-ai WP-CLI commands for CRM operations. Run via terminal:

CommandUse for
wp mcp-ai cronCheck CRM automation cron events (lead scoring, workflow triggers)
wp mcp-ai queueInspect CRM background jobs, retry failed imports
wp mcp-ai bulkBulk import/export CRM records
wp mcp-ai healthVerify CRM system health before running automations
wp mcp-ai logView CRM workflow execution logs

When to use this skill

Trigger when ANY of the following is true:

  • Viewing, searching, or filtering leads, deals, companies, customers, or activities.
  • Creating or updating CRM records (leads, deals, companies, contacts, customers, activities, tickets).
  • Qualifying leads using BANT or MEDDIC frameworks.
  • Moving a deal through pipeline stages (inquiry → scoping → qualification → proposal → negotiation → engagement_signed).
  • Converting a lead to a deal, or a deal to a customer.
  • Logging sales activities: calls, emails, meetings, tasks, notes with dispositions.
  • Building company profiles with industry, size, website, and status metadata.
  • Managing support tickets with SLA tracking.
  • Bulk importing leads or companies from CSV/email sources.
  • Triaging the CRM pipeline — identifying hot leads, stalled deals, overdue follow-ups.
  • Setting up CRM workflow rules for lead scoring, auto-assignment, or stage progression.
  • Searching CRM records by email, company, status, or BANT score.

Mental model — CRM entities and lifecycle

The CRM is organized around six core entity types connected by a lifecycle:

LEAD ──(qualified)──→ DEAL ──(won)──→ CUSTOMER
  │                     │                 │
  ├── activities        ├── activities    ├── activities
  ├── company           ├── company       ├── company
  └── contacts          └── contacts      └── contacts

TICKET ─── support requests, independent of lifecycle but linked to contacts/companies

Relationships:

  • A Lead can be linked to a Company and Contacts (via _company_id, _contact_id meta).
  • A Deal is linked to its source Lead via lead_id meta.
  • A Customer is the post-conversion record after a deal is won.
  • Activities link to any entity via related_type + related_id (e.g., related_type: "lead", related_id: 12398).
  • Tickets are independent support records that may reference a customer or company.

CRM Entity Types

All CRM entities are managed through the toolkit_cpt MCP tool. Use the appropriate post_type slug for each entity:

CPT SlugLabelPurposeKey Meta Fields
mcp_ai_leadLeadsInbound lead capture, scored and stagedfirst_name, last_name, email, phone, source, lead_status, lifecycle_stage, lead_score, bant_assessment
mcp_ai_dealDealsPipeline opportunities with stage trackinglead_id, deal_name, amount, currency, pipeline_stage, expected_close_date, deal_owner, win_probability
mcp_ai_companyCompaniesOrganization profiles_company_industry, _company_size, _company_website, _company_phone, _company_address, _company_status, _company_assigned_to
mcp_crm_contactsContactsIndividual contact recordsCustom meta (varies by implementation)
mcp_ai_customerCustomersPost-conversion customer recordsCustom meta (varies by implementation)
mcp_ai_crm_activityActivitiesCalls, emails, meetings, tasks, notesactivity_type, related_type, related_id, due_date
mcp_ai_ticketSupport TicketsITIL-aligned SLA-tracked ticketsCustom meta (varies by implementation)
mcp_ai_sequenceSequencesAutomated outreach sequencesCustom meta
mcp_crm_campaignsCampaignsMarketing campaign recordsCustom meta
mcp_ai_crm_wf_ruleWorkflow RulesAutomation rules for CRMCustom meta

Lead Meta Fields (detailed)

FieldTypeDescriptionExample
first_namestringLead's first name"Scher"
last_namestringLead's last name"Jill"
emailstringContact email address"jill.scher@cbiz.com"
phonestringContact phone number""
sourcestringLead source channel"email", "webform", "referral", "upwork"
lead_statusstringCurrent lead status"new", "contacted", "qualified", "disqualified"
lifecycle_stagestringLifecycle stage"lead", "mql", "sql", "opportunity"
lead_scorestringNumeric lead score (0-100)"62"
bant_assessmentobjectBANT qualification scoresSee BANT/MEDDIC section below
_source_message_idstringSource email message ID"19fd8cceb7c8e589"

Deal Meta Fields (detailed)

FieldTypeDescriptionExample
lead_idstringSource lead post ID"12324"
deal_namestringDescriptive deal name"NUGL Media - Growth Capital"
amountstringDeal amount (string for precision)"0", "50000"
currencystringISO currency code"USD"
pipeline_stagestringCurrent pipeline stage"qualification"
stage_historyarrayMachine-readable transitions (from/to/at/source)see JobNavigator section
stage_changed_atstringISO 8601 of the last real stage change"2026-09-16T09:00:00+00:00"
last_email_receivedstringLast inbound reply timestamp"2026-09-16T09:00:00+00:00"
last_email_sentimentstringSentiment of the last reply"positive"
expected_close_datestringExpected close date"", "2026-09-15"
deal_ownerstringWordPress user ID of owner"1"
win_probabilitystringWin probability (0-1)"0.1", "0.75"

Pipeline stages (standard flow):

inquiry → scoping → qualification → proposal → negotiation → engagement_signed
                                                                  └──→ won/lost

Activity Meta Fields (detailed)

FieldTypeDescriptionExample
activity_typestringType of activity"task", "call", "email", "meeting", "note"
related_typestringEntity type this activity belongs to"lead", "deal", "company", "customer"
related_idstringPost ID of the related entity"12398"
due_datestringDue date for tasks"2026-08-08"

Company Meta Fields (detailed)

FieldTypeDescriptionExample / Enum
_company_industrystringIndustry vertical"Technology", "Healthcare", "Finance"
_company_sizestringSize tier"1-10", "11-50", "51-200", "201-1000", "1000+"
_company_websitestringCompany website URL"https://example.com"
_company_phonestringPrimary phone"+1-555-0100"
_company_addressstringHeadquarters address"123 Main St, Suite 100"
_company_statusstringCRM pipeline status"prospect", "lead", "qualified", "customer", "churned"
_company_assigned_tointWordPress user ID of owner1

BANT / MEDDIC Scoring

Leads are automatically scored using BANT (Budget, Authority, Need, Timeline) with four sub-scores, each 0-100. The bant_assessment object has this structure:

{
  "budget": {
    "score": 50,
    "evidence": "invest; $; "
  },
  "authority": {
    "score": 50,
    "evidence": "cto; director; "
  },
  "need": {
    "score": 100,
    "evidence": "need; problem; challenge; solution; "
  },
  "timeline": {
    "score": 75,
    "evidence": "urgent; by; immediately; "
  }
}

Total BANT score = sum of all four sub-scores (max 400).

For enterprise deals, supplement BANT with MEDDIC:

  • Metrics: Quantifiable value the solution delivers.
  • Economic Buyer: Who controls the budget?
  • Decision Criteria: What are the formal evaluation criteria?
  • Decision Process: What's the purchasing process?
  • Identified Pain: What problem are they solving?
  • Champion: Who is your internal advocate?

Use bant_assessment for automated lead scoring. For enterprise deals, manually track MEDDIC elements in the deal content field or as additional meta.

Available Tools

All CRM operations use the toolkit_cpt MCP tool. This is the single interface for all CRM CRUD operations.

Discovery

# List all available CRM post types
toolkit_cpt(action: "list_types")

# Get field schema for any CRM type
toolkit_cpt(action: "get_schema", post_type: "mcp_ai_lead")

Upwork job search (search_upwork_jobs)

Freelancer sourcing uses the Upwork CRM tools (search_upwork_jobs, score_upwork_job, draft_upwork_proposal). Key behaviour:

  • Args: query, location (folded into the GraphQL searchExpression, e.g. wordpress developer (Remote)), job_type (hourly/fixed/all — all or omitted = no filter), experience_level (entry/intermediate/expert/all), skills, budget_min/max, exclude_keywords (API: boolean NOT (a OR b); fallback: -"a" operators), sort (recency default — sends GraphQL sortAttributes: [{field: RECENCY}]; best_match), limit, cursor. Omitted filters resolve from CRM Settings → Upwork → Search Defaults (default_search_keywords, default_location, …). "all" sentinels are normalised away, so preset steps carrying job_type: "all" never leak the literal into the GraphQL filter.
  • Every response echoes its criteria — criteria (the effective query/location/skills/filters/sort/limit after defaults) and criteria_provided (false = unfiltered noise search) — so workflow digests can tell weak filters from a missing Upwork connection.
  • API mode (Remote Sites connection with OAuth creds): returns structured jobs including a derived url (https://www.upwork.com/jobs/<slug>_~<id>/ — the canonical marketplace job-page form).
  • MCP mode (Remote Sites connection with upwork_mode: mcp, v1.1.89): routes the search through the official Upwork MCP gateway (https://mcp.upwork.com/mcp) via WP_MCP_AI_Upwork_MCP_Bridge — upwork__find_jobs (action search/get) returns envelopes normalized to the same shape as API mode, and upwork__list_accounts resolves the upwork_org_uid stored on the connection. Test Connection runs a real MCP handshake and validates without GraphQL credentials; tokens persist to the encrypted central mcp_oauth store (auto-refresh via the attached OAuth client).
  • Fallback mode (no connection, or MCP mode without a token blob): two-pass web search — site-restricted Upwork pass, then a broader pass merged with URL dedupe. Upwork category landing pages (/freelance-jobs/{slug}/ — no ~jobId) are filtered out and reported in filtered_out, as are non-marketplace Upwork subdomains (community.upwork.com, support.upwork.com) and category/help-centre page titles; snippets are parsed for job_type, budget/budget_max (ranges), tier (Entry level/Intermediate/Expert), and published; skills build a quoted OR group; direct postings rank first.
  • Fallback URLs are canonicalised. SERP URLs (the /freelance-jobs/apply/<slug>_~<jobId>/ SEO form, often with tracking query strings like referrer_url_path that Upwork's SPA mishandles) are rewritten to the canonical https://www.upwork.com/jobs/<slug>_~<jobId>/ marketplace form with the query string dropped — the form that reliably resolves to the listing (verified against the vanooo/upwork-mcp live-SPA scraper, which keeps only /jobs/ links). Login-walled SPA surfaces (/nx/…, /o/jobs/…, /r/…) are dropped as non-listings, except /nx/search/jobs/details/~<jobId> which is rebuilt to the bare-ID form. Non-Upwork aggregator links pass through unchanged.
  • The fallback needs a real search provider. With the default DuckDuckGo provider the fallback returns 0 results (Instant Answer API has no SERPs). Set a Brave/Tavily key in plugin Settings → Web Search.
  • A bare query (no keywords, no defaults) returns the guidance notice ("unfiltered marketplace noise") — configure default keywords or pass query/skills for targeted results.

Reading records

// List leads (most recent first):
{ "action": "list_items", "post_type": "mcp_ai_lead", "orderby": "date", "order": "DESC", "per_page": 20 }

// Search leads by email:
{ "action": "list_items", "post_type": "mcp_ai_lead", "search": "jill.scher@cbiz.com" }

// Filter by meta field:
{ "action": "list_items", "post_type": "mcp_ai_lead", "filters": [{ "key": "lead_status", "value": "new" }] }

// Get a single record:
{ "action": "get_item", "post_type": "mcp_ai_lead", "item_id": 12398 }

Creating records

// Create a lead with BANT scoring:
{ "action": "create_item", "post_type": "mcp_ai_lead", "fields": {
  "title": "Jane Smith", "first_name": "Jane", "last_name": "Smith",
  "email": "jane@acmecorp.com", "phone": "+1-555-0100", "source": "referral",
  "lead_status": "new", "lifecycle_stage": "lead", "lead_score": "50",
  "bant_assessment": {
    "budget": { "score": 0, "evidence": "" },
    "authority": { "score": 25, "evidence": "manager;" },
    "need": { "score": 50, "evidence": "looking for;" },
    "timeline": { "score": 25, "evidence": "soon;" }
  }
} }

// Create a company:
{ "action": "create_item", "post_type": "mcp_ai_company", "fields": {
  "title": "Acme Corporation", "_company_industry": "Manufacturing",
  "_company_size": "201-1000", "_company_website": "https://acmecorp.com",
  "_company_phone": "+1-555-0200", "_company_status": "prospect"
} }

// Log an activity:
{ "action": "create_item", "post_type": "mcp_ai_crm_activity", "fields": {
  "title": "Discovery call with Jane Smith (Lead #12400)",
  "activity_type": "call", "related_type": "lead", "related_id": "12400",
  "due_date": "2026-08-14"
} }

Updating records

// Qualify a lead:
{ "action": "update_item", "post_type": "mcp_ai_lead", "item_id": 12398,
  "fields": { "lead_status": "qualified", "lifecycle_stage": "sql" } }

// Move a deal through pipeline stages:
{ "action": "update_item", "post_type": "mcp_ai_deal", "item_id": 12327,
  "fields": { "pipeline_stage": "proposal", "win_probability": "0.5",
  "expected_close_date": "2026-09-15", "amount": "25000" } }

Bulk operations

// Bulk create leads from a CSV import:
{ "action": "bulk_create", "post_type": "mcp_ai_lead", "items": [
  { "title": "Alice Brown", "first_name": "Alice", "last_name": "Brown",
    "email": "alice@example.com", "source": "csv_import", "lead_status": "new" },
  { "title": "Bob Wilson", "first_name": "Bob", "last_name": "Wilson",
    "email": "bob@example.com", "source": "csv_import", "lead_status": "new" }
] }

Deleting records

// Delete a lead (prefer disqualifying instead — see Critical Rules):
{ "action": "delete_item", "post_type": "mcp_ai_lead", "item_id": 12398 }

⚠️ Warning: Deleting a record is permanent. Consider using update_item to change lead_status to "disqualified" instead of deleting, to preserve audit history.

Common Workflows

Lead qualification workflow

1. List new leads:   list_items(mcp_ai_lead, filters: [{key: "lead_status", value: "new"}])
2. Review BANT:      Check bant_assessment scores. Prioritize high Need + Timeline.
3. Create activity:  create_item(mcp_ai_crm_activity, activity_type: "call")
4. Update lead:      update_item(mcp_ai_lead, lead_status: "contacted")
5. If qualified:     update_item(mcp_ai_lead, lead_status: "qualified", lifecycle_stage: "sql")
                     create_item(mcp_ai_deal, lead_id: <lead_id>, pipeline_stage: "qualification")

Deal pipeline management

1. Find stalled deals:  list_items(mcp_ai_deal, filters per pipeline_stage)
2. Check activities:    list_items(mcp_ai_crm_activity, filters: [{key: "related_id", value: "<deal_id>"}])
3. Advance stage:       update_item(mcp_ai_deal, pipeline_stage: <next_stage>, win_probability: <new_prob>)
4. Log activity:        create_item(mcp_ai_crm_activity, activity_type: "note", content: "<disposition>")

Pipeline stage progression with win probabilities

StageWin ProbabilityTypical Actions
inquiry5%Initial contact, needs discovery
scoping10%Define requirements, budget range
qualification25%BANT/MEDDIC confirmed, champion identified
proposal50%Proposal sent, economic buyer engaged
negotiation75%Terms negotiation, legal review
engagement_signed90%Contract signed, onboarding begins
won100%Revenue recognized
lost0%Closed-lost with reason

Building a company profile

1. Research company:  Use deep_research or web_search_validated for company info.
2. Create company:    create_item(mcp_ai_company, with industry, size, website, status).
3. Link lead:         update_item(mcp_ai_lead, adding _company_id reference to the company post ID).
4. Add contacts:      create_item(mcp_crm_contacts) for key personas at the company.

Activity logging (call disposition)

After every call/meeting:
1. create_item(mcp_ai_crm_activity, activity_type: "call"|"meeting"|"email")
2. Set title:         "<Action> with <Contact Name> (<Entity> #<ID>)"
3. Set related_type:  "lead" | "deal" | "company" | "customer"
4. Set related_id:    The entity post ID
5. Set content:       Summary of the conversation, next steps, disposition
6. Set due_date:      For follow-up tasks (activity_type: "task")

Pipeline triage

Weekly pipeline review:
1. list_items(mcp_ai_lead, filters: [{key: "lead_status", value: "new"}])
   → Identify high-score leads (lead_score >= 60) for immediate follow-up.
   
2. list_items(mcp_ai_deal, filters: [{key: "pipeline_stage", value: "qualification"}])
   → Find deals stuck in qualification for 2+ weeks — they need a champion.
   
3. list_items(mcp_ai_crm_activity, filters: [{key: "activity_type", value: "task"}])
   → Check for overdue follow-up tasks (due_date < today).
   
4. list_items(mcp_ai_lead, filters: [{key: "lead_status", value: "disqualified"}])
   → Review disqualified leads — some may be worth re-engaging.

Searching across CRM

// Find all leads from a specific company domain:
{ "action": "list_items", "post_type": "mcp_ai_lead", "search": "@cbiz.com" }

// Find all activities for a lead:
{ "action": "list_items", "post_type": "mcp_ai_crm_activity",
  "filters": [{ "key": "related_type", "value": "lead" },
              { "key": "related_id", "value": "12398" }] }

JobNavigator-Adoption Features (v3.2.0)

Adopted from vesaias/JobNavigator; full plan in docs/developer/crm-toolkit-jobnavigator-adoption-plan.md.

Stage transition history (deals)

Every move_deal_stage (and create_deal) appends a machine-readable entry to the deal's stage_history meta:

{ "from": "prospecting", "to": "qualification", "at": "2026-09-16T…", "source": "tool" }
  • source is one of tool, agent, workflow, manual, email_reply, bulk.
  • stage_changed_at meta stamps the last real change — drives time-in-stage and stalled-deal detection. No-op stage moves never bump updated_at.
  • move_deal_stage accepts undo: true to revert the last move without recording a new transition (audits deal_stage_reverted).
  • Helper: WP_MCP_AI_CRM_Stage_History (record, get_history, undo_last, time_in_stage, next_open_stage).

Lead dedup, companies, signals

  • create_lead refuses duplicates by normalized email with a 409 wp_mcp_ai_duplicate_lead error carrying existing_lead_id; pass allow_duplicate: true to force-create.
  • create_lead auto-links company_name to a canonical company record (case/space-insensitive; auto-creates when missing) via WP_MCP_AI_CRM_Identity. Settings: identity.auto_create_company (default true), identity.auto_create_company_from_domain (default false), identity.dedupe_leads (default true).
  • Lead/deal email signals: last_email_received, last_email_snippet (capped 500), last_email_sentiment (positive|neutral|negative|mixed|unknown).
  • Auto-disqualification: settings auto_disqualify block (enabled, max_score, min_age_days, only_statuses) — evaluated on lead create/update, fires wp_mcp_ai_crm_lead_auto_disqualified.

New tools

SlugPurpose
bulk_move_deal_stagesMove up to 100 deals to one stage; reports updated/skipped/not_found; supports undo
record_crm_replyStore reply signals on lead + open deals; optionally advance a deal (advance_deal: true) with source email_reply
get_crm_handoverPaste-ready plain-text bundle (facts, BANT, stage history, signals, activities + closing ask) for any AI/human handoff
get_pipeline_digestCompact digest text + data: stage totals, pipeline value, stalled deals, hot leads, overdue tasks
create_tracked_linkCreate a ?nvoos_track=<token> link for a deal; opens recorded on the deal
  • delete_deal on a closed_won deal releases the lead lifecycle back to opportunity when no other won deal remains (hook wp_mcp_ai_crm_deal_deleted).

Gmail reply poller (v3.2.0)

Settings gmail_reply_poll block (enabled default false, advance_on_positive default false, max_per_poll 10, min_interval_minutes 15). When enabled, the cron (wp_mcp_ai_crm_gmail_reply_poll) polls Gmail for unread replies via the Gmail client + Remote Sites connections, matches senders to leads by normalized email, classifies sentiment via WP_MCP_AI_CRM_Classifier, and applies signals through WP_MCP_AI_Tool_Record_CRM_Reply::apply(). Unknown senders are skipped; the wp_mcp_ai_crm_classify_intent filter can swap in an LLM classifier. Last-poll stamp: wp_mcp_ai_crm_reply_last_poll option.

Pipeline digest scheduling (recipe asset, no code)

addons/pro/config/pipeline-digest-recipe.json — an importable recipe: workflow nodes get_pipeline_digest → send_telegram_message ({{digest.result.text}} template) plus a create_pro_schedule daily config. Apply via the Pro Workflow Builder + Pro Schedule Manager MCP tools; swap the delivery node for WhatsApp or local persistence as needed.

Critical Rules

  • Always use get_schema first before creating or updating a record to verify available field keys and types.
  • Lead scoring is automated — the lead_score and bant_assessment are populated by the CRM engine. Manual overrides should be rare and documented.
  • Never delete leads — use lead_status: "disqualified" to preserve audit trail and prevent re-import of the same contact.
  • Activities are the audit trail — log every meaningful interaction (call, email, meeting, note) with related_type and related_id.
  • Deal pipeline stages are sequential — don't skip stages. Each stage transition should have an activity log.
  • deal_owner is a WordPress user ID — ensure the user exists and has appropriate CRM capabilities.
  • win_probability is a float stored as string — use "0.1" not 0.1 in JSON.
  • BANT evidence is semicolon-delimited — the engine parses email content for keyword evidence. When manually setting, use "keyword1; keyword2; " format.
  • Bulk operations (bulk_create) are for imports — each item must be a complete fields object. Existing records with matching IDs will be overwritten.
  • Support tickets (mcp_ai_ticket) are SLA-tracked — create them for customer issues, not sales inquiries.

Common Mistakes

WRONG — deleting a lead instead of disqualifying
{ "action": "delete_item", "post_type": "mcp_ai_lead", "item_id": 12398 }

RIGHT — disqualify to preserve history
{ "action": "update_item", "post_type": "mcp_ai_lead", "item_id": 12398,
  "fields": { "lead_status": "disqualified" } }

WRONG — creating a deal without linking to a lead
{ "action": "create_item", "post_type": "mcp_ai_deal",
  "fields": { "deal_name": "Some Deal", "pipeline_stage": "qualification" } }
// Missing lead_id — the deal has no source traceability.

RIGHT — always link deals to their source lead
{ "action": "create_item", "post_type": "mcp_ai_deal",
  "fields": { "lead_id": "12398", "deal_name": "CBIZ - Audit Automation",
  "pipeline_stage": "scoping", "amount": "0", "currency": "USD", "deal_owner": "1",
  "win_probability": "0.1" } }

WRONG — logging an activity without related_type or related_id
{ "action": "create_item", "post_type": "mcp_ai_crm_activity",
  "fields": { "title": "Call with prospect", "activity_type": "call" } }
// This activity is orphaned — it can't be found when viewing the lead/deal.

RIGHT — always link activities to their parent entity
{ "action": "create_item", "post_type": "mcp_ai_crm_activity",
  "fields": { "title": "Discovery call with Jill Scher (Lead #12398)",
  "activity_type": "call", "related_type": "lead", "related_id": "12398" } }

WRONG — skipping pipeline stages
// Moving from "inquiry" directly to "proposal" with no scoping or qualification.
// The pipeline history should reflect the actual sales process.

RIGHT — advance stage-by-stage with activity log
1. update_item: pipeline_stage: "scoping"
2. create_item(activity): "Scope of work discussed"
3. update_item: pipeline_stage: "qualification"
4. create_item(activity): "BANT confirmed, champion identified"
5. update_item: pipeline_stage: "proposal"

WRONG — setting win_probability to 0 or 1 prematurely
// Win probability should reflect real pipeline stage, not optimism/pessimism.

WRONG — searching with filters that use meta keys not in the schema
// Some meta fields may be added dynamically. Always call get_schema first
// to confirm which fields are registered and filterable.

Cross-References

  • Run design-deep-research to research target companies before creating company profiles.
  • Run design-web-research for quick company lookups and competitive intelligence.
  • Run design-pro-workflow-builder to automate CRM workflows (lead scoring, auto-assignment, stage progression).
  • Run design-pro-schedule-manager to schedule recurring CRM tasks (pipeline reviews, follow-up reminders).
  • Run design-document-generation to create proposals, SOWs, and invoices from deal data.
  • Run wp-security-audit on any CRM automation callbacks — CRM data is sensitive and must be access-controlled.

What This Skill Does NOT Cover

  • Email integration details (Gmail/Outlook sync) — use search_gmail for inbox queries.
  • Remote WordPress CRM access — use nv_oos_console_agent_remote_wp_connection for multi-site CRM.
  • Paper Store integration — use paper_store_* tools for research-backed company profiles.
  • ERP integration (EZuite) — use ezuite_erp / ezuite_erp_get_products for ERP-connected CRM data.
  • CRM workflow rule configuration — use toolkit_cpt with post_type: "mcp_ai_crm_wf_rule" and the design-pro-workflow-builder skill.
  • Sequence automation — use toolkit_cpt with post_type: "mcp_ai_sequence".

References

  • NV oOS Pro Toolkit CRM admin page: /wp-admin/admin.php?page=nvoos-pro-toolkit-crm
  • toolkit_cpt MCP tool — the primary interface for all CRM operations.
  • BANT framework: blog.hubspot.com/sales/bant
  • MEDDIC framework: meddic.co

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Control a headless browser to navigate URLs, click elements, fill forms, extract content from JavaScript-rendered pages, take screenshots, and automate end-to-end web workflows.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Review code for quality, simplicity, and maintainability. Identifies unnecessary abstractions, duplicated logic, oversized functions, missing error handling, and naming issues — then fixes them automatically before presenting the result.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

WooCommerce store operations through NV oOS Pro — product research, catalog cross-referencing, inventory lookups, and Shopify or Flowhub comparisons where integrations are configured.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

nvdigitalsolutions のスキルをすべて見る

このスキルの問題を報告する