GoHighLevelから非アクティブ取引をSlackとシートへ自動クローズ

中級

これはCRM分野の自動化ワークフローで、15個のノードを含みます。主にCode, Slack, Filter, HighLevel, GoogleSheetsなどのノードを使用。 GoHighLevel 内の非アクティブな取引を Slack と Sheets へ自動のに削除

前提条件
  • Slack Bot Token または Webhook URL
  • Google Sheets API認証情報

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "FpblHtpWHqFmqzwu",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate Inactive Deal Cleanup from GoHighLevel to Slack and Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "a30f842e-09db-4524-bb2a-f6fb696cd818",
      "name": "ワークフロー説明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -96
      ],
      "parameters": {
        "color": 4,
        "width": 386,
        "height": 400,
        "content": "## 🎯 Workflow Overview\n\nThis workflow automatically identifies and archives inactive deals in HighLevel CRM pipelines.\n\n**What it does:**\n- Runs daily to check all opportunities\n- Filters deals with no activity for 10+ days\n- Archives inactive deals automatically\n- Logs all actions to Google Sheets\n- Sends summary report to Slack\n\n**Business Value:**\n- Keeps pipelines clean and focused\n- Prevents lost opportunities from cluttering views\n- Maintains audit trail in Google Sheets\n- Team visibility via Slack notifications"
      },
      "typeVersion": 1
    },
    {
      "id": "0558197c-899a-470f-93b0-131da334b0f7",
      "name": "スケジュール設定",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        -400
      ],
      "parameters": {
        "width": 282,
        "height": 311,
        "content": "## ⏰ Schedule Configuration\n\n**Current:** Runs daily at 9 AM\n\n**To modify:**\n1. Click this node\n2. Adjust cron expression\n3. Common patterns:\n   - Every 6 hours: `0 */6 * * *`\n   - Twice daily: `0 9,17 * * *`\n   - Weekdays only: `0 9 * * 1-5`"
      },
      "typeVersion": 1
    },
    {
      "id": "86b8ca02-40c9-4f1d-8192-8c076eb62bc6",
      "name": "毎日午前9時",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -800,
        -64
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "860e1aca-04f7-4001-a58b-d2fa695da3e1",
      "name": "HighLevel設定",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -688,
        112
      ],
      "parameters": {
        "width": 264,
        "height": 274,
        "content": "## 📊 HighLevel Setup\n\n**Required:**\n- OAuth2 credentials configured\n- Location ID in credential settings\n\n**This fetches:**\n- All opportunities from your account\n- Includes contact data\n- No pagination limit issues"
      },
      "typeVersion": 1
    },
    {
      "id": "9d54a579-e7b9-4d02-a1cd-58f76ebf4c73",
      "name": "すべての商談を取得",
      "type": "n8n-nodes-base.highLevel",
      "position": [
        -576,
        -64
      ],
      "parameters": {
        "filters": {},
        "resource": "opportunity",
        "operation": "getAll",
        "requestOptions": {}
      },
      "credentials": {
        "highLevelOAuth2Api": {
          "id": "5QWHSi134dLIBEsC",
          "name": "HighLevel account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6f31695d-a18d-46c1-aa00-3ce68013db10",
      "name": "フィルターロジック",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -496,
        -384
      ],
      "parameters": {
        "width": 262,
        "height": 296,
        "content": "## 🔍 Inactivity Filter\n\n**Logic:**\n- Calculates days since last activity\n- Uses `last_activity_at` or `updatedAt`\n- Threshold: **10 days**\n\n**To adjust threshold:**\nChange `10` in the rightValue field\n- 7 days = more aggressive\n- 14 days = more lenient"
      },
      "typeVersion": 1
    },
    {
      "id": "09134267-b553-4979-9be3-d3e74e263b74",
      "name": "10日以上非アクティブな商談をフィルター",
      "type": "n8n-nodes-base.filter",
      "position": [
        -352,
        -64
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ Math.floor((new Date() - new Date($json.lastActionDate || $json.updatedAt)) / (1000 * 60 * 60 * 24)) }}",
              "rightValue": 10
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "b9dd983f-bbba-4956-85fd-d3813997f27b",
      "name": "アーカイブ設定",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        112
      ],
      "parameters": {
        "width": 254,
        "height": 264,
        "content": "## 📦 Archive Action\n\n**What happens:**\n- Updates opportunity status\n- Marks as archived/closed\n- Preserves all deal data\n\n**Note:** Configure the `status` field in updateFields to match your HighLevel setup (e.g., \"archived\", \"lost\", \"closed\")"
      },
      "typeVersion": 1
    },
    {
      "id": "dc7991c7-79ad-48a3-b79d-d8359afa4d8c",
      "name": "非アクティブ商談をアーカイブ",
      "type": "n8n-nodes-base.highLevel",
      "position": [
        -128,
        -64
      ],
      "parameters": {
        "resource": "opportunity",
        "operation": "update",
        "updateFields": {
          "status": "archived"
        },
        "opportunityId": "={{ $json.id }}",
        "requestOptions": {}
      },
      "credentials": {
        "highLevelOAuth2Api": {
          "id": "5QWHSi134dLIBEsC",
          "name": "HighLevel account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "7f905180-3a1a-4b6f-b049-438b49d50929",
      "name": "処理ロジック",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        -288
      ],
      "parameters": {
        "width": 256,
        "height": 296,
        "content": "## 🧮 Data Processing\n\n**Transforms deal data:**\n- Calculates days inactive\n- Extracts contact info\n- Formats for Google Sheets\n- Adds metadata fields\n\n**Output fields:**\nid, name, contactName, daysSinceActivity, monetaryValue, source, tags"
      },
      "typeVersion": 1
    },
    {
      "id": "7fe4471f-287d-4319-8ab0-02f245d9c8f2",
      "name": "商談データをフォーマット",
      "type": "n8n-nodes-base.code",
      "position": [
        112,
        32
      ],
      "parameters": {
        "jsCode": "// Process and format inactive deal data for logging\nconst formattedData = $input.all().map(item => {\n  const opp = item.json;\n  const lastActivity = new Date(opp.lastActionDate || opp.updatedAt);\n  const daysSinceActivity = Math.floor((Date.now() - lastActivity) / (1000 * 60 * 60 * 24));\n  \n  return {\n    json: {\n      id: opp.id,\n      name: opp.name,\n      pipelineId: opp.pipelineId,\n      pipelineStageId: opp.pipelineStageId,\n      contactId: opp.contactId,\n      contactName: opp.contact?.name || 'N/A',\n      lastActionDate: opp.lastActionDate,\n      updatedAt: opp.updatedAt,\n      daysSinceActivity: daysSinceActivity,\n      isInactive: daysSinceActivity > 10,\n      monetaryValue: opp.monetaryValue || 0,\n      source: opp.source || 'Unknown',\n      tags: Array.isArray(opp.contact?.tags) ? opp.contact.tags.join(', ') : '',\n      archivedAt: new Date().toISOString()\n    }\n  };\n});\n\nreturn formattedData;"
      },
      "typeVersion": 2
    },
    {
      "id": "909dfef7-0703-4893-9465-e806445e492e",
      "name": "Sheets設定",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        224
      ],
      "parameters": {
        "width": 278,
        "height": 346,
        "content": "## 📋 Google Sheets Setup\n\n**Required:**\n1. Create Google Sheet\n2. Add sheet named \"Inactive Pipeliner\"\n3. Connect OAuth2 credential\n4. Replace documentId below\n\n**Columns auto-created:**\nid, name, contactName, daysSinceActivity, monetaryValue, source, tags, archivedAt"
      },
      "typeVersion": 1
    },
    {
      "id": "046731cb-c515-4430-ba58-f75b46797401",
      "name": "Google Sheetsに記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        400,
        64
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "contactName",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "contactName",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "daysSinceActivity",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "daysSinceActivity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "monetaryValue",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "monetaryValue",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "source",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "archivedAt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "archivedAt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "id"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Inactive Pipeliner"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Description').item.json.sheetId }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "kpPEOLCGn963qpoh",
          "name": "automations@techdome.ai"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "3a9b90d5-901f-4dd8-a118-cf76b3da61f5",
      "name": "Slack 設定",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        576,
        -304
      ],
      "parameters": {
        "width": 246,
        "height": 328,
        "content": "## 💬 Slack Notification\n\n**Setup:**\n1. Connect Slack OAuth2\n2. Select your channel\n3. Remove hardcoded channel ID\n\n**Message includes:**\n- Total archived count\n- Sum of monetary values\n- List of deal names"
      },
      "typeVersion": 1
    },
    {
      "id": "e1acc249-b80a-4d7d-aa63-b6265b641170",
      "name": "Slack レポートを送信",
      "type": "n8n-nodes-base.slack",
      "position": [
        432,
        -128
      ],
      "webhookId": "2ee869d2-6132-4bfe-8cd3-53415ad11fce",
      "parameters": {
        "text": "=:bookmark_tabs: *Inactive Pipeline Cleaner Report*\n\n*Date:* {{ $now.format('MMMM dd, yyyy') }}\n*Total Deals Archived:* {{ $json.count }}\n*Total Monetary Value:* ${{ $json.totalValue.toLocaleString() }}\n\n*Archived Deals:*\n{{ $json.dealsList.split(',').map((deal, idx) => `${idx + 1}. ${deal.trim()}`).join('\\n') }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Description').item.json.slackChannel }}"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "rNqvWj9TfChPVRYY",
          "name": "Slack account vivek"
        }
      },
      "typeVersion": 2.1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5d204940-94de-4c34-8521-884e2f4345f8",
  "connections": {
    "86b8ca02-40c9-4f1d-8192-8c076eb62bc6": {
      "main": [
        [
          {
            "node": "9d54a579-e7b9-4d02-a1cd-58f76ebf4c73",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7fe4471f-287d-4319-8ab0-02f245d9c8f2": {
      "main": [
        [
          {
            "node": "046731cb-c515-4430-ba58-f75b46797401",
            "type": "main",
            "index": 0
          },
          {
            "node": "e1acc249-b80a-4d7d-aa63-b6265b641170",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dc7991c7-79ad-48a3-b79d-d8359afa4d8c": {
      "main": [
        [
          {
            "node": "7fe4471f-287d-4319-8ab0-02f245d9c8f2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9d54a579-e7b9-4d02-a1cd-58f76ebf4c73": {
      "main": [
        [
          {
            "node": "09134267-b553-4979-9be3-d3e74e263b74",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09134267-b553-4979-9be3-d3e74e263b74": {
      "main": [
        [
          {
            "node": "dc7991c7-79ad-48a3-b79d-d8359afa4d8c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - 顧客管理

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数15
カテゴリー1
ノードタイプ7
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34