Integration

Connect HubSpot to Slack

Put deal activity where the team will actually see it, and put a control where it matters. Deal stage changes and new high-value deals alert the right channel, a discount over a threshold pauses the deal for an approver's yes or no in Slack, a deal room channel is created for large opportunities, and a reply in that channel is logged back to the HubSpot deal as a note. One run log.

Mostly HubSpot to Slack
Direction
prompt on event
Latency
Deal stage change, deal property change
Common trigger
Template, then set channels and thresholds
Setup

Why teams connect HubSpot and Slack

Deals live in HubSpot. The team talks in Slack. Without a link, reps post "just closed a big one" by hand, managers find out about a deep discount after it is quoted, and the useful context that gets shared in Slack never makes it back to the CRM.

  • Deal stage changes and new deals over a value threshold post to the pod's channel with amount, stage, owner, and a link, no manual sharing
  • A quote or deal with a discount over the limit pauses and asks a named approver in Slack to approve or reject before it moves on
  • A deal room channel is created for opportunities over a size, with the AE, SE, and manager added and the deal summary pinned
  • A reply in the deal room is written back to the HubSpot deal as a note, so the CRM keeps the context

Worked example

The approval flow most teams turn on first.

A deal discounted past the limit waits for a yes or no in Slack

Triggered on the HubSpot property change, the run pauses until the Slack action.

  1. 1Trigger: HubSpot deal property discount_percent changed, carrying dealId, amount, dealstage, hubspot_owner_id, and the associated company.
  2. 2Gate: if discount_percent is at or below the threshold for the deal's tier, do nothing. Otherwise continue.
  3. 3Resolve approver: look up the deal owner's manager from a team map, and the manager's Slack user ID by email.
  4. 4Ask: Slack Send message to the manager (or a #deal-approvals channel) with the deal name, amount, list vs net, discount, and Approve / Reject buttons. The run pauses here.
  5. 5On approve: set HubSpot deal property discount_approved_by and discount_approved_at, post a confirmation in the channel, and let the deal proceed.
  6. 6On reject or timeout: set discount_status to "Rejected", create a task for the owner to revise, and post the reason back to the deal as a note.

Field mapping

The starting map for the HubSpot deal alert and the approval write-back.

HubSpotSlackNotes
deal.dealIdmessage metadata / stored mappingIdempotency key. Stored so a re-fired property change updates the existing message instead of posting a second.
deal.dealname + company.namemessage headerCompany name prefixed for scanability in a busy channel.
deal.amountmessage field (formatted)Currency gotcha: HubSpot stores amount as a number in the deal currency. Format with deal.deal_currency_code, do not assume USD.
deal.dealstagemessage fieldMap the internal stage ID to the human label through the pipeline definition, not the raw ID.
deal.hubspot_owner_idSlack mentionIdentity: owner ID to HubSpot user email to Slack user ID. An unmapped owner posts without a mention.
deal.discount_percentapproval message fieldDrives the gate. Threshold comes from a per-tier table keyed on deal.tier.
Slack approve action + actordeal.discount_approved_by, deal.discount_approved_atReturn path. The approving Slack user resolves to a HubSpot owner for the audit field.
Slack reply text (deal room)deal note (engagement)Override: teams that only want decisions logged, not chatter, disable this and keep just the approval write-back.

What syncs, each direction

  • Deal alerts. Stage changes and new deals over a threshold post to the pod channel with amount, stage, owner, and a link. (HubSpot to Slack)
  • Discount approval. A discount past the limit pauses the deal for an approver's decision in Slack. (HubSpot to Slack)
  • Deal room. Opportunities over a size get a channel with the AE, SE, and manager, and the deal summary pinned. (HubSpot to Slack)
  • Reply to note. A message in the deal room is written back to the deal as a timestamped note with the author. (Slack to HubSpot)

Governance and audit

The same controls apply to this sync as to every other Neblex workload.

  • Ordered run log. Every alert, approval request, and decision is an event log entry with the deal, the actor, and the fields written. Replay without re-posting to Slack.
  • Approval steps. The discount gate is a first-class pause. The run holds until a named approver acts or it times out, and the decision and actor are recorded on the deal.
  • Scoped access. HubSpot uses a private app scoped to deals, companies, owners, and engagements. Slack uses a bot token with chat, channels, and users scopes.
  • Environments. Build against a HubSpot test account and a Slack test workspace, then promote the same flow to production.

Frequently asked questions

How is this different from HubSpot's native Slack integration?

HubSpot's built-in Slack app handles notifications and simple channel posts well, and it is a fine starting point. Neblex adds the approval step that actually pauses the deal, the deal-room creation with the right people, write-back of Slack context to the CRM, and the same run log and governance as your other flows.

Does the approval really block the deal?

The run pauses at the approval step. Whether that blocks the quote from being sent depends on how you wire the downstream step. Most teams gate the "send quote" or "move to contract" action on the approval.

What if the approver never responds?

You set a timeout. On timeout the flow marks the discount rejected and creates a task, or escalates to the next approver, whichever you configure.

Will it spam a channel with every tiny deal?

No. Alerts are gated on a value threshold and the stages you pick, so a channel only sees the deals that matter to it.

How does it match a HubSpot owner to a Slack user?

Owner ID to the owner's HubSpot email to the Slack user ID. An owner with mismatched emails gets a row in an override map, and until then the post just omits the mention.

Can it archive the deal room when the deal closes?

Yes. On closed-won or closed-lost it posts a summary, pins nothing further, and archives the channel after a delay you set.

Connectors on this page

HubSpot

CRM

Operations
336
Typed outputs
81.5%
Change triggers
48 (poll)
Authentication
Bearer

Slack

Applications

Operations
317
Typed outputs
100%
Change triggers
Poll or inbound webhook
Authentication
Bearer
See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.