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

How to Send Help Scout Tickets to Slack with Pipedream

Instantly posts a Slack message to your support channel whenever a new Help Scout conversation is created, including ticket subject, requester, mailbox, and a direct link.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Support teams who live in Slack and need instant visibility into new Help Scout tickets without checking the inbox manually.

Not ideal for

Teams with high ticket volume — more than 200 tickets/day will generate enough Slack noise to make channel notifications useless; use a digest approach instead.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 12-person SaaS support team routes all inbound tickets through Help Scout but coordinates in Slack. Before this automation, the on-call rep had to refresh Help Scout every few minutes during busy periods and routinely missed urgent tickets for 10–20 minutes. Now, every new conversation fires a Slack message in #support-alerts within seconds, with the subject, customer email, and a one-click link to the ticket.

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 or Owner role — needed to authorize the webhook via OAuth
Slack workspace where you have permission to add apps and post to channels
Pipedream account (free tier works for this workflow)
The target Slack channel already created before setup — Pipedream cannot create channels
Help Scout API access enabled — confirm under Help Scout Settings > API that the API is not disabled at the account level

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Ticket Subjectsteps.trigger.event.subject
Customer Emailsteps.trigger.event.customer.email
Conversation IDsteps.trigger.event.id
Ticket URLsteps.trigger.event._links.web.href
4 optional fields▸ show
Customer Namesteps.trigger.event.customer.firstName + steps.trigger.event.customer.lastName
Mailbox Namesteps.trigger.event.mailbox.name
Created At Timestampsteps.trigger.event.createdAt
Assigned Tosteps.trigger.event.assignee.email

Step-by-Step Setup

1

pipedream.com > Workflows > New Workflow

Create a new Pipedream workflow

Go to pipedream.com and sign in. Click 'Workflows' in the left sidebar, then click the blue 'New Workflow' button in the top right. A blank workflow canvas opens with a prompt to select a trigger. You'll build from the trigger down — every subsequent step reacts to what this trigger fires.

  1. 1Sign in at pipedream.com
  2. 2Click 'Workflows' in the left sidebar
  3. 3Click the blue 'New Workflow' button
  4. 4Click 'Add a trigger' on the canvas
What you should see: You see the trigger selection panel on the right side of the canvas with a search bar at the top.
Common mistake — Pipedream free accounts are limited to 10 active workflows total. If you're near that limit, deactivate an unused workflow before creating this one — you can't save a new workflow if you've hit the cap.
2

Trigger panel > Search 'Help Scout' > New Conversation

Add the Help Scout trigger

In the trigger search bar, type 'Help Scout' and select it from the app list. Pipedream will show available trigger types for Help Scout. Select 'New Conversation' — this fires every time a new ticket (conversation) lands in any of your Help Scout mailboxes. This trigger uses Help Scout's webhook API, so delivery is near-instant.

  1. 1Type 'Help Scout' in the trigger search bar
  2. 2Click the Help Scout app tile
  3. 3Select 'New Conversation' from the trigger list
What you should see: The trigger step expands to show a 'Help Scout Account' dropdown and configuration options for mailbox filtering.
Common mistake — There are two Help Scout trigger options — 'New Conversation' and 'New Customer'. They look similar. 'New Conversation' is the one for tickets. Selecting 'New Customer' will never fire for this use case.
Pipedream
+
click +
search apps
Slack
SL
Slack
Add the Help Scout trigger
Slack
SL
module added
3

Trigger step > Help Scout Account > Connect new account > OAuth flow

Connect your Help Scout account

Click the 'Help Scout Account' dropdown and select 'Connect a new account'. Pipedream opens an OAuth window that redirects you to Help Scout's authorization page. Log in with your Help Scout credentials and click 'Allow Access'. Pipedream registers a webhook on your Help Scout account automatically — you don't need to do this manually in Help Scout's settings.

  1. 1Click the 'Help Scout Account' dropdown
  2. 2Select 'Connect a new account'
  3. 3Complete the Help Scout OAuth login in the popup window
  4. 4Click 'Allow Access' on the Help Scout authorization screen
What you should see: The dropdown shows your Help Scout account name with a green dot. You see a 'Test' button appear at the bottom of the trigger configuration.
Common mistake — You must authorize with a Help Scout account that has Admin or Owner permissions. Accounts with Viewer or User roles cannot register webhooks and the OAuth step will complete but the trigger will never fire.
Pipedream settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Pipedream
popup window
Connected
green checkmark
4

Trigger step > Test button > Event data panel

Test the trigger and inspect sample data

Click the 'Test' button in the trigger step. Pipedream will either pull a recent Help Scout conversation as sample data or ask you to create a test ticket. Go to your Help Scout inbox and create a simple test conversation — subject 'Test ticket for Pipedream', any customer email. Within 5–10 seconds, the trigger step in Pipedream should light up green and show the event payload. Expand the payload to see fields like subject, customer.email, mailbox.name, and _links.web.href.

  1. 1Click the 'Test' button at the bottom of the trigger step
  2. 2In Help Scout, create a new conversation with subject 'Test ticket for Pipedream'
  3. 3Return to Pipedream and wait for the event to appear
  4. 4Click through the event payload to find subject, customer.email, and _links.web.href
What you should see: The trigger step shows a green checkmark and a collapsible JSON payload. You can see fields like steps.trigger.event.subject and steps.trigger.event.customer.email populated with your test ticket's data.
Pipedream
▶ Deploy & test
executed
Slack
Help Scout
Help Scout
🔔 notification
received
5

Canvas > + button > Run Node.js code

Add a Node.js code step to format the Slack message

Click the '+' button below the trigger step and select 'Run Node.js code'. This is where you'll extract ticket fields and build a clean Slack message string before sending. Using a code step instead of going straight to the Slack action gives you control over message formatting — you can include urgency labels, truncate long subjects, or add conditional text based on mailbox name. Paste the code 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 options
  3. 3Paste the formatting code into the editor
  4. 4Click 'Test' to run the code step against your sample event
What you should see: The code step runs without errors and exports a formattedMessage string and a ticketUrl variable visible in the step's output panel on the right.
Common mistake — Pipedream code steps time out after 30 seconds on the free plan and 60 seconds on paid plans. This step runs in under 1 second, so this won't be an issue — but if you add async API lookups here later, keep that limit in mind.

Paste this into the Node.js code step (Step 5) between the trigger and the Slack action. It extracts all key ticket fields, formats the timestamp to a readable date, handles missing customer names gracefully, and returns a structured Slack Block Kit message for richer formatting — including a button that links directly to the ticket.

JavaScript — Code Stepimport { format } from 'date-fns';
▸ Show code
import { format } from 'date-fns';
export default defineComponent({
  async run({ steps, $ }) {

... expand to see full code

import { format } from 'date-fns';

export default defineComponent({
  async run({ steps, $ }) {
    const event = steps.trigger.event;

    // Extract fields with safe fallbacks
    const subject = event.subject || 'No subject';
    const email = event.customer?.email || 'No email';
    const firstName = event.customer?.firstName || '';
    const lastName = event.customer?.lastName || '';
    const customerName = [firstName, lastName].filter(Boolean).join(' ') || email;
    const mailbox = event.mailbox?.name || 'Unknown mailbox';
    const conversationId = event.id;
    const ticketUrl = event._links?.web?.href || `https://secure.helpscout.net/conversation/${conversationId}`;
    const assigneeEmail = event.assignee?.email || null;

    // Format timestamp
    let receivedAt = 'Unknown time';
    if (event.createdAt) {
      try {
        receivedAt = format(new Date(event.createdAt), 'MMM d, yyyy h:mm a') + ' UTC';
      } catch (e) {
        receivedAt = event.createdAt;
      }
    }

    // Build Slack Block Kit payload
    const blocks = [
      {
        type: 'section',
        text: {
          type: 'mrkdwn',
          text: `🎫 *New Help Scout Ticket*\n*From:* ${customerName} (${email})\n*Subject:* ${subject}\n*Mailbox:* ${mailbox}\n*Received:* ${receivedAt}${
            assigneeEmail ? `\n*Assigned to:* ${assigneeEmail}` : ''
          }`
        }
      },
      {
        type: 'actions',
        elements: [
          {
            type: 'button',
            text: { type: 'plain_text', text: 'View Ticket in Help Scout' },
            url: ticketUrl,
            style: 'primary'
          }
        ]
      },
      { type: 'divider' }
    ];

    return {
      blocks,
      fallbackText: `New ticket from ${customerName}: ${subject}`,
      ticketUrl,
      customerName,
      subject
    };
  }
});
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
6

Canvas > + button > Search 'Slack' > Send Message to a Channel

Add the Slack action step

Click the '+' button below the code step and search for 'Slack'. Select the Slack app, then choose the action 'Send Message to a Channel'. This action posts a message to any public or private Slack channel your connected bot has access to. You'll map the message text from the previous code step's output.

  1. 1Click the '+' below the Node.js code step
  2. 2Type 'Slack' in the action search bar
  3. 3Click the Slack app tile
  4. 4Select 'Send Message to a Channel'
What you should see: A Slack action step appears with fields for 'Slack Account', 'Channel', and 'Message Text'.
7

Slack step > Slack Account > Connect new account > Slack OAuth

Connect your Slack workspace

Click the 'Slack Account' dropdown and select 'Connect a new account'. Pipedream opens a Slack OAuth window. Select the correct workspace from the dropdown in the top right of the Slack OAuth screen, then click 'Allow'. Pipedream installs a bot into your workspace. The bot — not you personally — will post messages, so Slack will show the sender as 'Pipedream' unless you customize the bot name.

  1. 1Click 'Slack Account' dropdown in the Slack step
  2. 2Select 'Connect a new account'
  3. 3In the Slack OAuth window, select the correct workspace
  4. 4Click 'Allow' to grant posting permissions
What you should see: The Slack Account dropdown shows your workspace name. The Channel field becomes active and shows a list of your Slack channels.
Common mistake — If you belong to multiple Slack workspaces, the OAuth window defaults to whichever workspace you most recently used in a browser tab. Double-check the workspace name in the top-right corner of the OAuth screen before clicking Allow — connecting the wrong workspace is a common mistake.
8

Slack step > Channel dropdown > Message Text field > Expression editor

Configure the channel and message text

In the 'Channel' field, select the Slack channel where ticket notifications should go — for example, #support-alerts or #help-scout-tickets. In the 'Message Text' field, click the expression toggle (the {curly brace} icon) and reference the output from your code step: steps.format_message.$return_value.formattedMessage. This pulls the formatted string built in Step 5 rather than raw JSON from the trigger.

  1. 1Click the 'Channel' dropdown and select your target channel
  2. 2Click into the 'Message Text' field
  3. 3Click the '{' expression toggle on the right side of the field
  4. 4Type or select steps.format_message.$return_value.formattedMessage
What you should see: The Message Text field shows the expression reference in blue text. The Channel field shows your chosen channel name.
Common mistake — The Pipedream Slack action's 'Channel' field accepts channel names like #support-alerts or channel IDs. If you rename a Slack channel after setting this up, the workflow will break because channel names change. Use the channel ID (starts with C followed by letters/numbers) in the expression field for production stability.
9

Workflow canvas > Test button (top bar)

Test the full workflow end to end

Click 'Test' at the top of the Pipedream workflow canvas to run all steps against the sample event from Step 4. Watch each step turn green in sequence — trigger, code, Slack action. Then check your Slack channel: the test message should arrive within 5 seconds. Verify the message shows the ticket subject, customer email, mailbox name, and clickable Help Scout link.

  1. 1Click the 'Test' button in the top bar of the workflow canvas
  2. 2Watch each step indicator turn green
  3. 3Open Slack and check your target channel
  4. 4Click the Help Scout link in the Slack message to confirm it opens the correct ticket
What you should see: A Slack message appears in your channel within 5 seconds containing the ticket subject, customer email, mailbox, and a working Help Scout link.
10

Workflow canvas > Deploy button (top right)

Deploy the workflow

Click the 'Deploy' button in the top right of the canvas. The workflow status changes from 'Development' to 'Active'. From this point, every new Help Scout conversation will trigger the workflow automatically — no manual action needed. Pipedream's infrastructure handles the webhook listener 24/7. You'll see each run logged under the workflow's 'Event History' tab.

  1. 1Click the blue 'Deploy' button in the top right
  2. 2Confirm the deployment in the dialog if prompted
  3. 3Check that the workflow status badge changes to 'Active'
What you should see: The workflow shows a green 'Active' status badge. The 'Event History' tab becomes available and will populate with live runs as new Help Scout tickets come in.
11

Help Scout > New Conversation > pipedream.com > Workflows > [Your Workflow] > Event History

Create a live test ticket in Help Scout

Go to your Help Scout inbox and create a real new conversation from a non-test email address. Wait 10–15 seconds, then check Slack. The notification should arrive in your configured channel. Check the Pipedream Event History tab to confirm a successful run is logged with green status on all steps. If anything is red, click the failed step to see the error output.

  1. 1Open Help Scout and create a new conversation with a realistic subject
  2. 2Wait 10–15 seconds
  3. 3Check your Slack channel for the notification
  4. 4Open Pipedream Event History and confirm the run shows all green steps
What you should see: A Slack notification arrives within 15 seconds. Pipedream Event History shows one completed run with green checkmarks on all three steps.

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 even a little technical comfort and wants control over the Slack message format. The killer reason: Pipedream's Node.js code step lets you shape the notification exactly — Slack Block Kit buttons, conditional channel routing by mailbox, timestamp formatting — without fighting a visual mapper. The webhook processing is genuinely instant, no polling interval to worry about. The one case where you'd pick something else: if your team is fully non-technical and needs a clickable UI to maintain the workflow themselves, Zapier's Help Scout + Slack integration sets up in under 10 minutes with zero code.

Cost

Cost is nearly free at normal support volumes. Pipedream's free tier includes 10,000 credits per month. This workflow costs 2 credits per run — 1 for the trigger, 1 for the Slack action. At 100 tickets per day (3,000/month), you burn 6,000 credits. At 200 tickets per day, you hit 12,000 credits and need the $19/month Basic plan. Compare that to Zapier: 3,000 tickets/month at 1 Zap run each = 3,000 tasks, which pushes you off the free tier (100 tasks) into their $19.99/month Starter plan (750 tasks max) and then up to $49/month for 2,000 tasks. For medium-volume teams, Pipedream is meaningfully cheaper.

Tradeoffs

Zapier's Help Scout integration is simpler to set up and has a polished Slack action with a message template UI — no code, done in 8 minutes. But you're stuck with whatever fields Zapier exposes; custom formatting requires Zapier's Code step, which brings you back to writing JavaScript anyway. Make has a better visual conditional router if you want to split notifications across multiple channels based on mailbox — its Router module is cleaner than Pipedream's branch logic for non-coders. n8n's Help Scout node supports more event types and gives you full JSON access to the payload, but you're hosting n8n yourself. Power Automate has no native Help Scout connector at all; you'd need a custom HTTP trigger, which is more work than this workflow justifies. Pipedream wins here on the combination of instant webhook handling, real Node.js code, and a hosted infrastructure you don't maintain.

Three things you'll hit after going live. First: Help Scout's webhook payload does not include conversation tags applied by automation rules — rules run after the webhook fires. If you need tags in your Slack message, you must make a follow-up Help Scout API call using the conversation ID to fetch the full conversation object. Second: if your Help Scout account is on the EU data region (hosted at secure.helpscout.net/eu/), the conversation URLs in the webhook payload differ from the standard US format — test with a real ticket and verify the link format before deploying. Third: Slack's Block Kit button elements require a text field under 75 characters. If your ticket subject exceeds that, the 'View Ticket' button renders fine but adjacent text gets truncated — truncate the subject to 60 characters in the code step with subject.substring(0, 60) + (subject.length > 60 ? '...' : '').

Ideas for what to build next

  • Route notifications by mailbox to different Slack channelsAdd a conditional branch in your code step that maps each Help Scout mailbox name (support@, billing@, sales@) to a different Slack channel ID. One workflow handles all mailboxes instead of maintaining three separate workflows.
  • Add a daily digest of unresolved ticketsCreate a second Pipedream workflow with a scheduled trigger (every morning at 9am) that calls the Help Scout API to fetch all open conversations older than 4 hours and posts a summary list to Slack — catches anything that slipped through without a response.
  • Write replies back to Help Scout from SlackUse Slack's interactivity API to add a 'Reply in Help Scout' button to the notification. When a rep clicks it, a Slack modal collects their response and a Pipedream workflow posts it as a Help Scout reply via the API — no tab switching needed.

Related guides

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