

How to Send Help Scout VIP Alerts to Slack with Pipedream
Fires an instant Slack notification to your support channel whenever a tagged VIP or high-priority customer opens a new Help Scout ticket.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Support teams that manage a tiered customer base and need their whole team alerted within seconds when an enterprise or VIP account opens a ticket.
Not ideal for
Teams routing alerts based on Help Scout conversation tags applied after ticket creation — tag-based filtering requires a polling trigger or a separate tag-updated webhook event.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person SaaS support team manages 400 tickets a month, 30 of which come from enterprise accounts worth over $50k ARR. Before this workflow, a VIP ticket could sit for 45 minutes before anyone noticed it in the Help Scout queue. Now the #vip-support Slack channel gets a message within 10 seconds of ticket creation, including the customer name, subject line, and a direct link to the conversation.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. All modules, filters, and field mappings are already configured — you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Conversation ID | conversation.id | |
| Ticket Subject | conversation.subject | |
| Customer Email | conversation._embedded.customer[0].email | |
| Conversation URL | conversation._links.self.href | |
6 optional fields▸ show
| Customer First Name | conversation._embedded.customer[0].firstName |
| Customer Last Name | conversation._embedded.customer[0].lastName |
| Conversation Tags | conversation.tags |
| Mailbox Name | conversation._embedded.mailbox.name |
| Created At Timestamp | conversation.createdAt |
| Assigned To | conversation._embedded.assignee.email |
Step-by-Step Setup
pipedream.com > Projects > New Workflow
Create a new Pipedream Workflow
Go to pipedream.com and sign in. Click 'New Workflow' in the top-right corner of the Projects dashboard. Give it a name like 'Help Scout VIP Alert to Slack' so it's easy to find later. You'll land on the workflow canvas with a trigger slot at the top waiting to be configured.
- 1Click the blue 'New Workflow' button in the top-right of the dashboard
- 2Type 'Help Scout VIP Alert to Slack' in the name field
- 3Click 'Create' to open the blank workflow canvas
Workflow Canvas > Add Trigger > Help Scout > New Conversation
Add the Help Scout webhook trigger
Click the 'Add Trigger' block and search for 'Help Scout' in the app search box. Select the 'New Conversation' event source — this fires the moment a new ticket is created. Pipedream generates a unique webhook URL that you'll register in Help Scout in the next step. You'll see the trigger step expand with a 'Connect Account' button.
- 1Click the gray 'Add Trigger' block
- 2Type 'Help Scout' in the search bar
- 3Select 'Help Scout' from the app list
- 4Choose 'New Conversation' as the trigger event
- 5Click 'Connect Account' and authenticate with your Help Scout credentials
Help Scout > Your Profile > Your Account > Webhooks > Add Webhook
Register the webhook URL in Help Scout
Open a new browser tab and log into Help Scout. Navigate to your account settings and find the Webhooks section. Paste the Pipedream webhook URL you copied from Step 2, check the 'Conversation Created' event, and save. Help Scout will immediately send a test ping to verify the endpoint is reachable.
- 1In Help Scout, click your avatar in the bottom-left and select 'Your Account'
- 2Click 'Webhooks' in the left sidebar
- 3Click 'Add Webhook'
- 4Paste the Pipedream webhook URL into the 'Endpoint URL' field
- 5Check the box for 'Conversation Created' under Events
- 6Click 'Save'
Workflow Canvas > Trigger Step > Event Inspector
Send a test ticket to capture a real payload
Back in Pipedream, click 'Send Test Event' or trigger the workflow by creating a test conversation in Help Scout. Open a new Help Scout conversation from a real (or test) customer email and submit it. Pipedream captures the raw JSON payload from Help Scout and displays it in the trigger's event inspector on the right side of the canvas.
- 1In Help Scout, click 'New Conversation' and create a test ticket from an email address you control
- 2Return to Pipedream and watch the trigger step — it should show '1 event' within a few seconds
- 3Click the event to expand the full JSON payload in the inspector panel
Workflow Canvas > + > Run Node.js Code
Add a Node.js code step to filter VIP customers
Click the '+' button below the trigger and select 'Run Node.js code'. This step checks whether the incoming ticket belongs to a VIP or high-priority customer by inspecting the customer's tags or email domain. If the customer doesn't match your VIP criteria, the workflow exits early using $.flow.exit() so no Slack message is sent. Paste the filtering logic from the Pro Tip section below into the code editor.
- 1Click the '+' button below the trigger step
- 2Select 'Run Node.js code' from the step type menu
- 3Paste your VIP filtering code into the editor
- 4Click 'Test' to run the step against your captured test event
Paste this into the Node.js code step (Step 5 on the canvas). It validates the Help Scout webhook signature, checks the customer against your VIP list by email domain and tag, formats a clean customer name, and exits the workflow early if the ticket doesn't match — so your Slack channel only sees real VIP alerts.
JavaScript — Code Stepimport crypto from 'crypto';▸ Show code
import crypto from 'crypto';
export default defineComponent({
async run({ steps, $ }) {... expand to see full code
import crypto from 'crypto';
export default defineComponent({
async run({ steps, $ }) {
// --- Config: define your VIP criteria here ---
const VIP_DOMAINS = ['acmecorp.com', 'globex.io', 'initech.com'];
const VIP_TAGS = ['vip', 'enterprise', 'priority'];
const HELPSCOUT_SECRET = process.env.HELPSCOUT_WEBHOOK_SECRET;
// --- Validate webhook signature ---
const rawBody = steps.trigger.event.$raw_body;
const signature = steps.trigger.event.$headers['x-helpscout-signature'];
if (HELPSCOUT_SECRET && rawBody && signature) {
const expectedSig = crypto
.createHmac('sha1', HELPSCOUT_SECRET)
.update(rawBody)
.digest('base64');
if (expectedSig !== signature) {
throw new Error('Webhook signature validation failed. Request may not be from Help Scout.');
}
}
// --- Extract conversation data ---
const conversation = steps.trigger.event.conversation;
const customer = conversation?._embedded?.customer?.[0] || {};
const tags = (conversation?.tags || []).map(t => t.toLowerCase());
const customerEmail = (customer.email || '').toLowerCase();
const emailDomain = customerEmail.split('@')[1] || '';
// --- Check VIP criteria ---
const isVipDomain = VIP_DOMAINS.includes(emailDomain);
const isVipTag = tags.some(tag => VIP_TAGS.includes(tag));
const isVip = isVipDomain || isVipTag;
if (!isVip) {
$.flow.exit(`Not a VIP customer (domain: ${emailDomain}, tags: ${tags.join(', ')}). Skipping Slack alert.`);
}
// --- Format customer name ---
const firstName = customer.firstName || '';
const lastName = customer.lastName || '';
const customerName = [firstName, lastName].filter(Boolean).join(' ') || customerEmail;
// --- Format timestamp ---
const createdAt = conversation.createdAt
? new Date(conversation.createdAt).toLocaleString('en-US', { timeZone: 'UTC', dateStyle: 'medium', timeStyle: 'short' }) + ' UTC'
: 'Unknown time';
// --- Return structured data for Slack step ---
return {
isVip: true,
customerName,
customerEmail,
emailDomain,
matchedVia: isVipDomain ? `domain (${emailDomain})` : `tag (${tags.find(t => VIP_TAGS.includes(t))})`,
conversationId: conversation.id,
subject: conversation.subject || '(No subject)',
helpScoutUrl: conversation?._links?.self?.href || '',
mailbox: conversation?._embedded?.mailbox?.name || 'Unknown Mailbox',
assignee: conversation?._embedded?.assignee?.email || 'Unassigned',
createdAt,
slackMessage: `🚨 *VIP Ticket — ${customerName}* (${emailDomain})\n*Subject:* ${conversation.subject}\n*Mailbox:* ${conversation?._embedded?.mailbox?.name || 'Unknown'}\n*Assigned to:* ${conversation?._embedded?.assignee?.email || 'Unassigned'}\n*Opened:* ${createdAt}\n<${conversation?._links?.self?.href}|View in Help Scout →>`,
};
},
});
Workflow Canvas > + > Slack > Send Message to Channel
Add a Slack step to send the alert message
Click '+' below the code step and search for 'Slack'. Select the 'Send Message to Channel' action. Connect your Slack account via OAuth when prompted — Pipedream will ask for the channels:write and chat:write scopes. Choose the destination channel (e.g. #vip-support) from the dropdown and build the message using data from the previous steps.
- 1Click '+' below the Node.js code step
- 2Search for 'Slack' and select it
- 3Choose 'Send Message to Channel' as the action
- 4Click 'Connect Account' and authorize Pipedream via the Slack OAuth flow
- 5Select your target channel (e.g. #vip-support) from the Channel dropdown
channel: {{channel}}
ts: {{ts}}
Workflow Canvas > Slack Step > Message Field
Configure the Slack message content
In the Slack step's Message field, build your alert using data from the trigger and code step. Reference fields using Pipedream's expression syntax — click the '{}' icon to open the data picker and select fields like steps.trigger.event.conversation.subject or steps.nodejs.customerName. Use Block Kit formatting for a cleaner layout, or a simple text message for fast setup.
- 1Click inside the Message field in the Slack step
- 2Click the '{}' data picker icon to browse available fields from previous steps
- 3Select steps.trigger.event.conversation.subject for the ticket subject
- 4Select steps.nodejs.customerName for the customer name
- 5Add the direct Help Scout link using steps.trigger.event.conversation.links.self
Workflow Canvas > Test Workflow button (top bar)
Test the full workflow end to end
Click 'Test Workflow' at the top of the canvas to run all steps against your previously captured test event. Watch each step turn green as it executes. Check your Slack channel — the VIP alert message should appear within 5 seconds. If the Node.js step exits early because your test ticket isn't flagged as VIP, update your test email or tags to match your VIP criteria and retest.
- 1Click 'Test Workflow' in the top bar of the canvas
- 2Watch the step-by-step execution in the inspector panel on the right
- 3Open your #vip-support Slack channel and confirm the message appeared
- 4Check that the Help Scout link in the message opens the correct conversation
Workflow Canvas > Deploy button (top-right)
Deploy and activate the workflow
Once the test passes, click 'Deploy' in the top-right corner to activate the workflow. Pipedream switches the trigger from test mode to live mode — it will now accept real Help Scout webhook deliveries 24/7. The workflow URL remains the same, so no changes are needed in Help Scout.
- 1Click the gray 'Deploy' button in the top-right corner of the canvas
- 2Confirm the deployment dialog
- 3Wait for the status indicator to switch from 'Development' to 'Active'
pipedream.com > Monitoring > Event History
Verify with a live ticket in Help Scout
Create a real conversation in Help Scout from an email address or customer tag that matches your VIP criteria. Watch the Pipedream event log under Monitoring > Event History — you should see the event arrive and all steps complete within 10 seconds. Confirm the Slack message appears in your channel with accurate customer data and a working link.
- 1In Help Scout, create a new conversation from a VIP customer email or apply a VIP tag
- 2In Pipedream, navigate to Monitoring > Event History
- 3Click the new event row to inspect the execution log
- 4Confirm all steps show green and check Slack for the alert
Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Pipedream for this if your team has any developer comfort and wants sub-10-second alert delivery without polling delays. Pipedream's instant webhook processing is genuinely faster than polling-based approaches — there's no 1-minute or 5-minute delay waiting for a scheduled check. The Node.js code step also lets you build real VIP filtering logic (domain matching, tag checks, signature validation) in the same workflow without needing a separate serverless function. The one scenario where you'd skip Pipedream: if nobody on your team writes code and you want a point-and-click setup, Make handles this workflow with a simpler interface and no code required.
Cost math is straightforward. Each Help Scout ticket that hits Pipedream counts as one workflow execution. Pipedream's free tier gives you 10,000 invocations per month — if you're handling 500 tickets a month with 30 VIP tickets, the free tier covers you with room to spare. The paid tier ($19/month) removes execution limits and keeps workflows warm, eliminating cold-start delays. At 10,000+ total tickets per month, you'll want paid, but that's a much larger support operation than this workflow is designed for.
Make is the closest competitor here. Its Watch Conversations trigger polls Help Scout every 15 minutes, which means a VIP ticket could sit for up to 14 minutes before Slack sees it — unacceptable for a priority alert use case. Zapier has a Help Scout trigger but it also polls on a schedule (minimum 2-minute intervals on paid plans) and costs more per task at volume. n8n handles this workflow well if you self-host and want full control, but setup time is significantly higher. Power Automate has no native Help Scout connector, so you'd be building a custom HTTP trigger — more work than Pipedream for the same result. Pipedream wins on delivery speed (true webhooks), built-in code steps, and price for this specific use case.
Three things you'll hit after launch. First, Help Scout's webhook payload structure is inconsistent between API v1 and v2 — the customer object is nested under _embedded in the webhook payload but directly on the object in API responses. Don't assume the path you see in the API docs matches the webhook payload exactly; always inspect the raw event. Second, Help Scout retries failed webhooks up to 3 times over 24 hours. If Pipedream ever goes down briefly, you can get a flood of delayed retries all at once — add deduplication via the conversation ID or you'll spam your Slack channel. Third, the Help Scout webhook secret validation is optional in their UI but critical for security — without it, anyone who discovers your Pipedream webhook URL can trigger fake VIP alerts in your Slack channel.
Ideas for what to build next
- →Add a Help Scout Tag After Alert Fires — After posting to Slack, add a 'alerted' tag back to the Help Scout conversation via the Help Scout API. This creates a clear audit trail of which tickets triggered alerts and prevents confusion if the ticket gets reassigned.
- →Route Alerts to Different Slack Channels by Tier — Extend the Node.js filter to support multiple tiers — post $100k+ ARR accounts to #vip-critical and $25k+ accounts to #vip-standard. Update the Slack step to use a dynamic channel value driven by the code step output.
- →Build a Daily Digest of Unresolved VIP Tickets — Create a second Pipedream workflow on a daily schedule that queries the Help Scout API for all open conversations tagged 'vip' and posts a summary to Slack each morning — gives your team a standing view without relying on memory.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup