AutomationFlowsAI & RAG › Monitor Ip Conflicts and Governance with Gpt-4o, Slack, Gmail and Sheets

Monitor Ip Conflicts and Governance with Gpt-4o, Slack, Gmail and Sheets

ByCheng Siong Chin @cschin on n8n.io

This workflow automates intellectual property (IP) monitoring, conflict detection, and governance reporting for IP counsel, legal operations teams, and compliance officers. It eliminates the manual effort of tracking IP lifecycle events, identifying conflicting registrations,…

Cron / scheduled trigger★★★★★ complexityAI-powered42 nodesAgentOpenAI ChatMemory Buffer WindowAgent ToolIn-Memory Vector StoreOpenAI EmbeddingsOutput Parser StructuredGoogle Sheets Tool
AI & RAG Trigger: Cron / scheduled Nodes: 42 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #14437 — we link there as the canonical source.

This workflow follows the Agent → Agenttool recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "CFnmO0E4n5jT6cjd",
  "name": "AI-powered IP monitoring and governance with conflict detection and compliance",
  "tags": [],
  "nodes": [
    {
      "id": "ddbc396d-6dbc-46f6-865c-4708a05003ce",
      "name": "Schedule IP Monitoring",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        480,
        608
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "2bb6b9e8-2296-4e06-a1c8-e40893c3444f",
      "name": "IP Monitoring Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1112,
        512
      ],
      "parameters": {
        "text": "={{ $json.monitoring_request || 'Perform daily IP monitoring: check all active patents, trademarks, and copyrights for conflicts, upcoming renewals, and lifecycle status changes.' }}",
        "options": {
          "systemMessage": "You are an IP Monitoring Agent responsible for tracking patents, trademarks, and copyright usage across the organization. Your role is to: 1) Monitor IP asset lifecycle and renewal dates, 2) Detect potential IP conflicts using similarity analysis, 3) Coordinate with specialized sub-agents for conflict detection and lifecycle tracking, 4) Generate structured reports on IP status, conflicts, and recommendations. Always provide detailed analysis with specific IP identifiers, conflict severity levels, and actionable recommendations."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "9754f977-f72c-4320-a862-ecd32b6177f1",
      "name": "Monitoring Agent Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        800,
        704
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.2
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "d5e5034b-d6a3-433a-9640-4be725a7daba",
      "name": "Monitoring Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        976,
        720
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "20e9f3ef-3da2-4bdc-8364-0410b42f1fc8",
      "name": "IP Conflict Detection Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        944,
        992
      ],
      "parameters": {
        "text": "={{ $fromAI('ip_asset_details', 'The IP asset to analyze for conflicts including type, description, claims, and identifiers') }}",
        "options": {
          "systemMessage": "You are an IP Conflict Detection specialist. Analyze the provided IP asset against existing IP databases to identify potential conflicts. Use vector similarity search for semantic conflicts and keyword analysis for exact matches. Classify conflict severity as: CRITICAL (direct infringement risk), HIGH (significant overlap), MEDIUM (partial similarity), LOW (minor resemblance). Provide specific conflicting IP numbers and detailed conflict analysis."
        },
        "toolDescription": "Analyzes IP assets for potential conflicts with existing patents, trademarks, or copyrights using similarity search and prior art analysis. Returns conflict severity (critical/high/medium/low), conflicting IP identifiers, and recommendations."
      },
      "typeVersion": 3
    },
    {
      "id": "b85c14f6-0ef8-4b10-adac-30d6f61c1c16",
      "name": "Conflict Detection Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        928,
        1200
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "a3055ed9-4337-4cb1-ba9a-3051647e2606",
      "name": "IP Lifecycle Tracking Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1296,
        992
      ],
      "parameters": {
        "text": "={{ $fromAI('ip_asset_info', 'The IP asset to track including type, filing date, grant date, and jurisdiction') }}",
        "options": {
          "systemMessage": "You are an IP Lifecycle Tracking specialist. Monitor IP asset lifecycle events including: filing dates, publication dates, grant/registration dates, renewal deadlines, maintenance fee schedules, and expiration dates. Calculate days until next action required. Flag assets requiring immediate attention (within 30 days), upcoming renewals (30-90 days), and long-term planning (90+ days). Provide specific dates and action items."
        },
        "toolDescription": "Tracks IP asset lifecycle including filing dates, grant dates, renewal deadlines, maintenance fees, and expiration dates. Identifies upcoming actions required and calculates remaining protection periods."
      },
      "typeVersion": 3
    },
    {
      "id": "ecd26295-0ce8-432f-a5ca-cadbe3b11ab6",
      "name": "Lifecycle Tracking Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1376,
        1200
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0a042a77-6a60-4097-b998-5acf76ed4990",
      "name": "IP Knowledge Base",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      "position": [
        1056,
        1200
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "memoryKey": {
          "__rl": true,
          "mode": "list",
          "value": "vector_store_key"
        },
        "toolDescription": "Search the IP knowledge base containing patents, trademarks, copyrights, and legal documentation for similarity analysis and conflict detection"
      },
      "typeVersion": 1.3
    },
    {
      "id": "37822b95-4f64-49e0-8f4e-ce29ced0a8fe",
      "name": "IP Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        1136,
        1408
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "670904f6-8fc6-45ca-90c2-ba7b7a33a64b",
      "name": "Monitoring Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1712,
        992
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"conflicts_detected\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"conflict_severity\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"critical\", \"high\", \"medium\", \"low\", \"none\"]\n\t\t},\n\t\t\"conflicting_assets\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"properties\": {\n\t\t\t\t\t\"ip_id\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"ip_type\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"similarity_score\": {\n\t\t\t\t\t\t\"type\": \"number\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"lifecycle_alerts\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"properties\": {\n\t\t\t\t\t\"ip_id\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"alert_type\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"days_until_action\": {\n\t\t\t\t\t\t\"type\": \"number\"\n\t\t\t\t\t},\n\t\t\t\t\t\"action_required\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"recommendations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "cf70dfda-fefa-4f4c-a8c8-9754d700a423",
      "name": "IP Tracking Sheet Tool",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1584,
        992
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "descriptionType": "manual",
        "toolDescription": "Read IP asset tracking data from Google Sheets including patent numbers, trademark registrations, copyright records, filing dates, and status information"
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "28e8b3d6-dbab-4015-a857-4049d0a11a9b",
      "name": "IP Governance Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2200,
        512
      ],
      "parameters": {
        "text": "={{ $json.output || 'Process IP monitoring results and determine governance actions: approvals needed, compliance checks, documentation requirements, and stakeholder notifications.' }}",
        "options": {
          "systemMessage": "You are an IP Governance Agent responsible for orchestrating approval workflows, licensing compliance, and legal documentation. Your role is to: 1) Process IP monitoring results and determine governance actions required, 2) Coordinate approval workflows for new IP filings and licensing agreements, 3) Ensure licensing compliance across all IP assets, 4) Generate legal documentation and compliance reports, 5) Coordinate with specialized sub-agents for compliance checks and documentation generation. Provide structured decisions with approval status, compliance assessments, and required documentation."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "a1125181-c702-478e-85ce-6304bd1a744c",
      "name": "Governance Agent Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1888,
        720
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.2
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "5bba0163-8068-4003-bcbc-515c4aac4f45",
      "name": "Governance Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2064,
        736
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "bfb77a3a-b164-46c3-9354-7a7977c68f73",
      "name": "Licensing Compliance Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        2192,
        736
      ],
      "parameters": {
        "text": "={{ $fromAI('ip_and_license_info', 'The IP asset and licensing information to verify for compliance') }}",
        "options": {
          "systemMessage": "You are a Licensing Compliance specialist. Analyze IP assets and their associated licenses to verify compliance with: license terms and conditions, usage restrictions, royalty payment obligations, sublicensing rights, territorial and field-of-use limitations, and expiration dates. Identify violations as: CRITICAL (active infringement), HIGH (imminent violation), MEDIUM (potential risk), LOW (minor deviation). Provide specific compliance gaps and remediation steps."
        },
        "toolDescription": "Verifies licensing compliance for IP assets including license terms, usage restrictions, royalty obligations, sublicensing rights, and territorial limitations. Identifies compliance violations and recommends corrective actions."
      },
      "typeVersion": 3
    },
    {
      "id": "5b006c4a-c33f-46a4-a9e0-cb20dbe30577",
      "name": "Licensing Compliance Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2272,
        944
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "55d3b76f-4aed-4491-8941-8c15edfff3cc",
      "name": "Documentation Generation Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        2480,
        736
      ],
      "parameters": {
        "text": "={{ $fromAI('documentation_request', 'The type of documentation needed and the IP/governance data to include') }}",
        "options": {
          "systemMessage": "You are a Legal Documentation specialist for IP governance. Generate professional legal documentation including: IP approval memos with risk assessments, compliance audit reports, licensing agreement summaries, conflict resolution reports with recommendations, renewal notices, and governance decision records. Use formal legal language, include all relevant IP identifiers, dates, parties involved, and specific terms. Structure documents with clear sections: Executive Summary, Details, Analysis, Recommendations, and Required Actions."
        },
        "toolDescription": "Generates legal documentation for IP governance including approval memos, compliance reports, licensing agreements, conflict resolution reports, and audit trail documentation."
      },
      "typeVersion": 3
    },
    {
      "id": "f08b171a-5118-4bab-a2e0-09e75c2632b0",
      "name": "Documentation Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2560,
        944
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0d00073c-ca40-4864-a93b-ec4e2686ddd3",
      "name": "Governance Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2768,
        736
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"approval_required\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"approval_status\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"approved\", \"rejected\", \"pending_review\", \"conditional\"]\n\t\t},\n\t\t\"compliance_status\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"compliant\", \"non_compliant\", \"needs_review\"]\n\t\t},\n\t\t\"compliance_violations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"properties\": {\n\t\t\t\t\t\"violation_type\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"severity\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"description\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"documentation_generated\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"properties\": {\n\t\t\t\t\t\"doc_type\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t},\n\t\t\t\t\t\"content\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"stakeholders_to_notify\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"actions_required\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "52754c6d-9a72-4673-9ead-25938e83a5b7",
      "name": "Route by Severity",
      "type": "n8n-nodes-base.switch",
      "position": [
        2976,
        496
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.output.conflict_severity }}",
                    "rightValue": "critical"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.output.conflict_severity }}",
                    "rightValue": "high"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.output.conflict_severity }}",
                    "rightValue": "medium"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.4
    },
    {
      "id": "ae898483-ceec-47fb-adc6-fd84878a0f11",
      "name": "Prepare Conflict Record",
      "type": "n8n-nodes-base.set",
      "position": [
        3200,
        512
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "conflict_severity",
              "type": "string",
              "value": "={{ $json.output.conflict_severity }}"
            },
            {
              "id": "id-2",
              "name": "conflicts_detected",
              "type": "boolean",
              "value": "={{ $json.output.conflicts_detected }}"
            },
            {
              "id": "id-3",
              "name": "conflicting_assets",
              "type": "string",
              "value": "={{ JSON.stringify($json.output.conflicting_assets) }}"
            },
            {
              "id": "id-4",
              "name": "recommendations",
              "type": "string",
              "value": "={{ JSON.stringify($json.output.recommendations) }}"
            },
            {
              "id": "id-5",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-6",
              "name": "monitoring_date",
              "type": "string",
              "value": "={{ $now.toFormat('yyyy-MM-dd') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "bc1c88c9-1a55-482e-a1cd-93970a1e164e",
      "name": "Store IP Conflicts",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        3424,
        512
      ],
      "parameters": {
        "columns": {
          "value": null,
          "mappingMode": "autoMapInputData"
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__ip_conflicts_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "d0a82433-7ecd-4763-aabf-5cb9aee41f55",
      "name": "Prepare Governance Record",
      "type": "n8n-nodes-base.set",
      "position": [
        3088,
        960
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "approval_status",
              "type": "string",
              "value": "={{ $json.output.approval_status }}"
            },
            {
              "id": "id-2",
              "name": "compliance_status",
              "type": "string",
              "value": "={{ $json.output.compliance_status }}"
            },
            {
              "id": "id-3",
              "name": "compliance_violations",
              "type": "array",
              "value": "={{ JSON.stringify($json.output.compliance_violations) }}"
            },
            {
              "id": "id-4",
              "name": "documentation_generated",
              "type": "array",
              "value": "={{ JSON.stringify($json.output.documentation_generated) }}"
            },
            {
              "id": "id-5",
              "name": "stakeholders_to_notify",
              "type": "array",
              "value": "={{ JSON.stringify($json.output.stakeholders_to_notify) }}"
            },
            {
              "id": "id-6",
              "name": "actions_required",
              "type": "array",
              "value": "={{ JSON.stringify($json.output.actions_required) }}"
            },
            {
              "id": "id-7",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "93f9a8ad-58c7-4c91-a06a-a2ddbae965cb",
      "name": "Store Governance Decisions",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        3312,
        960
      ],
      "parameters": {
        "columns": {
          "value": null,
          "mappingMode": "autoMapInputData"
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__governance_decisions_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "576705ad-5682-462e-897f-83c55888c235",
      "name": "Alert Critical Conflicts",
      "type": "n8n-nodes-base.slack",
      "position": [
        3648,
        512
      ],
      "parameters": {
        "text": "=\ud83d\udea8 CRITICAL IP CONFLICT DETECTED\n\nSeverity: {{ $json.conflict_severity }}\nConflicts: {{ $json.conflicting_assets }}\nRecommendations: {{ $json.recommendations }}\n\nImmediate action required!",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__critical_alerts_channel__>"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "ea6cd624-a2b1-4884-bd43-2d516cd37f5f",
      "name": "Email High Priority Conflicts",
      "type": "n8n-nodes-base.gmail",
      "position": [
        4096,
        416
      ],
      "parameters": {
        "sendTo": "<__PLACEHOLDER_VALUE__legal_team_email__>",
        "message": "=Dear Legal Team,\n\nA high-priority IP conflict has been detected:\n\nSeverity: {{ $json.conflict_severity }}\nConflicting Assets: {{ $json.conflicting_assets }}\nRecommendations: {{ $json.recommendations }}\n\nPlease review and take appropriate action.\n\nBest regards,\nIP Monitoring System",
        "options": {},
        "subject": "=High Priority IP Conflict Alert - {{ $json.conflict_severity }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "28a053d3-4039-4013-bdd3-be0e08464832",
      "name": "Notify Medium Conflicts",
      "type": "n8n-nodes-base.slack",
      "position": [
        4096,
        608
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f Medium Priority IP Conflict\n\nSeverity: {{ $json.conflict_severity }}\nConflicts: {{ $json.conflicting_assets }}\nRecommendations: {{ $json.recommendations }}\n\nReview when convenient.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__ip_monitoring_channel__>"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "002cf36e-8c24-4b2c-929c-f6abc698b578",
      "name": "Check Severity Level",
      "type": "n8n-nodes-base.if",
      "position": [
        3872,
        512
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.conflict_severity }}",
              "rightValue": "high"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "932d798c-2565-4291-b4c4-2787720b1518",
      "name": "Send Compliance Report",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3536,
        960
      ],
      "parameters": {
        "sendTo": "<__PLACEHOLDER_VALUE__compliance_team_email__>",
        "message": "=Dear Compliance Team,\n\nAttached is the IP compliance report:\n\nApproval Status: {{ $json.approval_status }}\nCompliance Status: {{ $json.compliance_status }}\nViolations: {{ $json.compliance_violations }}\nActions Required: {{ $json.actions_required }}\n\nDocumentation has been generated and stored.\n\nBest regards,\nIP Governance System",
        "options": {},
        "subject": "=IP Compliance Report - {{ $now.toFormat('yyyy-MM-dd') }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "999405b3-38b2-44fe-baab-a4fe73dfb337",
      "name": "Format Analytics Data",
      "type": "n8n-nodes-base.set",
      "position": [
        2960,
        208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "total_conflicts",
              "type": "number",
              "value": "={{ $json.output.conflicting_assets ? $json.output.conflicting_assets.length : 0 }}"
            },
            {
              "id": "id-2",
              "name": "critical_count",
              "type": "number",
              "value": "={{ $json.output.conflict_severity === 'critical' ? 1 : 0 }}"
            },
            {
              "id": "id-3",
              "name": "high_count",
              "type": "number",
              "value": "={{ $json.output.conflict_severity === 'high' ? 1 : 0 }}"
            },
            {
              "id": "id-4",
              "name": "lifecycle_alerts_count",
              "type": "number",
              "value": "={{ $json.output.lifecycle_alerts ? $json.output.lifecycle_alerts.length : 0 }}"
            },
            {
              "id": "id-5",
              "name": "compliance_violations_count",
              "type": "number",
              "value": "={{ $('IP Governance Agent').item.json.output.compliance_violations ? $('IP Governance Agent').item.json.output.compliance_violations.length : 0 }}"
            },
            {
              "id": "id-6",
              "name": "report_date",
              "type": "string",
              "value": "={{ $now.toFormat('yyyy-MM-dd') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9ea6bcdd-aad8-43d9-84bc-a61a344cb943",
      "name": "Export Analytics to Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3184,
        208
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d60b42d1-2e23-4fa8-a43f-03d8ae94560f",
      "name": "External IP Alert Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        256,
        416
      ],
      "parameters": {
        "path": "ip-alert-webhook",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "bbdc0a9a-a049-4f67-ad55-178a7eaaee3d",
      "name": "Parse Webhook Data",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "monitoring_request",
              "type": "string",
              "value": "={{ $json.body.alert_message || $json.body.message || 'External IP alert received' }}"
            },
            {
              "id": "id-2",
              "name": "source",
              "type": "string",
              "value": "webhook"
            },
            {
              "id": "id-3",
              "name": "alert_type",
              "type": "string",
              "value": "={{ $json.body.alert_type || 'external' }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7577bac4-76c9-4e40-b28a-68930bc8d0e5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        -208
      ],
      "parameters": {
        "color": 4,
        "width": 672,
        "height": 400,
        "content": "## Prerequisites\n- OpenAI API key (or compatible LLM)\n- Slack workspace with bot credentials\n- Gmail account with OAuth credentials\n- Google Sheets with IP analytics and governance tabs pre-created\n- IP knowledge base or registry API access\n## Use Cases\n- IP counsel automating conflict detection across trademark and patent registrations\n## Customisation\n- Extend severity routing to include additional tiers such as low-risk advisory notifications\n## Benefits\n- Dual-trigger ingestion eliminates IP monitoring blind spots between scheduled and real-time events"
      },
      "typeVersion": 1
    },
    {
      "id": "773b30a9-d309-4f1f-b400-4d7ba2493822",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -128
      ],
      "parameters": {
        "width": 480,
        "height": 304,
        "content": "## Setup Steps\n1. Import workflow; configure the External IP Alert Webhook and Schedule IP Monitoring trigger interval.\n2. Add AI model credentials to the IP Monitoring Agent\n3. Connect Slack credentials to the Share IP Conflicts and Notify Medium Conflicts nodes.\n4. Link Gmail credentials to the Email High Priority Conflicts and Send Compliance Report nodes.\n5. Link Google Sheets credentials; set sheet IDs for IP Analytics, Governance Decisions, and Compliance Report tabs.\n6. Configure the IP Knowledge Base tool with your IP registry or database source."
      },
      "typeVersion": 1
    },
    {
      "id": "eba9bd52-3f94-4ff8-8afb-d1b692663aa1",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        -208
      ],
      "parameters": {
        "width": 656,
        "height": 352,
        "content": "## How It Works\nThis workflow automates intellectual property (IP) monitoring, conflict detection, and governance reporting for IP counsel, legal operations teams, and compliance officers. It eliminates the manual effort of tracking IP lifecycle events, identifying conflicting registrations, and routing compliance actions across severity levels. IP alerts arrive via webhook and scheduled monitoring triggers. Both feeds are parsed and passed to the IP Monitoring Agent, backed by a monitoring model, shared memory, a Conflict Detection Agent (with knowledge base), an IP Lifecycle Tracking Agent, and an IP Tracking Sheet Tool. Structured outputs feed the IP Governance Agent, which coordinates a Governance Agent (with memory), a Licensing Compliance Agent, and a Documentation Generation Agent. Outputs are routed by severity: analytics data is formatted and exported to Google Sheets; conflicts are prepared, shared to Slack, and routed by severity level, critical conflicts trigger Gmail alerts while medium conflicts receive Slack notifications. Governance records, compliance reports, and governance decisions are stored and distributed in parallel."
      },
      "typeVersion": 1
    },
    {
      "id": "f6b2b60f-baed-466a-be96-0896a478dfd6",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2880,
        416
      ],
      "parameters": {
        "color": 7,
        "width": 1520,
        "height": 320,
        "content": "## Route by Severity & Conflict Notification\n**Why** \u2014 Rules-based severity routing sends critical conflicts to Gmail and medium conflicts to Slack, ensuring proportionate and timely response."
      },
      "typeVersion": 1
    },
    {
      "id": "a1c714f9-e7df-4074-8a79-7c4ac4a74787",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2880,
        48
      ],
      "parameters": {
        "color": 7,
        "width": 512,
        "height": 336,
        "content": "## Format Analytics & Export to Google Sheets\n**Why** \u2014 Standardises analytics output and logs to Sheets for stakeholder visibility and long-term IP portfolio reporting."
      },
      "typeVersion": 1
    },
    {
      "id": "58faa668-8452-4dc4-9a1c-d83ba64d6e32",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        320
      ],
      "parameters": {
        "color": 7,
        "width": 1696,
        "height": 1232,
        "content": "## IP Monitoring Agent & Specialist Sub-Agents\n**Why** \u2014 Coordinates Conflict Detection, Lifecycle Tracking, and IP Tracking Sheet tools using shared memory for consistent, context-aware IP surveillance."
      },
      "typeVersion": 1
    },
    {
      "id": "38b66c56-45b5-4288-bbf6-039bd62bc3b4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        368
      ],
      "parameters": {
        "color": 7,
        "width": 1024,
        "height": 704,
        "content": "## IP Governance Agent & Compliance Agents\n**Why** \u2014 Delegates licensing compliance checks and documentation generation in parallel, ensuring governance outputs are structured and audit-ready."
      },
      "typeVersion": 1
    },
    {
      "id": "b76f2fee-e7ef-423c-ab78-60380d9e6e53",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2912,
        768
      ],
      "parameters": {
        "color": 7,
        "width": 880,
        "height": 480,
        "content": "## Prepare Governance Record, Store Decisions & Send Compliance Report\n**Why** \u2014 Captures governance outcomes, stores decisions, and distributes compliance reports via Gmail to maintain a complete, audit-ready IP governance trail."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "2975aea3-ab2e-4f05-8037-6949dda648ff",
  "connections": {
    "IP Embeddings": {
      "ai_embedding": [
        [
          {
            "node": "IP Knowledge Base",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Governance Memory": {
      "ai_memory": [
        [
          {
            "node": "IP Governance Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "IP Knowledge Base": {
      "ai_tool": [
        [
          {
            "node": "IP Conflict Detection Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Monitoring Memory": {
      "ai_memory": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Route by Severity": {
      "main": [
        [
          {
            "node": "Prepare Conflict Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Conflict Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Conflict Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Webhook Data": {
      "main": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store IP Conflicts": {
      "main": [
        [
          {
            "node": "Alert Critical Conflicts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Documentation Model": {
      "ai_languageModel": [
        [
          {
            "node": "Documentation Generation Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "IP Governance Agent": {
      "main": [
        [
          {
            "node": "Route by Severity",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prepare Governance Record",
            "type": "main",
            "index": 0
          },
          {
            "node": "Format Analytics Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IP Monitoring Agent": {
      "main": [
        [
          {
            "node": "IP Governance Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Severity Level": {
      "main": [
        [
          {
            "node": "Email High Priority Conflicts",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Medium Conflicts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Analytics Data": {
      "main": [
        [
          {
            "node": "Export Analytics to Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Governance Agent Model": {
      "ai_languageModel": [
        [
          {
            "node": "IP Governance Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "IP Tracking Sheet Tool": {
      "ai_tool": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Monitoring Agent Model": {
      "ai_languageModel": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Schedule IP Monitoring": {
      "main": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Conflict Record": {
      "main": [
        [
          {
            "node": "Store IP Conflicts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Alert Critical Conflicts": {
      "main": [
        [
          {
            "node": "Check Severity Level",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Conflict Detection Model": {
      "ai_languageModel": [
        [
          {
            "node": "IP Conflict Detection Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Governance Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "IP Governance Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Lifecycle Tracking Model": {
      "ai_languageModel": [
        [
          {
            "node": "IP Lifecycle Tracking Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Monitoring Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "External IP Alert Webhook": {
      "main": [
        [
          {
            "node": "Parse Webhook Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Governance Record": {
      "main": [
        [
          {
            "node": "Store Governance Decisions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Licensing Compliance Agent": {
      "ai_tool": [
        [
          {
            "node": "IP Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Licensing Compliance Model": {
      "ai_languageModel": [
        [
          {
            "node": "Licensing Compliance Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Store Governance Decisions": {
      "main": [
        [
          {
            "node": "Send Compliance Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IP Conflict Detection Agent": {
      "ai_tool": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "IP Lifecycle Tracking Agent": {
      "ai_tool": [
        [
          {
            "node": "IP Monitoring Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Documentation Generation Agent": {
      "ai_tool": [
        [
          {
            "node": "IP Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automates intellectual property (IP) monitoring, conflict detection, and governance reporting for IP counsel, legal operations teams, and compliance officers. It eliminates the manual effort of tracking IP lifecycle events, identifying conflicting registrations,…

Source: https://n8n.io/workflows/14437/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow automates patient communication for medical clinics using the WhatsApp Business API. It supports appointment booking, rescheduling, service inquiries, follow-ups, and document submission

Google Sheets, Data Table, Data Table Tool +12
AI & RAG

WooriFisa 최종. Uses memoryMongoDbChat, agent, httpRequest, documentDefaultDataLoader. Scheduled trigger; 68 nodes.

Memory Mongo Db Chat, Agent, HTTP Request +14
AI & RAG

This workflow automates end-to-end e-commerce order processing from intake through fulfillment by orchestrating multiple AI-powered validation stages and external system integrations. Designed for e-c

HTTP Request, Agent, OpenAI Chat +10
AI & RAG

This workflow automates academic research processing by routing queries through specialized AI models while maintaining contextual memory. Designed for researchers, faculty, and graduate students, it

HTTP Request, Agent, OpenAI Chat +7
AI & RAG

Every day at 8 AM, the workflow automatically retrieves the latest F1 data—including driver standings, qualifying results, race schedules, and circuit information. All sources are merged into a unifie

HTTP Request, Agent, OpenAI Chat +9