Platform & Architecture

Acquisitions

Integrating Slack with Salesforce: name the channel or the record

Slack was acquired and the deal closed in 2021. A Salesforce org is not a Slack workspace. Name where the message must land.

An engineer working beside servers in a data centre.Platform & Architecture

A case comment was meant for the account channel. It posted in #general, in front of people who do not work that account. The same hour a second message, meant for the channel, landed as a comment on the wrong opportunity, because two records shared a customer name. The seller who owns the real opportunity never saw it. The seller who does not own it answered the customer. By lunch the thread and the record disagreed, and a manager asked which one they were allowed to trust. The architecture slide showed Slack inside the org, one box, no channel name, no record name. The call had landed. It had landed in the wrong place.

That hour is the integration this page is about. Slack was acquired and the deal closed in 2021. Slack kept its name. A Salesforce org is not a Slack workspace. Name the channel or the record, and name the failure when the message posts in the wrong place. A diagram that skips those is a poster. The build sits on the Slack implementation page. The ownership story sits on what happened to Slack. This page is the message.

The system

Salesforce bought Slack. Slack kept its name. The deal closed in 2021. You still open Slack to speak, and you still open Salesforce to work the record. The acquisition did not merge those two into one system. A channel is a conversation in a workspace. A record is a record in an org. Say which one you mean in every sentence of the design. A sentence that treats them as one product will post a customer fact where the other customers can read it.

A Salesforce org is not a Slack workspace. Members are not the same list as users. A Slack member may have no Salesforce user. A Salesforce user may never open Slack. Those lists are kept by different people. Refreshing a sandbox does not refresh a workspace, and it does not move a channel into the org. Do not brief a refresh as a Slack release. The workspace you are posting into is the one the credentials point at. Write that workspace down. "Production Slack" is acceptable only when there is one, and you have said so.

There is a later announcement. This page quotes it once: "Salesforce completed its acquisition of Doti on December 1, 2025." Doti is not the Slack integration. The sentence records a completion on 1 December 2025. It does not describe your channel. It does not say a Salesforce org has become a Slack workspace. It does not say where a message should post. Put Doti on its own line. Leave the Slack close in 2021. If a timeline draws one arrow from Slack to December 2025, the arrow is wrong.

Name the system that sends, and the system that must receive. A person typing in a channel is one direction. A record update that should appear in a channel is the other. They fail differently. Do not draw both as one arrow until you have written both failures. This page will not invent a connector product, an API name, or a price. The cited sentence does not publish a Slack licence fee. Your contract does. A number copied from a search is not the fee.

Slack is not a place where every company document now lives. A file can be linked. The file's home is a decision you write down. Pasting the CRM into a channel, or pasting the channel into a case, is a copy. It is not this integration.

The object

Name the channel or the record. One of them is the object this message is allowed to touch. An account channel for a named account is a fair object when the conversation is about that account and the people in the channel are allowed to hear it. A case, an opportunity, or an account is a fair object when the message must become a fact on that record and nowhere else. "The customer" is not an object. Two records with the same name will prove it, as they did at lunch.

If the object is a channel, write the channel. Not "the team's Slack". The name, or the rule that picks the name from the account. If the rule cannot find a channel, the message must not guess. Guessing is how a note reaches #general. Write the fallback as a failure, not as a helpful post to a wide room.

If the object is a record, write the field that joins the message to that record. A customer name is a weak join when two opportunities share it. Prefer an id a person can point at. Write which fields the message may fill. A chatter-style comment, a field update, and a new task are different writes. Pick one. A design that says the message will update Salesforce will update the wrong record and look successful.

Write who may be in the channel when the object is a channel. A public channel is a publication. A case comment that includes a credit hold does not belong there because the integration can see the case. Restricted text stays on the record. The channel gets a line that a wider room is allowed to read, or it gets nothing. Say which.

The people are part of the object. A display name copied onto a contact is not a user. If the message should notify a Salesforce user, name how you know that user is the owner of the record, not the owner of a similarly named one. The lunch failure was a join on a name. Do not repeat it in the design and call it a match.

The failure when the message posts in the wrong place

The call can "succeed" and still be the failure. The message exists. It is in the wrong channel, or on the wrong record. The customer got an answer from someone who should not have seen the note. Or the owner got nothing, and the note is visible to a room that includes a rival account's guests. Write that failure in a sentence: the message posted, and it posted in the wrong place, and here is who is told.

A shared mailbox that receives a copy of every post is not that sentence. You need a named reader who can remove or correct a message in the wrong place, and a rule for what they may say afterwards. Deleting a post does not delete the people who already read it. Say that in the design. The correction is part of the failure, not a hope.

The other failure is that the message does not post at all. The workspace is the wrong one. The bot user, or whatever identity you use, has left the channel. The record id does not exist in the sandbox you just refreshed. Each is different from a wrong-place post. Write the one you will test. Do not collapse them into "Slack errors".

Do not use the Doti date as the explanation. A message in the wrong channel is not a later acquisition. It is a missing name. Do not invent a daily cap to explain a missed post. This page states no ceiling. If the post is missing, find the channel, the record, and the identity that was allowed to speak.

Stopping the posts is part of the plan. Someone must be able to halt messages into a channel without waiting for a deploy, especially when the wrong room is already receiving them. Write the name of that person. "The integration" is not a name.

A diagram that omits three names is a poster

A diagram that does not name the system, the object, and the failure is a poster. Slack's logo inside a Salesforce cloud does not say which channel, which record, or what happens when the message posts in the wrong place. Draw the workspace and the org as two systems. Draw one object on the arrow. Draw the wrong-place failure under it, with the reader's name.

Do not draw every channel in the company. You were not promised a post for each of them. Cross out the rooms this project will not touch. A wide arrow into "Slack" is how #general becomes the default. Leave one channel, or one rule that refuses to guess.

Do not put Doti on the Slack box. The quoted sentence is a different acquisition. A box that says Slack and Doti has used a 2025 completion as if it were the 2021 close. Separate the dates. The integration you are designing is the message, the channel or the record, and the wrong place.

If someone adds an API product name or a middleware SKU to make the poster look technical, strike it. The cited sentence does not name one. The design can still be built from the channel, the record, and the failure.

What you nameA design saysA poster says
SystemThe workspace and the org, kept apartSlack inside the org
ObjectOne channel, or one record, and the joinThe customer
FailurePosted in the wrong place, and who corrects itA red arrow, or a mailbox
FallbackDo not guess a roomPost to #general
DotiA different acquisition, quoted onceThe Slack integration

What you settle before the first post

Write five lines before anyone connects the two. The workspace. The channel or the record, and the field that joins them. The direction of the message. What must never be posted to a wide room. The person who acts when the message is in the wrong place.

Then say what you are not buying. You are not buying a merger of the org and the workspace. You are not buying the Doti completion as a Slack design. You are not buying a home for every company document. You are not buying a price this page does not state. This page does not give Slack an end date. The close in 2021 was not a shutdown. Leave the workspace up while people still decide things in it.

The implementation page is where a channel export is refused as a migration, and where the workspace boundary is taken apart. What happened to Slack is where 2021, the name, and the Doti date are kept from being one event. Use those pages when the meeting argues about ownership. Bring the meeting back to the message that hit the wrong room.

Agree who may add a channel later. A new room is a new object, not a tick on the poster. The rule that refuses to guess stays in force until you name the new room.

A test you can run

Post one message that must reach the channel you named, or the record you named. Read it as the person who should see it. Read the places they should not see it, including #general and the similarly named opportunity. If the message is in both, the join is wrong.

Then force the wrong place. Use two records with the same customer name, or remove the bot from the channel, in a workspace that is not the live customer room. The named reader should say where it went, and what they will tell the people who saw it. If they open a slide instead, the test failed.

Confirm the sandbox refresh did not move Slack. Point at the workspace you wrote down. If the test posted into a customer's real channel, you tested in the wrong system. Stop, say so, and write the workspace name larger on the diagram.

The integration is ready when a new administrator can see the workspace, the channel or the record, and the wrong-place reader without asking the person who drew the cloud. If the page still says the org is the workspace, send it back. The deal closed in 2021. It did not decide which room hears the customer.

Sources

  1. Salesforce Signs Definitive Agreement to Acquire Doti

Common questions

Answered, directly.

The questions this piece settles about Platform & Architecture, answered in full on this page.

No. Slack was acquired and the deal closed in 2021, and Slack kept its name. You still open Slack to speak and Salesforce to work the record. A sandbox refresh does not move a channel into the org.

No. The cited sentence says Salesforce completed its acquisition of Doti on 1 December 2025. That is a different acquisition. It does not name your channel, and it does not replace the 2021 close.

The channel or the record, the field that joins them, and the failure when the message posts in the wrong place. A customer name shared by two records is a weak join. Do not let the message guess a public room.

The message posts in the wrong channel or on the wrong record. A named person must be able to correct that, knowing others may already have read it. A missing post is a separate failure. Do not collapse both into a logo.

The implementation page covers the workspace boundary and why a channel export is not a migration. The what-happened page covers the 2021 close and keeps the Doti date separate. This page is the channel or the record, and the wrong place.

Free architect conversation

Talk to an architect, not a sales rep.

Architecture review, before it gets expensive. 60 seconds to brief us, and a certified architect replies within one business day.

What decision is actually in front of you?

Pick the closest fit. The review is free, and we will tell you to keep your current design if keeping it is right.

What does this decision touch?

Optional. Choose any that apply, or skip ahead.

Where does your org stand today?

Optional. A few sentences is plenty: what is working, what is stuck, and what you want to be true. Or skip ahead and tell us on the call.

Who should the architect reach?

A certified architect will reply to these details.

Takes about 30–60 seconds · No obligation · Architect replies within one business day

Protected by reCAPTCHA. Google's Privacy Policy and Terms apply.

More from Insights

Read by desk

Ten desks, one delivery team. Every piece is written by the people who do the work.