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 waits for an approver, who gets the approval link in Slack, a deal room channel is created for large opportunities, and its messages are logged back to the HubSpot deal as notes. One run history.
Mostly HubSpot to Slack
Direction
Within minutes of the change
Latency
New or updated deal
Common trigger
Build the flow, 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 deal with a discount over the limit waits for approval: a Neblex task goes to a named approver, and the link reaches them in Slack
  • A deal room channel is created for opportunities over a size, with the AE, SE, and manager invited and the deal summary posted
  • Messages in the deal room are logged to the HubSpot deal as notes by a scheduled flow, 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

Started by the polled deal trigger, the run waits on an approval task whose link is posted to the approver in Slack.

  1. Trigger: HubSpot New or updated deal, polled on the schedule you set, carrying dealId, amount, dealstage, hubspot_owner_id, and discount_percent.
  2. Gate: if discount_percent is at or below the threshold for the deal's tier, do nothing. Otherwise continue.
  3. Resolve approver: look up the deal owner's manager from a team map, and the manager's Slack user with Find user by email.
  4. Ask: a Wait for form step creates the approval task for the manager with the deal name, amount, list vs net, and discount, a due time, and an escalation flow. A Slack message to the manager carries a button that opens the task.
  5. On approve: set HubSpot deal properties discount_approved_by and discount_approved_at, post a confirmation in the channel, and let the deal proceed.
  6. On 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.dealIdstored message mappingIdempotency key. Stored so a repeated trigger 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.
task decision + deciderdeal.discount_approved_by, deal.discount_approved_atReturn path. The person who decided the task is written to the audit fields on the deal.
deal room messagesdeal note (engagement)Optional: teams that only want decisions logged, not chatter, turn this flow off 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 waits for an approver's decision in a Neblex task, with the link sent in Slack. (HubSpot to Slack)
  • Deal room. Opportunities over a size get a channel with the AE, SE, and manager, and the deal summary posted. (HubSpot to Slack)
  • Messages to notes. A scheduled flow reads new messages in each deal room and writes them to the deal as timestamped notes with the author. (Slack to HubSpot)

Governance and audit

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

  • Run history. Every alert, approval request, and decision is a run with the deal, the decider, and the fields written. A failed run can be replayed from the step that failed.
  • Approval steps. The discount gate is a Wait for form task. The run holds until a named approver acts or the task times out, and the decision and decider are recorded.
  • 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 an approval step that actually holds the flow, deal-room creation with the right people, write-back of Slack context to the CRM, and the same run history and governance as your other flows.

Does the approval really block the deal?

The run waits 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?

The task has a due time and a timeout. When it is overdue, the escalation flow runs, for example to notify a backup approver; on timeout the flow marks the discount rejected and creates a task for the owner.

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, found by email. 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 and archives the channel after a delay you set.

Connectors used

HubSpot

CRM & Sales

Operations
336
Operations with typed output
81.5%
Change triggers
46 (poll)
Signs in with
API token
Connector reference

Slack

Communication, Email & Calendar

Operations
317
Operations with typed output
100%
Change triggers
Poll or inbound webhook
Signs in with
API token
Connector reference
See it on your data

Bring one real integration

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