Integration

Connect Salesforce to Slack

Bring Salesforce into the channel where the team already works: deal and pipeline alerts with the record context attached, and approval steps that pause a workflow for a named person and write the decision, and who made it, back to Salesforce. Every notification and approval is in the run log.

Salesforce to Slack, decisions back
Direction
prompt
Latency
Opportunity or quote changed
Common trigger
Template, then pick channels and approvers
Setup

Why teams connect Salesforce and Slack

Reps and managers live in Slack. The deal data lives in Salesforce. The usual result is a bot that posts every field change as noise, or an approval that happens over DM with no record. Neither scales, and neither is auditable.

  • Alerts are selective and contextual: a closed-won post carries the amount, product, and a link, and threads the onboarding checklist underneath
  • Approvals pause the workflow: a discount over a threshold waits for the deal desk, and the run does not continue until someone acts
  • The decision, the approver's Slack user, and the timestamp are written back to Salesforce and recorded in the run log, so an approval is provable later
  • A timeout escalates: no response in the window re-posts to a channel and re-assigns, rather than the deal silently stalling

Worked example

The approval flow most revenue teams turn on first.

A quote over 20 percent discount waits for the deal desk before it is sent

Triggered when a Salesforce quote reaches pending approval, with a timeout escalation.

  1. 1Trigger: Salesforce New or updated record on Quote where Status = In Review and Discount__c > 0.20.
  2. 2Resolve approver: a data table maps the owning rep's region to a deal desk lead's email. Slack Get user by that email returns the Slack user ID.
  3. 3Request approval: Slack posts a Block Kit message to that user with the account, amount, discount, a link to the quote, and Approve and Reject buttons. The run pauses.
  4. 4Timeout: no response in 4 working hours re-posts to #deal-desk and re-assigns the decision.
  5. 5On approve: Salesforce Update record on the quote sets Status = Approved, Approved_By__c to the deal desk lead, and Approved_At__c to now. The original Slack message is edited to show the outcome.
  6. 6On reject: the quote goes to Rejected, a follow-up modal captures the reason, and it is posted back to the rep in a thread.

Field mapping

Slack has no record model, so the map is Salesforce fields to the Block Kit message, and the interaction payload back to Salesforce.

SalesforceSlackNotes
Quote.Idblock_id on the actions blockCarried through the interaction payload so the response maps back to the record.
Owner.Region__c → approver emailusers.lookupByEmail → user IDResolves the human. IDs do not match across systems.
Account.Name, Quote.GrandTotal, Quote.Discount__csection block fieldsFormatted for the card. Currency and percent formatted for display.
quote record URLbutton (link) accessoryOpens the quote in Salesforce.
,Approve / Reject action_idThe two decision actions on the message.
Quote.Status← interaction action_idapprove sets Approved, reject sets Rejected.
Quote.Approved_By__c← interaction user.idResolved to the Salesforce user by email, so the CRM shows a person, not a Slack ID.
Quote.Approved_At__c← interaction timestampWritten on the response, in UTC.
Quote.Reject_Reason__c← follow-up modal submissionOnly on reject.

What syncs, each direction

  • Deal alerts. Closed-won, stage regressions, large new opportunities, and stalled deals post to the relevant channel with the record context. (Salesforce to Slack)
  • Approval requests. Discounts, non-standard terms, and credit holds post an approval card to a named person and pause the workflow. (Salesforce to Slack)
  • Approval decisions. The approve or reject action, the approver, the timestamp, and any reason are written to the record and the run log. (Slack to Salesforce)
  • Quick updates. An emoji reaction or a slash command on a deal alert can log an activity or advance a stage, without opening Salesforce. (Slack to Salesforce)

Governance and audit

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

  • Ordered run log. Every notification and approval is an event log. An approval records the approver's user ID, the decision, and the time, so it is provable later.
  • Approval steps. The core feature of this pair: a flow pauses in Slack until a named person responds or a timeout escalates.
  • Scoped access. Slack uses OAuth scopes limited to the channels and actions the flows use. Salesforce uses a permission set limited to the objects that are read and written.
  • Environments. Build against a Slack test workspace and a Salesforce sandbox, then promote the same flow to production.

Frequently asked questions

Can a Salesforce workflow actually wait for a Slack approval?

Yes. The run pauses at the approval step and resumes only when the person clicks approve or reject, or when a timeout fires and escalates.

Where is the approval recorded?

On the Salesforce record (approver, decision, timestamp, reason) and in the Neblex run log, which keeps the full message and the interaction payload.

How do you keep alerts from becoming noise?

Alerts fire on specific conditions you choose, not every field change, and they carry the context a person needs so they do not have to open Salesforce to act.

Is this different from Slack's own Salesforce app?

Slack's app is good for record previews and channel notifications. This adds approval steps that gate a workflow, write-back to the record, timeout escalation, and the run log.

Does anything get installed in Salesforce?

No. The connector uses the Salesforce APIs through a connected app. No managed package or Apex.

Connectors on this page

Salesforce

CRM

Operations
1,296
Typed outputs
57.9%
Change triggers
95 (poll)
Authentication
OAuth2

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.