Automate Zendesk Unassigned Ticket Alerts to Slack

Struggling to keep up with unassigned Zendesk tickets? This workflow automatically fetches unassigned tickets and posts them as detailed messages in Slack, helping teams stay on top of pending work without manual checking.
zendesk
slack
manualTrigger
+2
Learn how to Build this Workflow with AI:
Workflow Identifier: 1531
NODES in Use: Manual Trigger, Cron, Zendesk, Function, Slack

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Sarah, a busy customer support manager at a growing e-commerce company. Every afternoon by 4:30 PM, Sarah needs to review all unassigned tickets in their Zendesk system to ensure no customer requests go unnoticed. Manual checks are tedious, take her at least 30 minutes each day, and sometimes tickets slip through the cracks leading to delayed responses and frustrated customers. Sarah wonders if there’s a way to automate these reminders so her team can immediately see the tickets that need attention, without wasting time digging through Zendesk.

Her pain is real: wasting 30 minutes daily adds up to over 2 hours a week of manual work, and missed tickets risk customer satisfaction and potential revenue loss. She needs a simple, reliable alert that delivers fresh, actionable ticket information right where her team communicates — Slack.

2. What This Automation Does ⚙️

This n8n workflow automates the process of gathering all unassigned Zendesk tickets and posts a neatly formatted alert to a specific Slack channel every day at 4:30 PM. Here’s what happens when the workflow runs:

  • Automatically triggers at 4:30 PM daily (using Cron) or on manual execution.
  • Queries Zendesk for all tickets that are unassigned and not pending.
  • Generates a formatted Slack message listing ticket IDs, statuses, and subjects with clickable links to the Zendesk agent interface.
  • Posts the message to your chosen Slack channel to notify the support team instantly.
  • Helps catch unassigned tickets early, reducing response delays and improving customer satisfaction.
  • Saves over 2 hours weekly by eliminating manual ticket checks.

3. Prerequisites ⚙️

  • Zendesk account with API access for ticket data retrieval 🔐
  • Slack workspace with a channel ready for alerts and Slack API credentials 🔐 📢
  • n8n automation platform account (cloud or self-hosted) 🔧
    • Optional: Self-host n8n for free automation runs using services like Hostinger

4. Step-by-Step Guide

Step 1: Start Your Workflow with a Manual Trigger or Schedule Cron

Open n8n and add a Manual Trigger node named “On clicking ‘execute'”. This allows ad-hoc runs for testing or urgent checks. Then add a Cron node configured to trigger at 16:30 (4:30 PM) daily for automatic scheduling. Connect both triggers to the Zendesk node to start the data fetching process.

Navigation: Click “+” → Search “Manual Trigger” and “Cron” → Configure Cron to 16:30 → Connect to Zendesk node.

Outcome: You can now manually run or have automated daily execution.

Common mistake: Forgetting to set cron time to your timezone or leaving manual trigger disconnected.

Step 2: Configure the Zendesk Node to Retrieve Unassigned Tickets

Add the Zendesk node and authenticate using your Zendesk API credentials. Set the operation to “Get All” tickets and add a query parameter that filters tickets where assignee:none and status. This ensures you only fetch tickets that are unassigned and active.

Navigation: Add Zendesk node → Select credentials → Set operation "getAll" → Use query string: assignee:none status

Expected screen: Confirm node returns JSON data with tickets when run.

Common mistake: Not using the correct query string can lead to empty results or too many tickets.

Step 3: Format the Slack Message Using the Function Node

Add a Function node that transforms the Zendesk ticket data into a human-readable Slack message. The code loops through ticket data and builds a list that includes clickable ticket URLs formatted to open in the Zendesk agent interface, ticket ID, status, and subject.

Function code snippet (JavaScript):

// Create our Slack message
let message = "*Unassigned Tickets*nn";
for (item of items) {
  message += "*<" + item.json.url.replace("api/v2","agent").replace(".json","") + "|" + item.json.id + ">* [" + item.json.status.toUpperCase() + "] - " + item.json.subject + "n"; 
}
return [{json: {message}}];

Effect: Generates clean message text ready for Slack posting.

Common mistake: Altering URL formatting incorrectly will break ticket link functionality.

Step 4: Post the Message to Slack

Add the Slack node and connect it to the Function node. Input your Slack API credentials and choose the target channel (e.g., "jarvis-test"). Set the text field to {{$json["message"]}} to receive the formatted message.

Navigation: Add Slack node → Authenticate → Select channel → Set text to {{$json["message"]}}.

Expected Outcome: When executed, your Slack channel receives a clear list of unassigned Zendesk tickets ready to be assigned.

Common mistake: Incorrect Slack credentials or channel names cause message failures.

5. Customizations ✏️

  • Change Ticket Filter: In the Zendesk node, modify the query to include tickets by priority or specific tags, e.g., assignee:none priority:high to alert only on high-priority unassigned tickets.
  • Adjust Message Timing: Edit the Cron node to run at multiple times per day or during peak ticketing hours to keep your team continuously updated.
  • Add More Ticket Details: Enhance the Function node code to also include ticket creation dates or requester names for more context.
  • Notify a Different Slack Channel: Change the channel field in the Slack node to send alerts to specific teams or managers based on ticket types.

6. Troubleshooting 🔧

Problem: "Zendesk node returns no tickets"
Cause: Query filter is incorrect or no unassigned tickets exist.
Solution: Verify the Zendesk query syntax, run the query manually in Zendesk API explorer, and ensure tickets matching criteria exist.

Problem: "Slack node fails to post messages"
Cause: Invalid or expired Slack API credentials or incorrect channel name.
Solution: Reauthenticate Slack in n8n, double-check channel names, and use public channels or invite bots if necessary.

7. Pre-Production Checklist ✅

  • Confirm Zendesk API credentials have sufficient permissions to read tickets.
  • Test Zendesk node independently to ensure it retrieves expected tickets.
  • Run the Function node with sample data to validate message format.
  • Verify Slack credentials and post a test message manually from the node.
  • Test manual trigger and Cron schedule runs for expected execution.

8. Deployment Guide

Activate your workflow in n8n by toggling the "Active" switch. It will now run automatically every day at 4:30 PM. Use manual trigger for occasional on-demand checks.

Monitor executions in the n8n dashboard for successful Slack postings. Set up alerting if any node failures occur to maintain ticket visibility.

9. FAQs

Q: Can I notify multiple Slack channels?
A: Yes, duplicate the Slack node and configure different channels, or use conditional logic nodes to route messages.

Q: Does this consume Zendesk API call limits?
A: Yes, each run makes API calls to Zendesk to fetch tickets. Schedule frequency accordingly.

Q: Is the ticket list updated in real time?
A: This workflow runs on schedule or manually, so the ticket list reflects the moment of execution, not live updates.

10. Conclusion

By building and deploying this n8n workflow, Sarah can now automatically get a daily digest of all unassigned Zendesk tickets posted neatly to her team’s Slack channel. This automation saves her roughly 2+ hours weekly in manual ticket checks, keeps her support team more responsive, and improves customer service quality.

Next, consider expanding this workflow with automated ticket assignments, Slack reminders for overdue tickets, or integrating other customer support tools for a unified helpdesk automation.

Take control of your support workflow and let n8n do the heavy lifting to keep your customer happiness high!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free