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

How to Send Help Scout Ticket Assignments to Slack with Power Automate

Polls Help Scout for newly assigned tickets and posts a direct Slack message to the assigned team member with ticket details.

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

Best for

Microsoft 365 teams who already pay for Power Automate and want ticket assignment alerts in Slack without adding another tool.

Not ideal for

Teams that need sub-60-second notification latency — Power Automate polls Help Scout, so expect 1-5 minute delays.

Sync type

scheduled

Use case type

notification

Real-World Example

💡

A 12-person customer support team at a B2B SaaS company routes Help Scout tickets by product area. Before this flow, agents refreshed Help Scout every 20-30 minutes to check for new assignments and tickets sat untouched for up to an hour. After setup, each agent gets a Slack DM within 3 minutes of assignment, including the customer name, subject line, and a direct 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 Power Automate

Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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 API access enabled and at least one active mailbox with assigned conversations
Power Automate license that includes premium connectors — the Help Scout connector is a premium connector and requires a per-user or per-flow plan
Slack workspace admin access to install or authorize the Power Automate Slack app with the 'users:read.email' and 'chat:write' OAuth scopes
All Help Scout agents must have Slack accounts registered under the same email address used in Help Scout — mismatched emails break the user lookup
Help Scout user credentials (email and password) with access to the mailboxes you want to monitor — SSO-only accounts cannot authenticate the Power Automate connector

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Ticket Subjectsubject
Conversation IDid
Assignee Emailassignee.email
Assigned At TimestampassignedAt
Conversation Statusstatus
3 optional fields▸ show
Assignee First Nameassignee.first
Customer NameprimaryCustomer.first
Mailbox NamemailboxId

Step-by-Step Setup

1

make.powerautomate.com > My flows > + New flow > Scheduled cloud flow

Create a new Automated cloud flow in Power Automate

Go to make.powerautomate.com and sign in. In the left sidebar, click 'My flows', then click '+ New flow' at the top. Select 'Scheduled cloud flow' from the dropdown — you'll use a recurrence trigger to poll Help Scout on an interval since Help Scout's Power Automate connector does not support instant webhook triggers. Name the flow something like 'Help Scout Ticket Assignment to Slack'.

  1. 1Click 'My flows' in the left sidebar
  2. 2Click '+ New flow' at the top of the page
  3. 3Select 'Scheduled cloud flow' from the dropdown menu
  4. 4Enter a flow name: 'Help Scout Ticket Assignment to Slack'
  5. 5Set the recurrence to every 5 minutes, then click 'Create'
What you should see: You should land in the flow designer canvas with a blue 'Recurrence' trigger card already placed at the top.
Common mistake — Do not select 'Automated cloud flow' — Help Scout has no real-time event trigger in the Power Automate connector. Scheduled is the correct flow type here.
2

Flow designer > + New step > Search: Help Scout > List conversations

Connect your Help Scout account

Click '+ New step' below the Recurrence trigger. In the action search bar, type 'Help Scout' and select the Help Scout connector. Choose the action 'List conversations'. A 'Sign in' prompt will appear — click it to authenticate with your Help Scout credentials. Power Automate stores this as a named Connection you can reuse across flows.

  1. 1Click '+ New step' under the Recurrence trigger card
  2. 2Type 'Help Scout' in the search bar
  3. 3Select the 'Help Scout' connector from the results
  4. 4Choose 'List conversations' as the action
  5. 5Click 'Sign in' and enter your Help Scout email and password
What you should see: The Help Scout action card expands to show filter fields and displays your account name in the connection dropdown at the top of the card.
Common mistake — The Help Scout connector authenticates with a username and password, not an API key. If your organization uses SSO, you'll need a local Help Scout account with direct login credentials to connect.
Power Automate settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Power Automate
popup window
Connected
green checkmark
3

Flow designer > List conversations card > Status / Assigned / Sort field

Filter conversations to assigned status

Inside the 'List conversations' action card, set the 'Status' field to 'active' and set 'Assigned' to 'true'. These filters narrow results to conversations that have been assigned to a team member. You'll also want to set 'Sort field' to 'createdAt' and 'Sort order' to 'desc' so the most recently assigned tickets appear first in the response.

  1. 1In the 'Status' dropdown, select 'active'
  2. 2Set 'Assigned' to 'true'
  3. 3Set 'Sort field' to 'createdAt'
  4. 4Set 'Sort order' to 'desc'
  5. 5Leave 'Page' and 'Page size' at defaults (page 1, size 25)
What you should see: The action card shows your four configured parameters. No errors or red fields should be visible.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
Slack
SL
trigger
filter
Status
matches criteria?
yes — passes through
no — skipped
Help Scout
HE
notified
4

Flow designer > + New step > Data Operation > Filter array

Add a Filter array step to catch only recently assigned tickets

The List conversations action returns up to 25 conversations — many of which were assigned in previous polling cycles. Add a 'Filter array' action (found under 'Data Operation') to isolate tickets assigned in the last 5 minutes. This prevents duplicate Slack notifications from firing on old assignments every time the flow runs.

  1. 1Click '+ New step'
  2. 2Search for 'Filter array' and select it under 'Data Operation'
  3. 3In the 'From' field, select the dynamic content 'value' from the List conversations output
  4. 4In the left condition field, select 'assignedAt' from dynamic content
  5. 5Set the operator to 'is greater than' and enter the expression: addMinutes(utcNow(), -5)
What you should see: The Filter array card shows 'assignedAt' on the left, 'is greater than' as the operator, and the addMinutes expression on the right. No expression errors shown.
Common mistake — The 'assignedAt' field in Help Scout's API reflects the most recent assignment time. If a ticket is reassigned, this filter will fire again for the same ticket — you'd need a separate deduplication table to suppress that. For most teams, reassignment notifications are actually wanted, so this is acceptable behavior.
5

Flow designer > + New step > Control > Apply to each

Add an Apply to each loop over filtered tickets

Because multiple tickets may be assigned within the 5-minute window, you need to loop over each result and send a Slack message per ticket. Add an 'Apply to each' action and point it at the 'Body' output of the Filter array step. All remaining steps go inside this loop.

  1. 1Click '+ New step'
  2. 2Search for 'Apply to each' under 'Control'
  3. 3In the 'Select an output from previous steps' field, pick 'Body' from the Filter array output
  4. 4Confirm the loop card expands with an '+ Add an action' button inside it
What you should see: An 'Apply to each' card appears with a loop boundary. The 'Body' from Filter array is shown as the selected input inside the header of the card.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
6

Flow designer > Apply to each > + Add an action > Data Operation > Parse JSON

Extract the assignee's email using a Parse JSON action

Help Scout's List conversations response nests assignee details inside a 'assignee' object. Add a 'Parse JSON' action inside the Apply to each loop to cleanly extract the assignee's email, first name, and last name. You'll use this email to look up the Slack user in the next step. Generate the schema by clicking 'Generate from sample' and pasting a sample Help Scout conversation object.

  1. 1Inside the Apply to each loop, click '+ Add an action'
  2. 2Search for 'Parse JSON' and select it under 'Data Operation'
  3. 3In the 'Content' field, select the current item from dynamic content (the loop item)
  4. 4Click 'Generate from sample' and paste a sample Help Scout conversation JSON object
  5. 5Click 'Done' to auto-generate the schema
What you should see: The Parse JSON card shows a populated JSON schema with fields including 'id', 'subject', 'assignee', and 'status' visible in the schema preview.
Common mistake — If you skip Parse JSON and try to use dynamic content directly from the loop item, Power Automate will only show top-level fields. Nested fields like assignee.email won't appear in the dynamic content picker without parsing first.
7

Flow designer > Apply to each > + Add an action > Slack > Look up a user by email

Look up the Slack user by email

Add a Slack action inside the loop to resolve the assignee's Help Scout email to a Slack user ID. Search for the Slack connector and select 'Look up a user by email'. Pass the 'email' field from the Parse JSON output. This returns the Slack user ID (e.g., U012AB3CD) needed to send a direct message — you cannot DM someone using just their email address.

  1. 1Inside the Apply to each loop, click '+ Add an action'
  2. 2Search for 'Slack' in the connector search bar
  3. 3Select 'Look up a user by email' from the Slack action list
  4. 4Sign in to your Slack workspace when prompted — select the correct workspace from the dropdown
  5. 5In the 'Email' field, insert the 'email' dynamic content from the Parse JSON output
What you should see: The Slack action card shows your workspace name in the connection field and the 'email' dynamic token populated in the Email input field.
Common mistake — The Slack connector requires the 'users:read.email' OAuth scope. If your Slack app was installed without this scope, the lookup will return a 403 error. You'll need to reinstall the app with the correct scope from your Slack admin settings.
8

Flow designer > Apply to each > + Add an action > Control > Condition

Add a Condition to handle unmatched Slack users

The user lookup will fail silently if no Slack account matches the Help Scout email — the flow won't error, but the next step will try to DM a null user ID. Add a 'Condition' action to check whether the 'User ID' from the lookup step is not empty before proceeding. Put the Slack DM action in the 'Yes' branch and a fallback (or nothing) in the 'No' branch.

  1. 1Inside the Apply to each loop, click '+ Add an action'
  2. 2Search for 'Condition' under 'Control' and add it
  3. 3In the left field of the condition, select 'User ID' from the Slack lookup dynamic content
  4. 4Set the operator to 'is not equal to'
  5. 5Leave the right field blank (empty string)
What you should see: A Condition card appears with 'Yes' and 'No' branches. The 'User ID' token is visible in the left condition field.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
9

Flow designer > Apply to each > Condition > Yes branch > + Add an action > Slack > Send a direct message

Send the Slack direct message in the Yes branch

Inside the 'Yes' branch of the Condition, add the Slack action 'Send a direct message'. Set the 'User Name or ID' to the 'User ID' from the lookup step. Write the message text using a mix of static text and dynamic content fields from Parse JSON: ticket subject, ticket ID, assignee first name, and the Help Scout conversation URL. Keep the message short — one line of context plus the link.

  1. 1In the 'Yes' branch, click '+ Add an action'
  2. 2Search for 'Slack' and select 'Send a direct message'
  3. 3In 'User Name or ID', insert the 'User ID' dynamic token from the Slack lookup step
  4. 4In the 'Message Text' field, type: 'Hi [firstName], you've been assigned ticket #[id]: "[subject]". View it here: https://secure.helpscout.net/conversation/[id]'
  5. 5Replace bracketed placeholders with the matching dynamic content tokens from Parse JSON
What you should see: The message preview in the action card shows a mix of static text and orange dynamic content tokens. The 'User Name or ID' field shows the User ID token, not a hardcoded value.
Common mistake — Help Scout's API returns the conversation ID as an integer, not a full URL. Manually construct the URL as 'https://secure.helpscout.net/conversation/' concatenated with the ID token. Do not paste a hardcoded ticket URL — it will always point to the same ticket.
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
10

Flow designer > Save > Test > Manually > Run flow

Save and test the flow

Click 'Save' in the top right of the flow designer. Once saved, click 'Test' and select 'Manually' to trigger an immediate run. Assign a Help Scout ticket to a team member who has a matching Slack account, then click 'Run flow'. Watch the flow run detail page — each step shows green checkmarks on success or red X marks with error detail on failure.

  1. 1Click 'Save' in the top right corner
  2. 2Click 'Test' next to the Save button
  3. 3Select 'Manually' when asked how to trigger the test
  4. 4Assign a real Help Scout ticket to a team member before clicking 'Run flow'
  5. 5Click 'Run flow' and watch the run detail expand step by step
What you should see: Each action card shows a green checkmark and expandable input/output JSON. The assigned team member receives a Slack DM within 30 seconds of the test run completing.
Power Automate
▶ Test flow
executed
Slack
Help Scout
Help Scout
🔔 notification
received
11

make.powerautomate.com > My flows > [Flow name] > 28-day run history

Enable the flow and verify the recurrence schedule

After a successful test, your flow is already turned on — the recurrence will fire automatically every 5 minutes from this point forward. Go to 'My flows', find your flow, and confirm the status shows 'On'. Click into the flow detail page and check the '28-day run history' panel to verify the first scheduled run completed without errors.

  1. 1Navigate to 'My flows' in the left sidebar
  2. 2Locate 'Help Scout Ticket Assignment to Slack' in your flow list
  3. 3Confirm the status toggle shows 'On'
  4. 4Click the flow name to open the detail page
  5. 5Check the '28-day run history' section and confirm runs show as 'Succeeded'
What you should see: The flow detail page shows a green 'On' status badge and at least one 'Succeeded' entry in the run history within the first 10 minutes.
Common mistake — Power Automate scheduled flows can silently pause if they fail more than a certain number of consecutive times. Set up an email alert under 'Settings' in the flow detail page so you're notified if the flow is turned off automatically.

This expression goes in the Filter array condition's right-hand value field. It dynamically calculates the cutoff timestamp based on your recurrence interval, so you don't have to hardcode a fixed time. Paste it into the 'Enter custom value' box after clicking the expression editor (fx icon) in the Filter array condition.

JavaScript — Code Step// Power Automate expression for Filter array condition right-hand value
▸ Show code
// Power Automate expression for Filter array condition right-hand value
// Paste into the expression editor (fx) for the 'is greater than' condition
addMinutes(utcNow(), -5)

... expand to see full code

// Power Automate expression for Filter array condition right-hand value
// Paste into the expression editor (fx) for the 'is greater than' condition

addMinutes(utcNow(), -5)

// Full condition reads:
// assignedAt [is greater than] addMinutes(utcNow(), -5)

// To make the window match your recurrence interval exactly, change -5 to
// match whatever interval you set on the Recurrence trigger.
// Example for 3-minute polling:
// addMinutes(utcNow(), -3)

// Bonus: format the assignedAt field for display in the Slack message
formatDateTime(items('Apply_to_each')?['assignedAt'], 'h:mm tt')
// Output example: 10:32 AM

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 Power Automate for this if your team already pays for Microsoft 365 E3/E5 or a Power Automate per-user plan. The Help Scout connector exists, the Slack connector exists, and your IT department probably already manages both connections centrally. If your team has no Microsoft licensing and isn't already in the Power Automate ecosystem, pay $9/month for Make instead — you'll spend less time fighting premium connector paywalls.

Cost

Real cost math: this flow runs every 5 minutes, which is 288 runs per day and roughly 8,640 runs per month. Power Automate counts each action inside a run separately — you have 5-6 actions per run, so that's around 51,840 action executions per month. The per-user plan includes 40,000 non-premium actions and 500 premium connector actions per month. Help Scout and Slack are both premium here, so you'll blow through the premium action allotment fast on a busy team. A per-flow plan at $100/month removes those caps for this single flow. Make handles the same workflow for free under 1,000 operations/month, or $9/month up to 10,000. For small teams, Make is cheaper by $91-$106/month.

Tradeoffs

Honest comparison: Make has a native HTTP module that can hit Help Scout's API directly using an API key, bypassing the connector authentication problem entirely — no SSO issues, no password-based auth. Zapier's Help Scout trigger fires on 'New Conversation' and 'Conversation Assigned' as distinct events, meaning you don't need to build a polling filter at all; it's a cleaner setup in about 10 minutes. n8n's Help Scout node supports webhook-style triggers in self-hosted setups, getting you closer to real-time. Pipedream has a Help Scout source that uses webhooks natively — notifications arrive in under 30 seconds versus Power Automate's 5-minute lag. Power Automate wins if Microsoft governance, SSO policy, and centralized connection management matter more than cost or latency.

Three things you'll hit after go-live: first, the Help Scout 'assignedAt' field occasionally returns null for tickets that were auto-assigned by a workflow rule rather than manually assigned — your Filter array will silently discard these. Add a null check in the condition or log them to a SharePoint list for review. Second, Slack's 'Look up a user by email' action returns a 200 response even when no user is found — it just returns an empty object instead of an error. That's why the Condition step is non-optional; without it, Power Automate will try to DM an empty string and fail at the last step. Third, Power Automate scheduled flows that consistently return zero results don't generate errors — they show as 'Succeeded' in run history. Build a simple counter action that logs zero-result runs somewhere visible, or you won't know if the filter broke and you've been missing assignments for three days.

Ideas for what to build next

  • Add a fallback channel notification for unmatched usersIn the 'No' branch of the Condition step, post a message to a shared Slack channel like #support-ops when no Slack user is found for an assignee email. This prevents silent failures and gives a team lead visibility to manually reassign.
  • Include ticket priority in the Slack messageHelp Scout tags conversations with custom fields — pull the priority tag from the 'tags' array in the API response and prepend an emoji to the Slack message (🔴 for urgent, 🟡 for high) so agents can triage at a glance without opening the ticket.
  • Build a daily digest instead of per-ticket DMsChange the recurrence to once per day at 9am, remove the 5-minute filter, and group all tickets assigned to each agent in the last 24 hours into a single Slack message. This reduces notification noise for high-volume teams while maintaining accountability.

Related guides

Was this guide helpful?
Slack + Help Scout overviewPower Automate profile →