

How to Send Help Scout Ticket Updates to Slack with Pipedream
Fires a Slack message to a channel of your choice within seconds of a Help Scout ticket being closed, reopened, or reassigned.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Support teams of 5-50 people who need their Slack channels updated instantly when Help Scout ticket statuses change without manually checking the inbox.
Not ideal for
Teams that need two-way sync — this only pushes Help Scout events into Slack, not the reverse.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person SaaS support team routes all ticket status changes into a #support-ops Slack channel. Before this workflow, the team lead checked Help Scout every 30-45 minutes to see which tickets were closed or reassigned. Now, every agent sees a Slack message within 5 seconds of a status change, including the ticket subject, assignee name, and a direct link to Help Scout.
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 | ||
| Ticket ID | eventObject.id | |
| Ticket Subject | eventObject.subject | |
| Ticket Status | eventObject.status | |
| Event Type | eventObject.type | |
| Ticket URL | ||
| Slack Channel | ||
4 optional fields▸ show
| Assignee First Name | eventObject.assignee.firstName |
| Assignee Last Name | eventObject.assignee.lastName |
| Mailbox ID | eventObject.mailboxId |
| Customer Email | eventObject.primaryCustomer.email |
Step-by-Step Setup
pipedream.com > Workflows > New Workflow
Create a new Pipedream workflow
Go to pipedream.com and click 'New Workflow' in the top-right corner. You'll land on a blank canvas with a trigger slot at the top. Give your workflow a name like 'Help Scout → Slack Status Updates' so it's easy to find later. Pipedream saves drafts automatically, so you can leave and return without losing progress.
- 1Log in to pipedream.com
- 2Click 'New Workflow' in the top-right
- 3Click the workflow title field and rename it to 'Help Scout → Slack Status Updates'
- 4Click 'Save' or press Enter to confirm the name
Workflow Canvas > Add a trigger > Help Scout > New Conversation Event (Instant)
Add the Help Scout webhook trigger
Click the 'Add a trigger' box at the top of the canvas. Search for 'Help Scout' in the app search field and select it. Choose the trigger type 'New Conversation Event (Instant)' — this fires on status changes including closed, reopened, and assigned. Pipedream will generate a unique webhook URL that you'll paste into Help Scout in the next step.
- 1Click 'Add a trigger'
- 2Type 'Help Scout' in the search box
- 3Select 'Help Scout' from the results
- 4Choose 'New Conversation Event (Instant)' as the trigger
- 5Click 'Connect Help Scout' and authenticate with your Help Scout account
Help Scout > Mailbox Settings > Integrations > Webhooks > Add Webhook
Register the webhook URL in Help Scout
Copy the webhook URL Pipedream generated in the previous step. Open Help Scout in a new tab, go to your Mailbox Settings, then navigate to 'Integrations' and select 'Webhooks'. Click 'Add Webhook', paste the Pipedream URL into the URL field, and check the events: 'Conversation Status Changed', 'Conversation Assigned', and 'Conversation Unassigned'. Save the webhook.
- 1In Help Scout, click your mailbox name in the left sidebar
- 2Go to Settings > Integrations > Webhooks
- 3Click 'Add Webhook'
- 4Paste the Pipedream webhook URL into the Endpoint URL field
- 5Check 'Conversation Status Changed', 'Conversation Assigned', and 'Conversation Unassigned'
- 6Click 'Save'
Workflow Canvas > Trigger Step > Event Inspector
Test the trigger and inspect the payload
Back in Pipedream, click 'Generate Test Event' or manually change a ticket status in Help Scout to fire a real webhook. Pipedream will capture the payload and show you the raw JSON in the trigger step. Expand the event object to see fields like status, conversation.id, conversation.subject, assignee.firstName, and conversation.mailboxId. These are the fields you'll use in your Slack message.
- 1Click 'Test trigger' in the Pipedream trigger panel
- 2Open Help Scout and change a test ticket status to 'Closed'
- 3Return to Pipedream and watch for the incoming event in the inspector
- 4Click the event to expand the full JSON payload
- 5Note the field paths for status, subject, assignee, and ticket URL
eventObject.status, eventObject.subject, and eventObject.assignee.Workflow Canvas > + > Run Node.js code
Add a Node.js code step to filter status events
Click the '+' button below the trigger to add a new step. Select 'Run Node.js code'. This step filters the webhook payload so only the status changes you care about (closed, active, pending) proceed. If the event doesn't match your target statuses, the step calls $.flow.exit() to stop the workflow without consuming additional credits. Paste the filter code from the Pro Tip section below.
- 1Click the '+' button below the trigger step
- 2Select 'Run Node.js code' from the step options
- 3Click into the code editor
- 4Paste the filter and formatting code
- 5Click 'Test' to verify the step runs without errors on your test event
Paste this into the Node.js code step (Step 5 in this guide) — it filters unwanted event types, formats a readable status label, constructs the Help Scout URL, and exports a ready-to-use message string for the Slack step. Place it as the first step after the trigger.
JavaScript — Code Stepexport default defineComponent({▸ Show code
export default defineComponent({
async run({ steps, $ }) {
const event = steps.trigger.event;... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const event = steps.trigger.event;
const obj = event.eventObject;
// Only process status-related events
const allowedTypes = [
'convo-status-changed',
'convo-assigned',
'convo-unassigned'
];
if (!allowedTypes.includes(obj.type)) {
$.flow.exit(`Skipping event type: ${obj.type}`);
}
// Map raw status to human-readable label with emoji
const statusLabels = {
closed: '✅ Closed',
active: '🔄 Reopened',
pending: '⏳ Pending',
spam: '🚫 Marked as Spam'
};
const statusLabel = statusLabels[obj.status] || obj.status;
// Safely resolve assignee name
const assignee = obj.assignee
? `${obj.assignee.firstName} ${obj.assignee.lastName}`.trim()
: 'Unassigned';
// Build direct Help Scout URL
const ticketUrl = `https://secure.helpscout.net/conversation/${obj.id}`;
// Build the Slack message string
const message = [
`*${statusLabel}* — ${obj.subject}`,
`Assignee: ${assignee}`,
`Customer: ${obj.primaryCustomer?.email || 'Unknown'}`,
`<${ticketUrl}|View in Help Scout>`
].join('\n');
return {
statusLabel,
assignee,
ticketUrl,
subject: obj.subject,
message
};
}
});Workflow Canvas > + > Slack > Send Message to a Channel
Add the Slack step and connect your account
Click '+' below the code step. Search for 'Slack' and select it. Choose the action 'Send Message to a Channel'. Click 'Connect Slack' and authenticate with the Slack workspace where you want notifications posted. You'll need to grant Pipedream permission to post to channels — this uses Slack's OAuth flow and takes about 30 seconds.
- 1Click the '+' button below the Node.js code step
- 2Search for 'Slack' in the app search field
- 3Select 'Send Message to a Channel'
- 4Click 'Connect Slack'
- 5Authorize Pipedream in the Slack OAuth popup
- 6Select your workspace and click 'Allow'
Workflow Canvas > Slack Step > Configuration Panel
Configure the Slack message fields
In the Slack step configuration, set the Channel field to your target channel (e.g., #support-ops). In the Message Text field, reference the output from your Node.js step using Pipedream's expression syntax. You can reference steps.nodejs.$return_value.message to pull the pre-formatted message string built in the code step. Optionally, enable 'Send as blocks' and use the Block Kit JSON also exported from the code step for richer formatting.
- 1Click the 'Channel' field and type or select your target Slack channel
- 2Click the 'Message Text' field
- 3Click the '{}' expression icon or type '{{' to open the variable picker
- 4Navigate to 'steps' > your Node.js step name > 'return_value' > 'message'
- 5Optionally toggle 'Use Block Kit' and paste the block JSON from your code step output
{{steps.filter_and_format.$return_value.message}} and the channel is set to your target Slack channel.Workflow Canvas > Test workflow button (top toolbar)
Test the full workflow end-to-end
Click 'Test workflow' at the top of the canvas. This runs every step in sequence using the captured test event. Watch each step turn green as it completes. Check your Slack channel — you should see the test notification appear within 5 seconds. If you see a yellow or red step indicator, click that step to expand the error log.
- 1Click 'Test workflow' in the top toolbar
- 2Watch each step indicator — green means success, red means error
- 3Open your target Slack channel and confirm the message arrived
- 4Click any failed step to read the error details
- 5If the Slack step fails, verify the channel name includes the # prefix
Workflow Canvas > Deploy button (top-right)
Deploy the workflow
Click the 'Deploy' button in the top-right corner of the canvas. Pipedream switches the workflow from draft mode to active. The webhook URL registered in Help Scout is now live. From this point, every matching status change in Help Scout will trigger a Slack notification in real time — typically within 2-5 seconds of the event.
- 1Click the blue 'Deploy' button in the top-right
- 2Confirm the deployment in the dialog if prompted
- 3Wait for the status indicator to switch from 'Draft' to 'Active'
- 4Change a real ticket status in Help Scout to confirm the live workflow fires
pipedream.com > Workflows > [Your Workflow] > Events tab
Monitor runs in the event inspector
In Pipedream, click on your workflow name to open it, then click the 'Logs' or 'Events' tab to see every run. Each row shows the trigger timestamp, run duration, and pass/fail status. Click any run to inspect the data at each step — this is your first stop when a notification stops showing up in Slack. Pipedream retains logs for 30 days on the free tier.
- 1Navigate to pipedream.com > Workflows
- 2Click your workflow name
- 3Click the 'Events' tab
- 4Click any event row to expand the step-by-step run log
- 5Check the output of each step to trace where data transformation happened
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 at least one person comfortable reading Node.js, you want webhook processing in under 3 seconds, or you need conditional logic that no-code tools handle poorly — like different Slack channels per mailbox. If your team is entirely non-technical and will never touch code, Zapier's Help Scout + Slack Zap gets this done in 10 minutes without writing a line.
Pipedream's free tier gives you 10,000 credits per month. This workflow uses roughly 2 credits per run — 1 for the webhook trigger, 1 for the Slack step. At 200 ticket status changes per day (a reasonable volume for a 10-person support team), that's 400 credits/day or about 12,000/month — just over the free tier. The $19/month Basic plan gives you 100,000 credits, which covers roughly 1,600 ticket events per day. Zapier charges $49/month for the same volume. Pipedream is cheaper by $30/month once you cross the free tier.
Zapier has a pre-built Help Scout trigger called 'New Conversation' that's zero config — faster to set up if you don't need filtering. Make gives you better visual branching for routing to multiple Slack channels based on mailbox or status. n8n lets you self-host, which matters if your support data is sensitive and you don't want it touching third-party servers. Power Automate has no native Help Scout connector, so you'd need a custom HTTP action — more pain than it's worth. Pipedream wins here because the Node.js step lets you handle Help Scout's inconsistent payload structure (assignee sometimes null, event types not always predictable) with actual code instead of fragile UI-based conditionals.
Three things you'll hit after setup. First, Help Scout's webhook payload structure differs slightly between event types — a convo-assigned event includes an assignee object, but a convo-status-changed event may not, even if the ticket has an assignee. Always null-check. Second, if you register the webhook URL and then redeploy your Pipedream workflow for any reason, the URL stays the same — but if you delete and recreate the trigger, you get a new URL and must update Help Scout. Third, Pipedream's free tier log retention is 30 days. If a Slack message stops firing and you don't check the event log within a month, the failed run data is gone and you'll be debugging blind.
Ideas for what to build next
- →Route notifications to different channels by mailbox — Add a switch statement in the Node.js code step that maps Help Scout mailbox IDs to specific Slack channels — e.g., billing tickets go to #billing-support, tech issues go to #tech-support.
- →Add a daily digest of closed tickets — Build a second Pipedream workflow on a scheduled trigger that queries the Help Scout API each morning and posts a summary count of tickets closed, reopened, and pending in the last 24 hours.
- →Trigger a Help Scout reply from Slack — Use Slack's slash command or a message shortcut to post a reply back to the Help Scout ticket directly from Slack, creating a lightweight two-way loop without leaving the channel.
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