AutomationFlowsSlack & Telegram › Send Customer Risk Signals From Bounce Watch to Slack

Send Customer Risk Signals From Bounce Watch to Slack

Send customer risk signals from Bounce Watch to Slack. Uses n8n-nodes-bouncewatch, slack. Scheduled trigger; 9 nodes.

Cron / scheduled trigger★★★★☆ complexity9 nodesN8N Nodes BouncewatchSlack
Slack & Telegram Trigger: Cron / scheduled Nodes: 9 Complexity: ★★★★☆ Added:

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
{
  "name": "Send customer risk signals from Bounce Watch to Slack",
  "nodes": [
    {
      "parameters": {
        "content": "## Send customer risk signals from Bounce Watch to Slack\n\nBounce Watch tells you what just happened at a company and when \u2014 funding, senior hires, new offices, customer wins and partnerships, each carrying its own date. What the API covers: bouncewatch.com/products/data-enrichment-api\n\nChurn is rarely a surprise to the customer. Layoffs, a founder leaving, a pivot \u2014 the account team usually finds out after the renewal conversation has already gone badly. This workflow puts those signals in front of them first.\n\n### How it works\n\nA daily schedule starts the run. A Settings node holds your customer domains as a list. The Bounce Watch node searches the risk category \u2014 shutdown, layoffs, a senior departure, a pivot \u2014 across the index, and a filter keeps only the companies on your list. What is left is posted to Slack, one message per customer, with each signal marked when it is a rumour rather than an announcement.\n\n### Setup\n\n1. Get an API key at bouncewatch.com/register/api. It is free, no card, and every new account starts with 2,500 credits. Paste it into the Bounce Watch credential.\n2. Put your customer domains into Customer list.\n3. Pick your Slack credential and choose the channel on the last node.\n\nSome risk signals are inference rather than announcement. They are labelled in the message, and they are not grounds for an account review on their own. An empty run means nothing matched the filters, not that those companies were quiet.\n\n### Customization tips\n\nFor a long customer list, watch the accounts instead and use the Bounce Watch trigger \u2014 a watchlist scales further than a filter. Narrow the search to specific signal keys if layoffs are the only thing you want to hear about.",
        "height": 1020,
        "width": 520
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -380,
        -120
      ],
      "id": "sticky-overview",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "## Your customers\n\nDomains live in one Settings node.\nPaste the list you already keep.",
        "height": 300,
        "width": 440,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        150,
        -170
      ],
      "id": "sticky-section-1",
      "name": "Section 1"
    },
    {
      "parameters": {
        "content": "## Risk signals\n\nShutdowns, layoffs, departures, pivots.\nOnly your customers get through.",
        "height": 300,
        "width": 440,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        630,
        -170
      ],
      "id": "sticky-section-2",
      "name": "Section 2"
    },
    {
      "parameters": {
        "content": "## Tell the account team\n\nOne message per customer.\nRumours are labelled as rumours.",
        "height": 300,
        "width": 200,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        1110,
        -170
      ],
      "id": "sticky-section-3",
      "name": "Section 3"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "days",
              "triggerAtHour": 8
            }
          ]
        }
      },
      "id": "bw0091-0000-4000-8000-000000000091",
      "name": "Every morning",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        220,
        0
      ]
    },
    {
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "as0092-0000-4000-8000-000000000092",
              "name": "customer_domains",
              "type": "array",
              "value": "={{ [\"customer-one.com\", \"customer-two.com\", \"customer-three.com\"] }}"
            },
            {
              "id": "as0093-0000-4000-8000-000000000093",
              "name": "lookback_days",
              "type": "number",
              "value": "={{ 7 }}"
            }
          ]
        }
      },
      "id": "bw0094-0000-4000-8000-000000000094",
      "name": "Customer list",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        460,
        0
      ],
      "notes": "Replace these with your own customer domains."
    },
    {
      "parameters": {
        "resource": "signal",
        "operation": "search",
        "splitSignals": true,
        "filters": {
          "categories": "risk",
          "days": "={{ $json.lookback_days }}",
          "limit": 100,
          "sort": "most_recent"
        }
      },
      "id": "bw0095-0000-4000-8000-000000000095",
      "name": "Risk signals across the index",
      "type": "n8n-nodes-bouncewatch.bounceWatch",
      "typeVersion": 1,
      "position": [
        700,
        0
      ],
      "credentials": {
        "bounceWatchApi": {
          "name": "<your credential>"
        }
      },
      "notes": "Shutdowns, layoffs, senior departures and pivots."
    },
    {
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "as0096-0000-4000-8000-000000000096",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $('Customer list').first().json.customer_domains.includes($json.company.domain) }}",
              "rightValue": ""
            }
          ]
        }
      },
      "id": "bw0097-0000-4000-8000-000000000097",
      "name": "Only your customers",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.2,
      "position": [
        940,
        0
      ],
      "notes": "For a long customer list, watch the accounts instead \u2014 a watchlist scales further than a filter."
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "",
          "mode": "name",
          "cachedResultName": ""
        },
        "text": "=\u26a0\ufe0f *{{ $json.company.name }}*\n{{ $json.signals.map(s => \"\u2022 \" + s.label + \" \u2014 \" + s.date + (s.date_is_measurement ? \" (date recorded)\" : \"\") + (s.unconfirmed ? \" \u2014 rumour, not an announcement\" : \"\") + (s.summary ? \"\\n  \" + s.summary : \"\")).join(\"\\n\") }}\n{{ $json.company.profile_url }}",
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "id": "bw0098-0000-4000-8000-000000000098",
      "name": "Alert the account team",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        1180,
        0
      ],
      "notes": "Pick your channel here."
    }
  ],
  "connections": {
    "Every morning": {
      "main": [
        [
          {
            "node": "Customer list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Customer list": {
      "main": [
        [
          {
            "node": "Risk signals across the index",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Risk signals across the index": {
      "main": [
        [
          {
            "node": "Only your customers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Only your customers": {
      "main": [
        [
          {
            "node": "Alert the account team",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  }
}

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

Send customer risk signals from Bounce Watch to Slack. Uses n8n-nodes-bouncewatch, slack. Scheduled trigger; 9 nodes.

Source: https://github.com/bouncewatch/n8n-nodes-bouncewatch/blob/main/templates/send-customer-risk-signals-from-bounce-watch-to-slack.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

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

Slack & Telegram

Send a weekly Bounce Watch watchlist report to Slack. Uses n8n-nodes-bouncewatch, slack. Scheduled trigger; 7 nodes.

N8N Nodes Bouncewatch, Slack
Slack & Telegram

This workflow fully automates your team's daily standup process using Slack for communication, Notion for structured data storage, and Redis for real-time session management.

Notion, Slack, Redis
Slack & Telegram

debug. Uses httpRequest, slack, redis, mailgun. Scheduled trigger; 60 nodes.

HTTP Request, Slack, Redis +2
Slack & Telegram

Seller Follow-Up Engine (Enhanced). Uses httpRequest, slack. Scheduled trigger; 44 nodes.

HTTP Request, Slack
Slack & Telegram

This workflow is an automated employee time tracking and reporting system that monitors weekly work hours via TMetric, then delivers personalized summaries directly to each team member on Slack. It co

HTTP Request, Item Lists, Data Table +1