Build notes
Why our agents live in Slack
Our agents identify, score and research your website visitors. We still don't ask anyone to open a new tab to see the result. Here is what we learned putting an agent inside a tool people already use all day.
Two ways to read this
- Part one: why The argument for meeting people where they already work.
- Part two: how Five rules we build Slack features by.
Everyone is building agents right now. Most of them ship with a new dashboard, a new inbox, a new tab to keep open. Then the team wonders why nobody logs in.
We made the opposite bet early. The work our agents do (identifying who is on your website, scoring them against your ideal customer profile, finding their email, pulling in the rest of the buying committee) ends as a Slack message with buttons on it. The dashboard is still there when you want it. Most days, you don't need it.
Part one
Why
Adoption is the whole game
An agent that does brilliant work nobody sees has done no work at all.
Sales reps already live in two places: their inbox and Slack. Every new tool is competing for the third slot, and most lose. So the question we ask about every feature is not "what should this page look like." It is "what is the smallest thing we can put in front of the rep, in the place they already are, that lets them act?"
Usually the answer is one message and one or two buttons.
Speed is the product
A website visitor is most valuable while they are still on the website. An alert that arrives tomorrow morning is a report. An alert that arrives while they are reading your pricing page is a conversation you can start.
So we measure the gap between a visitor being identified and the message landing in Slack. Over the last 30 days the typical gap was under five seconds.
Part two
How
Putting a message in a channel is easy. Making it something people act on, instead of mute, took a set of rules. Here are the five we build by.
1One message, one decision
Every contact alert carries the decision we most need a human for: is this person worth pursuing? Qualify and Disqualify sit right on the message, next to buttons that push the contact into HubSpot or Salesforce, and one that finds the rest of their buying committee.
Northwind Freight · Logistics and Supply Chain
Website LinkedIn
Qualified by Maya Chen · 10:44 AM
When someone clicks, the message updates itself. The button turns green and a single grey line underneath says who decided and when. The channel becomes a shared record: anyone scrolling past can see that Dana is handled, and by whom, without asking.
2The click should set the automation off again
A button that only records a decision is a form. A button that acts on it is an agent.
Our customers build Plays, standing automations that say things like "when a qualified VP from a target account visits, add them to this Outreach sequence and create a Salesforce lead." A Play runs the moment a visitor is identified. But qualification is a human call, and it usually happens minutes or hours later, in Slack.
So a Qualify click re-runs every Play whose filters depend on qualification, against a fresh copy of the lead. That is how a thumbs-up in Slack becomes a sequence enrollment in Apollo, Outreach or Lemlist without the rep opening any of them.
The rep makes the judgment call. The agent does everything that follows from it.
3Answer in milliseconds, do the work afterwards
Slack gives your app three seconds to acknowledge a button click. After that the user sees an error, even if everything worked.
Some of our buttons do slow things. Finding a buying committee means calling several data providers. Pushing to a CRM means a round trip to Salesforce. So the endpoint checks the request is genuinely from Slack, hands the work to a background task and replies straight away. The median acknowledgement is about four milliseconds. The results arrive a moment later as an edit or a threaded reply.
4Make "no" as easy as "yes"
We expected Qualify to be the busy button. It isn't. Most of the decisions our customers make are a no.
That is the system working. A disqualified contact stops any Play that is waiting on qualification, stays out of the CRM, and doesn't come back to the top of anyone's list. If saying no took three clicks and a page load, people would ignore the alert instead, and an ignored alert tells you nothing.
5The second visit is the real signal
A lot of the alerts we post are about someone we have already identified who has come back to the site. That is on purpose. A first visit is curiosity. The third visit in a week, landing on pricing, is someone building a business case.
So an alert is not "a new lead was created." It is "someone worth your attention is on the site right now," and the message says how many times they have been back and what they read.
Eating our own cooking
We use it ourselves
Our own team works the same way. When a new customer hits a setup milestone, like connecting their CRM or seeing their first identified visitor, a short note lands in our Slack. That means the right person on our side can offer a hand with the next step while it is still useful, instead of finding out a week later in a report.
Running it ourselves has also taught us the unglamorous parts. A feed that posts the same thing twice gets muted within a week, so every message is deduplicated before it goes out. A feed that posts things nobody acts on gets muted too, which is why each message has to earn its place.
Afterwards
What we would tell another team
If you are building an agent, spend less time on its dashboard and more on the moment it hands something to a human. Where does that moment happen? What is the one decision you need from them? Can they make it without leaving the tool they are already in? And when they do, does the agent pick it up and carry on?
For us the answer to all four is a Slack message. The next step is taking the same idea further: our Inbox already drafts first-touch emails in each rep's own voice, and a human approves every word before anything is sent. Approving that from Slack, with one click, is what we are building next.
The best interface for an agent is often one you didn't have to build. Put the decision where the person already is, and make the click do the rest.
Knock2 identifies the people visiting your website, scores them against your ICP, and posts them to Slack while they are still on the page, with the buttons to qualify, push to your CRM and start a sequence right there.
