AutomationFlowsSlack & Telegram › Stripe Invoice Paid: Update HubSpot & Slack Alert

Stripe Invoice Paid: Update HubSpot & Slack Alert

Original n8n title: On New Stripe Invoice Payment Update Hubspot and Notify the Team in Slack

On new Stripe Invoice Payment update Hubspot and notify the team in Slack. Uses stripeTrigger, hubspot, slack. Event-driven trigger; 8 nodes.

Event trigger★★★★☆ complexity8 nodesStripe TriggerHubSpotSlack
Slack & Telegram Trigger: Event Nodes: 8 Complexity: ★★★★☆ Added:

This workflow follows the HubSpot → Slack 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": 100,
  "name": "On new Stripe Invoice Payment update Hubspot and notify the team in Slack",
  "nodes": [
    {
      "name": "When Invoice Paid",
      "type": "n8n-nodes-base.stripeTrigger",
      "position": [
        400,
        460
      ],
      "parameters": {
        "events": [
          "invoice.payment_succeeded"
        ]
      },
      "credentials": {
        "stripeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Update Deal to Paid",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1240,
        500
      ],
      "parameters": {
        "dealId": "={{$json[\"id\"]}}",
        "operation": "update",
        "updateFields": {
          "customPropertiesUi": {
            "customPropertiesValues": [
              {
                "value": "Yes",
                "property": "paid"
              }
            ]
          }
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Find Deal based on PO Number",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        820,
        480
      ],
      "parameters": {
        "operation": "search",
        "filterGroupsUi": {
          "filterGroupsValues": [
            {
              "filtersUi": {
                "filterValues": [
                  {
                    "value": "={{$json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}",
                    "propertyName": "po_number"
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {}
      },
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "If no PO Number",
      "type": "n8n-nodes-base.if",
      "position": [
        600,
        460
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json[\"data\"][\"object\"][\"custom_fields\"]}}",
              "operation": "isEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "If no deal found for PO",
      "type": "n8n-nodes-base.if",
      "position": [
        1020,
        480
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json[\"id\"]}}",
              "operation": "isEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Send invoice paid message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1420,
        500
      ],
      "parameters": {
        "text": ":sparkles: An invoice has been paid :sparkles:",
        "channel": "team-accounts",
        "blocksUi": {
          "blocksValues": []
        },
        "attachments": [
          {
            "color": "#00FF04",
            "fields": {
              "item": [
                {
                  "short": true,
                  "title": "Amount",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"amount_paid\"]/100}}"
                },
                {
                  "short": true,
                  "title": "Currency",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"currency\"]}}"
                },
                {
                  "short": false,
                  "title": "Customer Name",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_name\"]}}"
                },
                {
                  "short": false,
                  "title": "Customer Email",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_email\"]}}"
                },
                {
                  "short": true,
                  "title": "PO Number",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}"
                },
                {
                  "short": true,
                  "title": "",
                  "value": "="
                }
              ]
            },
            "footer": "=*Transaction ID:* {{$node[\"When Invoice Paid\"].json[\"id\"]}}"
          }
        ],
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Send no PO Message",
      "type": "n8n-nodes-base.slack",
      "position": [
        800,
        240
      ],
      "parameters": {
        "text": ":x: Stripe Payment with no PO Number :x:",
        "channel": "team-accounts",
        "blocksUi": {
          "blocksValues": []
        },
        "attachments": [
          {
            "color": "#FF3C00",
            "fields": {
              "item": [
                {
                  "short": true,
                  "title": "Amount",
                  "value": "={{$json[\"data\"][\"object\"][\"amount_paid\"] / 100}}"
                },
                {
                  "short": true,
                  "title": "Currency",
                  "value": "={{$json[\"data\"][\"object\"][\"currency\"]}}"
                },
                {
                  "short": false,
                  "title": "Customer Name",
                  "value": "={{$json[\"data\"][\"object\"][\"customer_name\"]}}"
                },
                {
                  "short": false,
                  "title": "Customer Email",
                  "value": "={{$json[\"data\"][\"object\"][\"customer_email\"]}}"
                }
              ]
            },
            "footer": "=*Transaction ID:* {{$json[\"id\"]}}"
          }
        ],
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Send Deal not found message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1180,
        240
      ],
      "parameters": {
        "text": ":x: Unable to find Deal for the below payment :x:",
        "channel": "team-accounts",
        "blocksUi": {
          "blocksValues": []
        },
        "attachments": [
          {
            "color": "#FF3C00",
            "fields": {
              "item": [
                {
                  "short": true,
                  "title": "Amount",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"amount_paid\"]/100}}"
                },
                {
                  "short": true,
                  "title": "Currency",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"currency\"]}}"
                },
                {
                  "short": false,
                  "title": "Customer Name",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_name\"]}}"
                },
                {
                  "short": false,
                  "title": "Customer Email",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_email\"]}}"
                },
                {
                  "short": true,
                  "title": "PO Number",
                  "value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}"
                }
              ]
            },
            "footer": "=*Transaction ID:* {{$node[\"When Invoice Paid\"].json[\"id\"]}}"
          }
        ],
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {},
  "connections": {
    "If no PO Number": {
      "main": [
        [
          {
            "node": "Send no PO Message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Find Deal based on PO Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Invoice Paid": {
      "main": [
        [
          {
            "node": "If no PO Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Deal to Paid": {
      "main": [
        [
          {
            "node": "Send invoice paid message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If no deal found for PO": {
      "main": [
        [
          {
            "node": "Send Deal not found message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Deal to Paid",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Deal based on PO Number": {
      "main": [
        [
          {
            "node": "If no deal found for PO",
            "type": "main",
            "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

On new Stripe Invoice Payment update Hubspot and notify the team in Slack. Uses stripeTrigger, hubspot, slack. Event-driven trigger; 8 nodes.

Source: https://github.com/Zie619/n8n-workflows — 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

Triggers instantly when a new contact is created in HubSpot Checks the contact has a valid email, then enriches with Lusha A data quality check verifies Lusha returned meaningful data (phone, title, c

HubSpot Trigger, @Lusha Org/N8N Nodes Lusha, HubSpot +1
Slack & Telegram

Track all n8n workflow failures with automatic error capture, severity classification, duplicate detection, Slack alerting, performance metrics, and log retention.

Error Trigger, HTTP Request, Slack
Slack & Telegram

This workflow automatically detects at-risk customers by listening for inactivity signals from Mixpanel, scoring their churn risk, syncing everything to HubSpot, creating a prioritized ClickUp follow-

HubSpot, ClickUp, Slack +1
Slack & Telegram

Automates monitoring of error logs and notifies developers of critical errors. Sends Slack alerts for critical and non-critical errors, with auto-creation of Jira tickets for critical issues. Triggers

Ssh, Slack, Jira
Slack & Telegram

Stay ahead of payment disputes with this automated n8n workflow that integrates Stripe, Slack, and ClickUp. Perfect for finance teams, payment ops specialists, and SaaS businesses, this template fetch

HTTP Request, Slack, ClickUp