{
  "name": "Monitor Zendesk churn risk signals, log in Sheets, and alert team in Slack",
  "nodes": [
    {
      "id": "85c1fc94-a3ce-472c-9f08-56f7272d4f66",
      "name": "Log Churn Risk to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        672,
        1040
      ]
    },
    {
      "id": "2913f3a0-f1ba-470c-89fb-0e8109732d36",
      "name": "Send Slack Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        672,
        1248
      ]
    },
    {
      "id": "3690cb18-cfca-49ad-8583-1a35442ed74d",
      "name": "Fetch Zendesk Tickets",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        -112,
        1152
      ]
    },
    {
      "id": "3f4c0ada-de8a-4c76-970d-9d6ec950f71f",
      "name": "Format Ticket Data",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        1152
      ]
    },
    {
      "id": "2d7eb3f7-d214-4e7b-b316-8f831e08583a",
      "name": "StickyNote3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        752
      ],
      "parameters": {
        "width": 267,
        "height": 364,
        "content": "## 📥 Ticket Retrieval\n\nFetches all tickets from your Zendesk instance.\n\n**🔧 Customization Options:**\n- Add filters for specific ticket types\n- Limit to recent tickets (last 24h)\n- Filter by organizati"
      }
    },
    {
      "id": "a0d7fdf9-8067-4a7a-ac49-a7fa3509c3ab",
      "name": "StickyNote4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        1296
      ],
      "parameters": {
        "width": 263,
        "height": 328,
        "content": "## 🔧 Data Processing\n\nTransforms raw Zendesk data into clean, structured format.\n\n**✨ Enhancements added:**\n- Ticket age calculation\n- Priority level mapping\n- Urgency flags\n- Channel categorization\n-"
      }
    },
    {
      "id": "eec3e927-9e60-4bf8-9b6c-d3f9115e1e91",
      "name": "StickyNote5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        752
      ],
      "parameters": {
        "width": 290,
        "height": 388,
        "content": "## ⚖️ Churn Risk Filter\n\nIdentifies tickets with negative satisfaction scores.\n\n**🎯 Current Logic:**\n- satisfaction_score = \"bad\"\n\n**🔄 Extend to include:**\n- Multiple bad ratings from same customer\n- "
      }
    },
    {
      "id": "b75fafe4-88de-4683-9524-a14ea0c0edf2",
      "name": "StickyNote6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        624
      ],
      "parameters": {
        "width": 267,
        "height": 408,
        "content": "## 📋 Tracking & Analytics\n\nLogs all churn risk incidents to Google Sheets for analysis.\n\n**📊 Captured Data:**\n- Ticket details\n- Satisfaction scores\n- Timestamp\n- Customer info\n\n**💡 Use for:**\n- Month"
      }
    },
    {
      "id": "f910ff82-e32a-421a-b10f-9aafd2e51a92",
      "name": "StickyNote7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        1408
      ],
      "parameters": {
        "width": 298,
        "height": 409,
        "content": "## 🚨 Instant Team Alerts\n\nSends formatted Slack message to your CS team channel.\n\n**📢 Message includes:**\n- Ticket ID & direct link\n- Customer satisfaction rating\n- Subject & description\n- Clear actio"
      }
    },
    {
      "id": "5a2dbeb2-b3ce-429f-8291-d4070e26165f",
      "name": "Check Negative Feedback",
      "type": "n8n-nodes-base.if",
      "position": [
        336,
        1152
      ]
    },
    {
      "id": "ceb7a743-8028-47b1-af90-95eceab7eded",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -352,
        1152
      ]
    },
    {
      "id": "e33a6d2e-cb33-4b52-a9a7-b3ee885387eb",
      "name": "StickyNote",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        1296
      ],
      "parameters": {
        "width": 263,
        "height": 312,
        "content": "## 🔧 Automated Schedule Trigger\n\nDaily Execution: Runs every day at 8:00 PM\n⚙️ Configuration:\n\nTrigger Rule: 0 20 * * * (Cron expression) \n\nTimezone: Set to your local timezone \n\nMode: Every Day"
      }
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Fetch Zendesk Tickets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Ticket Data": {
      "main": [
        [
          {
            "node": "Check Negative Feedback",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Zendesk Tickets": {
      "main": [
        [
          {
            "node": "Format Ticket Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Negative Feedback": {
      "main": [
        [
          {
            "node": "Log Churn Risk to Sheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Slack Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}