{
  "nodes": [
    {
      "id": "764c42ae-3761-4375-9de4-69ecdaf82b10",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        520
      ],
      "parameters": {
        "width": 377.1993316649719,
        "height": 590.2004455566864,
        "content": "## 👋 How to use this template\nThis template shows how you can take any event from any service, transform its data and send an alert to your desired app. Here's how to use it:\n\n1. Double click the `Slack` node and connect to your Slack account by creating a Credential.\n2. Change the channel name in the `Slack` node to a channel or user you have in Slack.\n2. Click the `Execute Workflow` button, then double click the nodes to see their input and output data\n\n### To customize this template to you needs:\n1. Enable or swap the `Linear trigger` with any service that fits your use case.\n2. Change the data transformation to fit your needs\n3. Adjust the Slack node or swap it with any node that fits your use case\n4. Disable or remove the `When clicking \"Execute Workflow\"` and `Code` node\n"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "b35b39f5-2937-437e-b4bb-bfd4fc06b2e2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        423.0997586567955,
        520
      ],
      "parameters": {
        "width": 398.2006312053042,
        "height": 600.6569416091058,
        "content": "### 1. Trigger step listens for new events\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nWe added a `Linear trigger` that starts the workflow every time we have an `Issue` event int the `Product & Design` team. \n\n**You can replace this node with any trigger you wish, like [Jira]({{ $env.WEBHOOK_URL }} [Clickup]({{ $env.WEBHOOK_URL }} [HubSpot]({{ $env.WEBHOOK_URL }} [Google Sheets]({{ $env.WEBHOOK_URL }} etc.**"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "466097b6-a830-43fb-9776-d3c7f676fc9a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1400,
        620
      ],
      "parameters": {
        "width": 317.52886836027733,
        "height": 408.7361996915138,
        "content": "### 3. Notify the right channel\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nLast but not least we're sending a message to the `#important-bugs` channel in Slack.\n\n**You can replace this node with any service like [Teams]({{ $env.WEBHOOK_URL }} [Telegram]({{ $env.WEBHOOK_URL }} [Email]({{ $env.WEBHOOK_URL }} etc.**"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "99b3eadc-f3ff-4f73-91c2-909ab17ea8ff",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        620
      ],
      "parameters": {
        "width": 462,
        "height": 407,
        "content": "### 2. Filter and transform your data\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nWe only want to notify the team, if the event is fired on creating an urgent bug.\n\nTo edit the nodes, simply drag and drop input data into the fields or change the values directly. **Besides filters, n8n does have other powerful transformation nodes like [Set]({{ $env.WEBHOOK_URL }} [ItemList]({{ $env.WEBHOOK_URL }} [Code]({{ $env.WEBHOOK_URL }} and many more.**"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "90e3e605-f497-4aaa-b0be-cb064e9b9ac9",
      "name": "Linear Trigger",
      "type": "n8n-nodes-base.linearTrigger",
      "disabled": true,
      "position": [
        500,
        600
      ],
      "webhookId": "b705f01f-3262-46d4-90f2-fc9f962e6766",
      "parameters": {
        "teamId": "583b87b7-a8f8-436b-872c-61373503d61d",
        "resources": [
          "issue"
        ]
      },
      "typeVersion": 1,
      "notes": "This linearTrigger node performs automated tasks as part of the workflow."
    },
    {
      "id": "f956bf3b-b119-4006-b964-6fdb089ff877",
      "name": "When clicking \"Execute Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "notes": "For testing the workflow",
      "position": [
        500,
        800
      ],
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "2b347886-f7a8-44eb-b26a-57c436eda594",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "notes": "Mock Data",
      "position": [
        680,
        800
      ],
      "parameters": {
        "jsCode": "return [\n  {\n    \"action\": \"create\",\n    \"createdAt\": \"2023-06-27T13:15:14.118Z\",\n    \"data\": {\n      \"id\": \"204224f8-3084-49b0-981f-3ad7f9060316\",\n      \"createdAt\": \"2023-06-27T13:15:14.118Z\",\n      \"updatedAt\": \"2023-06-27T13:15:14.118Z\",\n      \"number\": 647,\n      \"title\": \"Test event\",\n      \"priority\": 3,\n      \"boardOrder\": 0,\n      \"sortOrder\": -48454,\n      \"teamId\": \"583b87b7-a8f8-436b-872c-61373503d61d\",\n      \"previousIdentifiers\": [],\n      \"creatorId\": \"49ae7598-ae5d-42e6-8a03-9f6038a0d37a\",\n      \"stateId\": \"49c4401a-3d9e-40f6-a904-2a5eb95e0237\",\n      \"priorityLabel\": \"No priority\",\n      \"subscriberIds\": [\n        \"49ae7598-ae5d-42e6-8a03-9f6038a0d37a\"\n      ],\n      \"labelIds\": [\n        \"23381844-cdf1-4547-8d42-3b369af5b4ef\"\n      ],\n      \"state\": {\n        \"id\": \"49c4401a-3d9e-40f6-a904-2a5eb95e0237\",\n        \"color\": \"#bec2c8\",\n        \"name\": \"Backlog\",\n        \"type\": \"backlog\"\n      },\n      \"team\": {\n        \"id\": \"583b87b7-a8f8-436b-872c-61373503d61d\",\n        \"key\": \"PD\",\n        \"name\": \"Product & Design\"\n      },\n      \"labels\": [\n        {\n          \"id\": \"23381844-cdf1-4547-8d42-3b369af5b4ef\",\n          \"color\": \"#4CB782\",\n          \"name\": \"bug\"\n        }\n      ]\n    },\n    \"url\": \"{{ $env.WEBHOOK_URL }}\",\n    \"type\": \"Issue\",\n    \"organizationId\": \"1c35bbc6-9cd4-427e-8bc5-e5d370a9869f\",\n    \"webhookTimestamp\": 1687871714230\n  }\n]"
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "750acf22-5fc7-40b6-8989-aa8ba1cb207b",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "notes": "Keep urgent bugs only",
      "position": [
        960,
        700
      ],
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.data.priority }}",
              "value2": 3,
              "operation": "largerEqual"
            }
          ],
          "string": [
            {
              "value1": "={{ $json.data.labels[0].name }}",
              "value2": "bug"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "8ce7bb41-30f6-4d28-a5c7-ae5cb856ecc2",
      "name": "Set",
      "type": "n8n-nodes-base.set",
      "notes": "Transform title",
      "position": [
        1180,
        700
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "title",
              "value": "={{ $json.data.title.toTitleCase() }}"
            },
            {
              "name": "url",
              "value": "={{ $json.url }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "b9c6f60a-5b69-4bf5-9514-9c9dc9813595",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1500,
        700
      ],
      "parameters": {
        "text": "=<!channel> New urgent bug *<{{ $json.url }}|{{ $json.title }}>*",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#important bugs"
        },
        "otherOptions": {}
      },
      "typeVersion": 2,
      "notes": "This slack node performs automated tasks as part of the workflow."
    },
    {
      "id": "error-dc120aca",
      "name": "Error Handler",
      "type": "n8n-nodes-base.stopAndError",
      "typeVersion": 1,
      "position": [
        1000,
        400
      ],
      "parameters": {
        "message": "Workflow execution error",
        "options": {}
      }
    }
  ],
  "connections": {
    "b9c6f60a-5b69-4bf5-9514-9c9dc9813595": {
      "main": [
        [
          {
            "node": "error-handler-b9c6f60a-5b69-4bf5-9514-9c9dc9813595-b6337b0c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "name": "Stickynote Workflow",
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": null,
    "timezone": "UTC",
    "executionTimeout": 3600,
    "maxExecutions": 1000,
    "retryOnFail": true,
    "retryCount": 3,
    "retryDelay": 1000
  },
  "description": "Automated workflow: Stickynote Workflow. This workflow integrates 8 different services: filter, stickyNote, code, linearTrigger, set. It contains 11 nodes and follows best practices for error handling and security.",
  "meta": {
    "versionId": "1.0.0",
    "createdAt": "2025-09-29T07:07:42.362086",
    "updatedAt": "2025-09-29T07:07:42.362103",
    "owner": "n8n-user",
    "license": "MIT",
    "category": "automation",
    "status": "active",
    "priority": "high",
    "environment": "production"
  },
  "tags": [
    "automation",
    "n8n",
    "production-ready",
    "excellent",
    "optimized"
  ],
  "notes": "Excellent quality workflow: Stickynote Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."
}