# HubSpot to Slack Alerts

> Automatically notify your sales team in Slack when a high-value deal is created in HubSpot.

**Starting point · about 10 minutes · 3 steps**

Post a Slack message when a deal worth over $5,000 is created in HubSpot, and stay quiet about the rest.

This is the simplest recipe here: one trigger, one decision, one action. Everything that follows builds on this shape.

HubSpot trigger → [Conditions](/build/action-steps/conditions) → Slack

## What you will use

- A **Conditions** step, to route on the deal's value.

## Prerequisites

- A connected **HubSpot** account.
- A connected **Slack** account.

---

## Building the Workflow

### 1. The Trigger: HubSpot (New Deal)
Open **Apps** in the dock at the bottom, search for **HubSpot**, and add its trigger. In the App drawer, select the **New Deal** event. The workflow then wakes up the second a deal is created in your CRM.

### 2. The Logic: Condition Step

You only want to alert the team when a deal is worth more than $5,000, so the channel does not fill with noise.
Drag a **Conditions** step onto the canvas and connect it to your trigger.

- **Condition A:** `{{ 1.amount }}` is `Greater Than` `5000`.

**Insert variables from the Workflow data panel rather than typing them.** The panel shows the exact output fields from prior steps (e.g. `{{ 1.amount }}`).

> If your trigger step is numbered differently on the canvas (e.g. `2`), use
> your actual step number instead of `1`.

### 3. The Action: Slack (Send Message)

Open **Apps** in the dock, search for **Slack**, and pick **Send Message**. In the step's Account field, choose your connected Slack account, then select the `#sales-alerts` channel. Back in the Conditions step, set **Then go to** on your amount condition to point at the Slack step.

Deals under $5,000 match nothing, so they take the **ELSE** route. Leave it empty to end the run there.

In the message field, use dynamic variable references and in-field [Data Transformation](/build/core-concepts/data-transformation) to format values cleanly:

```markdown
🚨 _New High-Value Deal Created!_
• _Deal:_ {{ 1.dealname }}
• _Amount:_ {{ 1.amount | format_currency:"$" }}
• _Owner:_ {{ 1.deal_owner | default:"Unassigned" }}
• _HubSpot Link:_ {{ 1.portal_url }}
```

> **Want to build this instantly?** Open the **Workflow Assistant** in your Glow
> workspace and enter: *"When a new deal is created in HubSpot, check if the
> amount is over $5,000. If true, format the currency and send an alert to the
> #sales-alerts Slack channel."*

## Test and go live

### Prove both routes

Create one test deal worth `6000` and one worth `4000`. Run each through the trigger. The first should take the named Conditions route and reach Slack; the second should take **ELSE** and finish without a message.

### Check the destination

Open `#sales-alerts` and confirm the deal name, formatted amount, owner fallback and link all match the HubSpot record. If a value is blank, reopen the trigger's stored output and insert that field from the Workflow data panel instead of guessing its path.

### Set the workflow Live

Switch the workflow from **Draft** to **Live**. Create one final controlled deal above the threshold, then confirm both the successful run in Glow and exactly one new Slack message.

---

## What's Next?

👉 **[Continue to GitHub & Jira Sync →](/getting-started/cookbook/github-jira-sync)**

Go deeper on the concepts this recipe uses:

- **[Conditions (If/Else)](/build/action-steps/conditions)** - Learn how to build complex branching logic.
- **[Data Transformation](/build/core-concepts/data-transformation)** - Format currencies, numbers, and dates directly in tokens.
- **[Workflow Data & Mapping](/build/core-concepts/workflow-data)** - Understand how data from the trigger becomes available in downstream steps.
