{
  "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"
        ]
      },
      "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"
      },
      "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": {}
      },
      "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": {}
      },
      "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": {}
      },
      "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": {}
      },
      "typeVersion": 1
    },
    {
      "id": "da594743-e8b8-5917-8929-441c209b1121",
      "name": "Publication · Overview and setup",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -800,
        0
      ],
      "parameters": {
        "content": "# On new Stripe Invoice Payment update Hubspot and notify the team in Slack\n\n## Purpose and structure\nThis folder contains the **On new Stripe Invoice Payment update Hubspot and notify the team in Slack** workflow. Its executable nodes use `hubspot`, `if`, `slack`, `stripeTrigger`. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.\n\n## Setup\nImport inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.\n\n## Entry points\nWhen Invoice Paid\n\n## Verification\nSanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.\n\n## Attribution\nhttps://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Slack/0008_Slack_Stripe_Create_Triggered.json\nMIT; preserve source notices.",
        "width": 700,
        "height": 800,
        "color": 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
          }
        ]
      ]
    }
  }
}
