Intermediate~15 min setupCommunication & SupportVerified April 2026
Slack logo
Help Scout logo

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-time

Use case type

notification

Real-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.

/mo
505005K50K

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

Skip the setup

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.

Help Scout account with Admin access to configure Webhooks under Your Account settings
Slack workspace where you have permission to install apps and create channels
Pipedream account (free tier works) with a connected Help Scout account using OAuth or API key
A defined list of VIP customers — either by email domain (e.g. @enterprise.com), customer tag in Help Scout, or a hardcoded list of email addresses your code step can check against
A dedicated Slack channel for VIP alerts (e.g. #vip-support) with the Pipedream bot invited if the channel is private

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Conversation IDconversation.id
Ticket Subjectconversation.subject
Customer Emailconversation._embedded.customer[0].email
Conversation URLconversation._links.self.href
6 optional fields▸ show
Customer First Nameconversation._embedded.customer[0].firstName
Customer Last Nameconversation._embedded.customer[0].lastName
Conversation Tagsconversation.tags
Mailbox Nameconversation._embedded.mailbox.name
Created At Timestampconversation.createdAt
Assigned Toconversation._embedded.assignee.email

Step-by-Step Setup

1

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.

  1. 1Click the blue 'New Workflow' button in the top-right of the dashboard
  2. 2Type 'Help Scout VIP Alert to Slack' in the name field
  3. 3Click 'Create' to open the blank workflow canvas
What you should see: You see an empty workflow canvas with a gray 'Add Trigger' block at the top and a '+' button below it to add steps.
2

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.

  1. 1Click the gray 'Add Trigger' block
  2. 2Type 'Help Scout' in the search bar
  3. 3Select 'Help Scout' from the app list
  4. 4Choose 'New Conversation' as the trigger event
  5. 5Click 'Connect Account' and authenticate with your Help Scout credentials
What you should see: The trigger block shows a green 'Connected' badge and displays a webhook URL in the format https://eoXXXXXX.m.pipedream.net.
Common mistake — Help Scout's webhook fires for ALL new conversations by default. You'll filter by customer tag or mailbox in a later code step — do not skip that step or every ticket will alert your Slack channel.
Pipedream
+
click +
search apps
Slack
SL
Slack
Add the Help Scout webhook t…
Slack
SL
module added
3

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.

  1. 1In Help Scout, click your avatar in the bottom-left and select 'Your Account'
  2. 2Click 'Webhooks' in the left sidebar
  3. 3Click 'Add Webhook'
  4. 4Paste the Pipedream webhook URL into the 'Endpoint URL' field
  5. 5Check the box for 'Conversation Created' under Events
  6. 6Click 'Save'
What you should see: Help Scout shows a green checkmark next to your new webhook and logs a successful 200 response from Pipedream in the delivery history.
Common mistake — Help Scout sends a secret key with every webhook payload in the X-HelpScout-Signature header. Copy this secret now from the webhook settings — you'll need it in the next step to validate requests.
4

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.

  1. 1In Help Scout, click 'New Conversation' and create a test ticket from an email address you control
  2. 2Return to Pipedream and watch the trigger step — it should show '1 event' within a few seconds
  3. 3Click the event to expand the full JSON payload in the inspector panel
What you should see: You see the full Help Scout conversation object in the right-hand inspector, including fields like conversation.customer.email, conversation.subject, conversation.tags, and conversation.links.self.
Pipedream
▶ Deploy & test
executed
Slack
Help Scout
Help Scout
🔔 notification
received
5

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.

  1. 1Click the '+' button below the trigger step
  2. 2Select 'Run Node.js code' from the step type menu
  3. 3Paste your VIP filtering code into the editor
  4. 4Click 'Test' to run the step against your captured test event
What you should see: If your test ticket is from a VIP customer, the step returns an object with isVip: true and the parsed customer data. If not, it returns a message saying 'Not a VIP customer — workflow exited.'
Common mistake — $.flow.exit() stops execution cleanly — Pipedream does NOT count this as an error. It will still appear in your event history as 'Completed' rather than 'Failed', which is correct behavior.

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 →>`,
    };
  },
});
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Help Scout
HE
notified
6

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.

  1. 1Click '+' below the Node.js code step
  2. 2Search for 'Slack' and select it
  3. 3Choose 'Send Message to Channel' as the action
  4. 4Click 'Connect Account' and authorize Pipedream via the Slack OAuth flow
  5. 5Select your target channel (e.g. #vip-support) from the Channel dropdown
What you should see: The Slack action step shows your connected workspace name with a green badge and displays a Channel field pre-filled with the channel you selected.
Common mistake — Pipedream's Slack action uses a bot token, not a user token. The bot must be manually invited to private channels with /invite @Pipedream before it can post — the step will return a 'channel_not_found' error otherwise.
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
7

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.

  1. 1Click inside the Message field in the Slack step
  2. 2Click the '{}' data picker icon to browse available fields from previous steps
  3. 3Select steps.trigger.event.conversation.subject for the ticket subject
  4. 4Select steps.nodejs.customerName for the customer name
  5. 5Add the direct Help Scout link using steps.trigger.event.conversation.links.self
What you should see: The Message field shows a templated string like: '🚨 VIP Ticket: {{steps.nodejs.customerName}} — {{steps.trigger.event.conversation.subject}} | View: {{steps.trigger.event.conversation._links.self.href}}'
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
8

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.

  1. 1Click 'Test Workflow' in the top bar of the canvas
  2. 2Watch the step-by-step execution in the inspector panel on the right
  3. 3Open your #vip-support Slack channel and confirm the message appeared
  4. 4Check that the Help Scout link in the message opens the correct conversation
What you should see: Every step shows a green checkmark, and a formatted Slack message appears in your target channel with the customer name, ticket subject, and a clickable Help Scout link.
Common mistake — Test runs in Pipedream use real API calls — the Slack message will actually post to your channel. Use a test/private channel for development so you don't spam your team during setup.
9

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.

  1. 1Click the gray 'Deploy' button in the top-right corner of the canvas
  2. 2Confirm the deployment dialog
  3. 3Wait for the status indicator to switch from 'Development' to 'Active'
What you should see: The workflow status badge in the top bar changes to green 'Active'. The trigger shows 'Listening for events...' in the inspector.
10

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.

  1. 1In Help Scout, create a new conversation from a VIP customer email or apply a VIP tag
  2. 2In Pipedream, navigate to Monitoring > Event History
  3. 3Click the new event row to inspect the execution log
  4. 4Confirm all steps show green and check Slack for the alert
What you should see: The Event History shows a completed run with zero errors, and your Slack channel displays the live VIP alert within 10 seconds of the Help Scout ticket being created.
Common mistake — Help Scout occasionally retries webhook deliveries if the first attempt times out (their timeout is 5 seconds). If Pipedream is slow to respond during a cold start, you may see a duplicate Slack message. Add a deduplication check using the conversation ID in your code step if this becomes an issue.

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

VerdictWhy n8n for this workflow

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

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.

Tradeoffs

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 FiresAfter 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 TierExtend 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 TicketsCreate 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

Was this guide helpful?
Slack + Help Scout overviewPipedream profile →