Skip to content
All Skills

CRM Automation

CRM workflow automation for HubSpot, Salesforce, Pipedrive - lead management, deal tracking, and multi-CRM synchronization

Business, Marketing & Sales|v1|Updated 7/14/2026|GitHub source
MCP get_skill({ skillId: "crm-automation-a0529f7f" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# CRM Automation

Automate CRM workflows for HubSpot, Salesforce, and Pipedrive including lead management, deal tracking, pipeline automation, and multi-CRM synchronization. Based on n8n workflow templates.

## Overview

This skill covers:
- Lead capture and enrichment automation
- Deal stage progression workflows
- Multi-CRM data synchronization
- Automated follow-up sequences
- Sales analytics and reporting

---

## Core Workflow Patterns

### 1. Lead Capture → Enrichment → Assignment

```
┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ Lead Source │───▶│ Enrich Data │───▶│ Score Lead  │───▶│ Route to    │
│ (Form/API)  │    │ (Clearbit)  │    │ (AI/Rules)  │    │ Sales Rep   │
└─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘
                                                                │
                         ┌─────────────┐    ┌─────────────┐    │
                         │ Start       │◀───│ Create in   │◀───┘
                         │ Sequence    │    │ CRM         │
                         └─────────────┘    └─────────────┘
```

**n8n Configuration**:
```yaml
workflow: "Lead Capture to CRM"

trigger:
  - type: webhook
    event: form_submission
    source: [website, landing_page, calendly]

steps:
  1. capture_lead:
      fields: [email, name, company, phone, source]
  
  2. enrich_data:
      provider: clearbit
      lookup_by: email
      append: [company_size, industry, title, linkedin]
  
  3. score_lead:
      model: ai_scoring  # or rule-based
      factors:
        - company_size: {1-50: 10, 51-200: 20, 201+: 30}
        - industry_fit: {high: 30, medium: 20, low: 10}
        - title_seniority: {c-level: 30, director: 20, manager: 10}
      threshold: 50  # MQL threshold
  
  4. route_lead:
      rules:
        - if: score >= 80 AND industry == "tech"
          assign_to: "Enterprise Team"
        - if: score >= 50
          assign_to: "SMB Team"
        - else:
          assign_to: "Marketing Nurture"
  
  5. create_in_crm:
      platform: hubspot
      object: contact
      properties:
        email: "{email}"
        firstname: "{first_name}"
        company: "{company}"
        lead_score: "{score}"
        lead_source: "{source}"
  
  6. start_sequence:
      if: score >= 50
      sequence: "New Lead Welcome"
      delay: 1_hour
```

---

### 2. Deal Stage Automation

```yaml
workflow: "Deal Stage Progression"

trigger:
  - type: hubspot_deal_updated
    property: dealstage

stages:
  appointment_scheduled:
    actions:
      - create_task: "Prepare for meeting"
        due: 1_day_before_meeting
      - notify_slack: "#sales-pipeline"
      - update_property: last_activity_date
  
  qualified_to_buy:
    actions:
      - create_task: "Send proposal"
        due: 3_days
      - notify_manager: true
      - add_to_forecast: true
  
  presentation_scheduled:
    actions:
      - create_task: "Prepare demo environment"
      - send_reminder: 1_hour_before
      - log_activity: "Presentation scheduled"
  
  contract_sent:
    actions:
      - set_close_date: 14_days_from_now
      - create_task: "Follow up on contract"
        due: 7_days
      - notify_legal: if amount > 50000
  
  closed_won:
    actions:
      - notify_slack: "#wins"
      - trigger_onboarding: true
      - update_forecast: remove
      - celebrate: confetti  # Slack celebration
  
  closed_lost:
    actions:
      - log_loss_reason: required
      - add_to_nurture: true
      - schedule_reengagement: 90_days
```

---

### 3. Multi-CRM Synchronization

```yaml
workflow: "HubSpot + Salesforce + Pipedrive Sync"

sync_rules:
  contacts:
    master: hubspot
    sync_to: [salesforce, pipedrive]
    frequency: real_time
    fields:
      - email (unique_key)
      - name
      - company
      - phone
      - owner
    conflict_resolution: most_recent_wins
    deduplication: 
      provider: openai
      similarity_threshold: 0.85
  
  deals:
    master: salesforce
    sync_to: [hubspot, pipedrive]
    frequency: every_15_minutes
    field_mapping:
      salesforce.Opportunity.Amount → hubspot.deal.amount
      salesforce.Opportunity.CloseDate → hubspot.deal.closedate
      salesforce.Opportunity.StageName → hubspot.deal.dealstage
  
  activities:
    aggregate_to: google_sheets
    types: [calls, emails, meetings, notes]
    columns: [date, contact, type, summary, outcome]
```

**n8n Implementation**:
```javascript
// Multi-CRM Sync Node
{
  "nodes": [
    {
      "name": "Get HubSpot Contacts",
      "type": "n8n-nodes-base.hubspot",
      "parameters": {
        "operation": "getAll",
        "limit": 100,
        "additionalFields": {
          "propertiesToInclude": ["email", "firstname", "lastname", "company"]
        }
      }
    },
    {
      "name": "Get Salesforce Contacts",
      "type": "n8n-nodes-base.salesforce",
      "parameters": {
        "operation": "getAll",
        "sobject": "Contact"
      }
    },
    {
      "name": "Deduplicate with OpenAI",
      "type": "n8n-nodes-base.openAi",
      "parameters": {
        "operation": "message",
        "model": "gpt-4",
        "prompt": "Compare these contacts and identify duplicates: {{$json}}"
      }
    },
    {
      "name": "Sync to Master Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "parameters": {
        "operation": "append",
        "sheetId": "your-sheet-id"
      }
    }
  ]
}
```

---

## Lead Scoring Model

### Rule-Based Scoring

```yaml
lead_score_rules:
  demographic:
    job_title:
      - C-Level|VP|Director: +30
      - Manager|Head: +20
      - Individual Contributor: +10
    
    company_size:
      - 1-50: +10
      - 51-200: +20
      - 201-1000: +25
      - 1000+: +30
    
    industry:
      - Technology|SaaS: +30
      - Finance|Healthcare: +25
      - Manufacturing|Retail: +15
  
  behavioral:
    website_visits:
      - 1-2: +5
      - 3-5: +10
      - 6+: +20
    
    content_downloads:
      - Whitepaper: +15
      - Case Study: +20
      - Pricing Page: +25
    
    email_engagement:
      - Opened: +5
      - Clicked: +10
      - Replied: +20

thresholds:
  - MQL: 50
  - SQL: 75
  - Hot Lead: 90
```

### AI-Based Scoring

```yaml
ai_scoring_model:
  provider: openai
  prompt: |
    Score this lead from 0-100 based on:
    - Fit with our ICP (ideal customer profile)
    - Buying intent signals
    - Budget authority
    - Timeline urgency
    
    Lead Data: {lead_data}
    ICP: B2B SaaS companies, 50-500 employees, Series A+
    
    Return JSON: {"score": X, "reasoning": "...", "next_action": "..."}
```

---

## Automated Sequences

### Sequence 1: New Lead Welcome

```yaml
sequence: "New Lead Welcome"
trigger: lead_created AND score >= 50

steps:
  - day_0:
      type: email
      template: "welcome_intro"
      subject: "Welcome to {Company} - Here's what's next"
  
  - day_2:
      type: email
      template: "value_prop"
      subject: "How {Similar_Company} achieved {Result}"
      condition: not_replied
  
  - day_4:
      type: task
      action: "LinkedIn connection request"
      assign_to: owner
  
  - day_7:
      type: email
      template: "case_study"
      subject: "Quick case study for {Lead_Company}"
      condition: not_replied
  
  - day_10:
      type: email
      template: "meeting_request"
      subject: "15 min to discuss {Pain_Point}?"
      include: calendly_link
  
  - day_14:
      type: task
      action: "Phone call attempt"
      assign_to: owner
      condition: not_responded
```

### Sequence 2: Deal Follow-Up

```yaml
sequence: "Proposal Follow-Up"
trigger: deal_stage == "contract_sent"

steps:
  - day_3:
      type: email
      template: "contract_check_in"
      subject: "Any questions about the proposal?"
  
  - day_7:
      type: task
      action: "Phone call - contract follow-up"
  
  - day_10:
      type: email
      template: "deadline_reminder"
      subject: "Pricing valid until {deadline}"
      condition: not_responded
  
  - day_14:
      type: alert
      notify: sales_manager
      message: "Deal stuck in contract stage"
```

---

## Integration Recipes

### Recipe 1: Calendly → HubSpot

```yaml
trigger: calendly.booking_created

actions:
  1. search_contact:
      hubspot.search: email == calendly.invitee_email
  
  2. create_or_update:
      if: contact_exists
        hubspot.update_contact:
          last_meeting_booked: calendly.start_time
      else:
        hubspot.create_contact:
          email: calendly.invitee_email
          firstname: calendly.invitee_name
          lifecycle_stage: "salesqualifiedlead"
  
  3. create_meeting:
      hubspot.create_engagement:
        type: MEETING
        scheduled_time: calendly.start_time
        title: calendly.event_name
  
  4. notify:
      slack.send:
        channel: "#sales"
        message: "Meeting booked: {name} at {time}"
```

### Recipe 2: LinkedIn → HubSpot

```yaml
trigger: linkedin.connection_accepted

actions:
  1. enrich:
      linkedin.get_profile: connection_id
  
  2. create_contact:
      hubspot.create:
        email: linkedin.email
        firstname: linkedin.first_name
        lastname: linkedin.last_name
        jobtitle: linkedin.title
        company: linkedin.company
        linkedin_url: linkedin.profile_url
        lead_source: "LinkedIn"
  
  3. add_to_sequence:
      if: title contains ["CEO", "CTO", "VP"]
      sequence: "LinkedIn C-Level Outreach"
```

---

## Reporting Templates

### Weekly Sales Report

```markdown
# Sales Pipeline Report - Week {week_number}

## Pipeline Summary
| Stage | Deals | Value | Change |
|-------|-------|-------|--------|
| New | 15 | $150K | +5 |
| Qualified | 8 | $120K | +2 |
| Proposal | 5 | $85K | -1 |
| Negotiation | 3 | $45K | +1 |
| **Total Pipeline** | **31** | **$400K** | **+7** |

## This Week's Activity
- New leads: 45
- Meetings held: 12
- Proposals sent: 4
- Deals closed: 2 ($35K)

## Team Performance
| Rep | Meetings | Proposals | Closed |
|-----|----------|-----------|--------|
| Alice | 5 | 2 | 1 |
| Bob | 4 | 1 | 1 |
| Carol | 3 | 1 | 0 |

## Forecast
- Commit: $45K (3 deals)
- Best Case: $85K (5 deals)
- Pipeline: $400K (31 deals)

## Actions Needed
- [ ] Follow up on 3 stale deals (>14 days no activity)
- [ ] Schedule demo for Enterprise Lead X
- [ ] Send revised proposal to Company Y
```

---

## Best Practices

### Data Hygiene

```yaml
data_hygiene_rules:
  - deduplicate: weekly
    method: email_match + company_fuzzy_match
  
  - validate_emails: on_create
    action: remove_invalid
  
  - enrich_missing: daily
    fields: [company, title, linkedin]
  
  - archive_stale: monthly
    criteria: no_activity > 180_days
    action: move_to_archive
```

### Security

```yaml
security_practices:
  - api_keys: rotate_quarterly
  - access_control: role_based
  - audit_log: all_changes
  - pii_handling: encrypt_at_rest
  - gdpr_compliance: consent_tracking
```

---

*CRM Automation Skill - Part of Claude Office Skills*
#work-life#office#productivity#business#documents#automation#claude-office-skills#email#marketingn8nsalesforcehubspotpipedriveclearbit

Related Skills

More skills in Business, Marketing & Sales

Ab Testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.

#work-life#productivityMIT

Ab Test Setup

When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "conversion experiment," "statistical significance," or "test this." For tracking implementation, see analytics-tracking.

#work-life#productivityMIT

Ab Test Setup

Ab Test Setup linked from Corey Haines marketing skills, with the upstream skill instructions available on GitHub.

#work-life#productivityMIT

Ab Test Store Listing

When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.

#work-life#productivityMIT

Account Research

Research a company or person and get actionable sales intel. Works standalone with web search, supercharged when you connect enrichment tools or your CRM. Trigger with "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]", or "tell me about [company]".

#work-life#productivityApache-2.0

Account Research

Research a company using Common Room data. Triggers on 'research [company]', 'tell me about [domain]', 'pull up signals for [account]', 'what's going on with [company]', or any account-level question.

#work-life#productivityApache-2.0