Connect Salesforce to Slack
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 hold the workflow: a discount over a threshold waits for the deal desk in a Neblex task, and the link reaches them in Slack
- The decision, the approver, and the timestamp are written back to Salesforce and recorded in the run, so an approval is provable later
- An overdue task escalates: the escalation flow posts to a channel so someone else can pick it up, 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
Started when a Salesforce quote reaches review, with an escalation when the task is overdue.
- Trigger: Salesforce
New or updated quote, polled on the schedule you set, with a Filter forStatus = In ReviewandDiscount__c > 0.20. - Resolve approver: a data table maps the owning rep's region to a deal desk lead's email. Slack
Find user by emailreturns their Slack user. - Request approval: a Wait for form step creates the approval task for the deal desk lead with the account, amount, discount, and a link to the quote, due in 4 working hours.
- Notify: a Slack message to the approver carries the summary and a button that opens the task.
- Escalate: if the task passes its due time, the escalation flow posts to
#deal-deskso another lead can take it. - On approve: a Salesforce update on the quote sets
Status = Approved,Approved_By__cto the person who decided, andApproved_At__cto now, and the flow posts the outcome in Slack. - On reject: the quote goes to
Rejectedwith the reason from the task form, and the reason is posted back to the rep in a thread.
Field mapping
The map is Salesforce fields to the approval task and the Slack message, and the task decision back to Salesforce.
| Salesforce | Neblex task and Slack | Notes |
|---|---|---|
Quote.Id | task form field | Carried through the task so the decision maps back to the record. |
Owner.Region__c → approver email | task recipient, Find user by email → Slack user | Resolves the human. IDs do not match across systems. |
Account.Name, Quote.GrandTotal, Quote.Discount__c | task fields and message fields | Formatted for the card. Currency and percent formatted for display. |
| quote record URL | message link button | Opens the quote in Salesforce. |
| task link | message button | Opens the approval task. |
Quote.Status | ← task outcome | approve sets Approved, reject sets Rejected. |
Quote.Approved_By__c | ← person who decided | Resolved to the Salesforce user by email, so the CRM shows a person. |
Quote.Approved_At__c | ← decision time | Written in UTC. |
Quote.Reject_Reason__c | ← reason field on the task form | Only 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 create an approval task for a named person and send the link in Slack. (Salesforce to Slack)
- Approval decisions. The decision, the approver, the timestamp, and any reason are written to the record and the run. (Neblex to Salesforce)
- Activity logging. A scheduled flow can read new messages in a deal channel and log them as activities on the opportunity. (Slack to Salesforce)
Governance and audit
The same controls apply to this sync as to every other Neblex workload.
- Run history. Every notification and approval is a run. An approval records the approver, the decision, and the time, so it is provable later.
- Approval steps. The core of this pair: a Wait for form task holds the flow until a named person responds, with a due time and an escalation flow.
- 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 an approval?
Yes. The run waits at the Wait for form step and continues only when the person approves or rejects in the task, or when the task times out. The approver opens the task from the link in Slack or in the email.
Where is the approval recorded?
On the Salesforce record (approver, decision, timestamp, reason), in the task history, and in the Neblex run.
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, escalation for overdue decisions, and the run history.
Does anything get installed in Salesforce?
No. The connector uses the Salesforce APIs through your connected app. No managed package or Apex.
Connectors used
Salesforce
CRM & Sales
- Operations
- 1,296
- Operations with typed output
- 57.9%
- Change triggers
- 31 (poll)
- Signs in with
- OAuth 2.0 sign-in
Slack
Communication, Email & Calendar
- Operations
- 317
- Operations with typed output
- 100%
- Change triggers
- Poll or inbound webhook
- Signs in with
- API token
Bring one real integration
We will build it with you against your own systems, with the run log open.