Using Hightouch and Slack to Power Sales Ops Workflows
Getting data from your Data Warehouse into Slack couldn't be easier. With just a few lines of SQL, you can start sending custom notifications to your teams in minutes.
Pedram Navid
May 7, 2021
|5 minutes
As a productivity tool, there's no escaping Slack. Using channels to keep teams up-to-date on issues and conversations has helped teams collaborate more effectively. As Sales Operations increase in sophistication, we've seen a desire to help sales teams respond more quickly to opportunities as they arise. With Hightouch, you can take your sales operations workflows to the next level with our Slack Integration that allows sending relevant, contextual information from your data warehouse to your Sales Teams.
In this example, we'll walk you through setting up Slack Notifications to help your sales teams respond to high intent leads. We'll connect to our data warehouse, retrieve the latest accounts plus their lead scores that our team of data scientists calculate daily, and then send that to a Slack sales channel.
Step 1: Invite the Hightouch Slack Bot to Your Slack Channel
We need to authorize Hightouch to send messages to Slack. This is as easy as a few clicks. From the Hightouch Destinations page, select the Slack destination and use OAuth to authenticate with Slack. Give your destination a name, in this example, we'll call it Hightouch Slack.
Once you've authenticated, pick a channel for testing, we've called it #test. Then invite the Hightouch app to your channel by mentioning @hightouch. Done!
Step 2: Design Your Message
The next step involves designing the message you want to send to your channel when a new row is added or changed. Optionally, you can also write a message for a row being removed.
You have two options here as well, plain text, or using Slack's Block Kit. We recommend starting with a plain message, and then spicing things up with Block Kit once you're happy.
In this example, we want our sales team to be notified whenever a new customer signs up. Our customers exist in our customers
table and we have some additional attributes about them we'd like to include. We've settled on the following message:
👋 High Intent Lead: CustomerName [123] from customername.com has a lead score of 95%. Click to view them in Hubspot.
Step 3: Create Your Model
Now that we know what message we'd like to send, we can create a model in Hightouch that has the columns we need to generate the message. We'll need: workspace_id, workspace_name, domain, lead_score, and hubspot_link
. We'll generate the link to Hubspot using the Warehouse so our sales teams get direct access to Hubspot from Slack without having to open a browser and search.
In Hightouch, create a new model, point to your favorite source, and write a simple query to get this information. The query we're using is fairly straightforward:
select
workspace_id,
workspace_name,
domain,
lead_score,
'https://app.hubspot.com/contacts/123456789/company' || company_id as hubspot_link
from analytics.core.customers
join analytics.hubspot.hubspot__companies using(workspace_id)
where workspace_id in (42, 27541)
In the model above, we've picked a couple of workspaces as an example, and we've joined our customers
table with our hubspot__companies
table using a common id. In fact, we're sending these workspace ids into Hubspot using Hightouch as well.
Once you're happy with your results, select the unique identifier, save the model and give it a nice name and move on to the next step.
Step 4: Add A Sync
With your model open, click Add Sync to setup the sync to Slack from this model.
You'll have a few options here, but for simplicity, we'll go with sending a message using plaintext.
In the next section, write out the message template. You'll need to wrap each column name with {{ and }}, as in the example below. Feel free to use emojis!
👋 High Intent Lead: {{WORKSPACE_NAME}} [{{WORKSPACE_ID}}] from {{DOMAIN}} has a lead score of {{LEAD_SCORE}}. Click to view them in <{{HUBSPOT_LINK}}|Hubspot>.
Set your schedule interval, we'll set it to run once an hour but feel free to adjust to your preferences.
Step 5: Sit Back and Enjoy the Show
On the first run, Hightouch will read all the rows from your model, but will not flood your Slack channel with hundreds of messages. Next time it runs, any changes to the rows will cause a new message to show up in Slack.
In our case, we limited the query to only two rows so we can force Hightouch to trigger a full resync, which will cause it to output all the rows to the channel. (There's a reason we picked #test and not #general while testing!)
On the drop-down next to Start Run, click Resync Full Query
Wait a few moments and you should see the Run Complete!
Once done, check your Slack messages, and you'll see a nice new message powered by your SQL Queries and Hightouch.
Taking It to the Next Level
Now that we have the basics down, we can even go further. Hightouch supports Slack's Block Kit for making even better-looking messages. Use the Block Kit Builder to customize your template, and then select Block Kit in the Hightouch Slack configuration. Just copy-paste everything from the 'blocks' section into the Hightouch config and you'll have beautiful messages in no time.