Skip to content

How do I send Slack notifications from HubSpot workflows?

7 specsNeeds Professional or higher (per-hub plans: Sales Hub)1 needs Data Hub Professional on per-hub plans

Short answer

Connect the Slack integration, then add the Send Slack notification action to a workflow and pick a channel from the dropdown.

That channel is fixed at build time: there is no token that routes a record to its own channel. For per-region or per-team routing, build one branch per channel. Twenty minutes for the first alert. The trap is the owner token, which renders a numeric ID instead of a name.

Read the whole answerShow less

What a spec looks like

Free Slack alert: deal marked Closed Won (revenue milestone notification) Deal4 steps Read it in full
The nine sections, and the files

Every spec follows the same nine sections, so a team reads one and knows how to read all of them.

  • Outcome, when to use it and when not to
  • Prerequisites: properties, lists, tiers, with the JSON to create them
  • Enrollment and re-enrollment, then every step with its parameters
  • Known pitfalls, a test plan, variants, and the YAML build spec

PDF, Markdown, properties JSON, workflow JSON, custom code where used. Test plan and known pitfalls in every spec.

Each spec states its minimum tier. The 12 free ones open in full, the others show their public preview.

The 7 specs, in build order

The single-record alert

One record crosses a line, one message lands in the channel, with a guard property so it fires once.

What each spec doesHide

Routing the alert to a human

Branch on whether the record has an owner, notify that owner directly, and catch the unassigned case.

What each spec doesHide

Alerts that need a comparison first

A snapshot property and a calculated percentage, so the alert only fires on a swing that matters.

What each spec doesHide

One message instead of fifty

A scheduled coded action that queries the week, sums it and posts a single digest to the channel.

What each spec doesHide

The 3 things that break this, and how the specs stop them

One channel, chosen by hand, forever

The Send Slack notification action takes a channel from a dropdown at build time.

There is no property token for a channel, so a deal cannot post to its own region channel. The documented workaround is one If/then branch per channel, each holding its own copy of the action, which is fine for three channels and unmanageable for thirty. Past that, a coded action posting to an Incoming Webhook URL is the only real route, and it needs Data Hub Professional.

How the specs stop itShow less

The owner shows up as a number

The owner token renders the raw internal owner ID in a Slack message, so the alert reads as a meaningless number next to the deal name.

Add the owner through the Properties to include with message picker instead of an inline token, then send one test notification to a real channel and look at it before go-live. Long merge values also break the message formatting.

How the specs stop itShow less

The connection belongs to one admin

The Slack integration is authorized by a person.

If that person leaves or loses Slack access, the action starts failing with no visible error until someone opens the workflow History tab. Private channels are invisible in the dropdown until the HubSpot app is added to the channel, and a bulk property edit fires the trigger per record, which dumps a burst of messages into the channel.

How the specs stop itShow less

What this bundle builds

Seven specs for the question every sales team asks in week one: can we get a ping in Slack when something good happens. The answer is yes, and the shape of it is simpler than people expect. Connect the integration, add the action, pick the channel, write the message. Twenty minutes.

What takes longer is making the alerts worth reading. So this collection covers the four alerts that survive contact with a real channel. The closed won ping, which is the one everybody builds first. The high-value deal created ping, so a big opportunity is visible from day one rather than at forecast review. The hot lead alert that goes to the owner directly and falls back to the team channel when nobody owns the record yet. And the amount-swing alert, which needs a snapshot property before it can tell a 5 percent tweak from a 40 percent discount.

Then the weekly digest, for teams who decided real-time pings had become wallpaper. That one needs code and Data Hub. Everything else runs on Professional.

Read the restShow less
How the pieces fit together

Build the closed won alert first, on a test deal, and look at the message in the channel before anything else. That one send tells you whether the owner token resolves to a name or to a number, which is the fix that applies to every other spec here.

Add the creation-time and lifecycle alerts next. They share the same guard-property habit: a checkbox set after the send, checked before it, so a record crossing the same line twice does not fire twice.

The routing specs come third because they need an owner to exist. Run them after your assignment workflow, or the branch falls to the unassigned path every time.

Leave the amount-swing alert until the snapshot property is initialized on existing deals, since the first comparison against a blank baseline is meaningless. The digest goes last, once you know which alerts people actually read.

What you get
  • 7 specs, each with outcome, prerequisites, enrollment, steps, known pitfalls, a test plan and variants
  • Each spec ships as PDF and Markdown
  • Properties JSON, 6 properties, 3 on deals and 3 on contacts, mostly the guard flags and the amount snapshot
  • Workflow JSON for all 7, in Automation API format, switched off on import
  • One custom coded action, the weekly digest, with its Slack webhook handled as a workflow secret
  • A test plan per spec, including the live channel check on the owner name
  • Install in one click for Full and Agency buyers
Who it is for, and who should skip it

Good fit for a sales or revenue operations owner setting up a new portal, and for anyone whose Slack channel is currently fed by someone copying deal names by hand. Six of the seven build on Professional with no code, and the first one is live inside half an hour.

Skip it if your team does not use Slack. The internal email notification action does the same job and every spec names the swap in its variants, but you are buying Slack-specific wording you will not use. Skip it too if what you need is a message that picks its own channel per record. That is not what the native action does, and the specs for the workaround are not written yet.

Questions admins ask

Can HubSpot send a Slack message to a different channel per deal or per record?

Not natively. The channel is picked in the action configuration and stays fixed. Branch on the property that decides the routing, region, product line, team, and put a separate Slack action with its own channel inside each branch. Two specs on dynamic channel selection and on notifying a shared inbox are on the list to write and are not part of these seven.

Why does my Slack message show a number instead of the rep name?

The owner property holds an internal ID and the inline token renders it as-is in some message contexts. Use the Properties to include with message option on the action so HubSpot resolves the owner to a display name. Test it once on a real record. Four of the seven specs carry this as a named pitfall because it is the first thing people hit.

Can I get one Slack message summarizing the week instead of one per deal?

Yes, but not with native actions alone. A standard workflow acts per record, so ten wins produce ten messages. The weekly digest spec uses a scheduled workflow with a coded action that queries the deals search endpoint for the last 7 days, sums the amounts and posts one formatted message. It needs Data Hub Professional. The no-code alternative is a dashboard report on a recurring email schedule, delivered as email rather than Slack.

Can I notify a shared inbox or a distribution list?

Internal email notifications only reach HubSpot users. An external alias does not receive them unless that alias is itself set up as a user. The practical route is Slack, or an email address the channel itself exposes for inbound mail. When the record has no owner at all, branch to the team channel and add the record to a manual routing list rather than sending to nobody.

Does the Slack action work on Starter?

No. Starter portals run simple workflows, which support neither the Slack action nor branching, so five of these seven specs cannot be built there. Confirm the tier before promising a build. The digest spec goes further and needs Data Hub Professional for both the coded action and the weekly schedule trigger.

Read 12 complete specs before you pay.

One per category, same format as the paid ones. Email only, no card.

We email the link, then a short note when specs change. Nothing else.

149 EUR199

Full library, 565 specs
Get the full library