🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Zendesk + Pipedrive: tickets assigned to the right owner

Lisa Granqvist Partner Workflow Automation Expert

Your support inbox fills up, a ticket comes in from a customer, and then the guessing game starts. Who owns this account? Who should reply? And why does it always take three internal pings to figure it out?

This is where Zendesk Pipedrive routing hits hardest for Support Leads, but Sales Ops and small agency teams feel it too. You get clean ownership in minutes, not a messy handoff that drags into tomorrow.

This workflow checks for new Zendesk tickets every few minutes, finds the matching contact in Pipedrive, and assigns the ticket to the right owner automatically. You’ll see what it does, what you need, and how to avoid the common pitfalls.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Zendesk + Pipedrive: tickets assigned to the right owner

The Problem: Tickets get stuck in ownership limbo

A customer emails support about billing, contract terms, or “we need to upgrade.” Support sees the ticket, but they don’t know who owns the account. Sales knows the owner, but they’re in Pipedrive all day, not Zendesk. So the ticket sits unassigned, or worse, it gets assigned to the wrong person and the customer repeats themselves. Multiply that by a handful of tickets per day and it becomes a steady leak: slower first replies, more internal noise, and that vague feeling that your tools aren’t actually connected.

It adds up fast. Here’s where it breaks down in real teams.

  • Unassigned tickets linger because nobody wants to “grab” an account they don’t own.
  • Support pings Sales for ownership details, which turns one ticket into a mini project.
  • Tickets get routed based on guesswork, and customers notice the inconsistency.
  • When ownership changes in the CRM, Zendesk doesn’t magically learn that on its own.

The Solution: Auto-assign Zendesk tickets based on Pipedrive ownership

This n8n workflow acts like a bridge between Zendesk and Pipedrive. Every five minutes, it checks Zendesk for tickets that arrived since the last run, then pulls the requester details (especially the email). With that email, it searches Pipedrive for the matching contact. If it finds one, it looks up the contact’s owner in Pipedrive and maps that owner back to the right Zendesk agent. Then it updates the ticket assignee so the “real” owner sees it immediately. If no matching contact is found, the workflow doesn’t silently fail. It adds a note to the ticket so your team knows why it wasn’t routed.

The workflow starts on a schedule and keeps its own “last run” timestamp so it only processes new tickets. It merges ticket data with requester details, enriches it with Pipedrive ownership, and finishes by assigning the ticket (or logging a clear note when it can’t). Clean in, clean out.

What You Get: Automation vs. Results

Example: What This Looks Like

Say your team gets 20 Zendesk tickets a day that need a sales-owner handoff. Manually, even 5 minutes per ticket to look up the requester in Pipedrive, find the owner, then reassign in Zendesk is about 100 minutes daily. With this workflow, routing happens on the 5-minute schedule: the “work” is basically zero minutes after setup, plus a quick glance at the occasional “contact not found” note. That’s roughly an hour or two back every week, and it usually feels bigger because it removes constant interruptions.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Zendesk to read tickets and update assignees.
  • Pipedrive to find contacts and their owners.
  • Pipedrive API token (get it from Pipedrive personal preferences).

Skill level: Intermediate. You’ll mostly connect accounts, map a few fields, and sanity-check identity matching (emails, owners, agents).

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A scheduled check kicks everything off. A Cron trigger runs every 5 minutes, then the workflow loads the last successful run time so it only considers newly received Zendesk tickets.

Ticket and requester data get stitched together. Zendesk provides the ticket list and requester details, and n8n keeps only the useful bits (requester email and ID) before merging them into one “ticket context.”

Pipedrive becomes the source of truth for ownership. The workflow searches Pipedrive by requester email, then calls the API to fetch the owner information for that contact. Separately, it pulls Zendesk agents/admins so it can match an owner email to a real Zendesk assignee.

Zendesk gets updated (or annotated) automatically. If a contact match exists, the ticket assignee is changed to the correct owner. If not, a note is added so the exception is visible, then the workflow stores the new “last run” timestamp.

You can easily modify the matching logic (email, domain, org rules) to fit your process. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled Trigger

Set the workflow to run on a fixed interval to process newly created tickets.

  1. Add and open Scheduled Trigger 5 Min.
  2. Set Trigger Times to Every X minutes with Value set to 5.
  3. Connect Scheduled Trigger 5 Min to Fetch Last Run Time.

Step 2: Connect Zendesk and Pipedrive Services

This workflow relies on Zendesk tickets and Pipedrive contacts/owners. Configure credentials for all service nodes.

  1. Open Retrieve Recent Tickets and set Operation to getAll.
  2. Set Query to =created>{{ $json["lastExecution"] }}, Sort By to updated_at, and Sort Order to desc.
  3. Credential Required: Connect your zendeskApi credentials to Retrieve Recent Tickets, Fetch Requester Details, Utility: Fetch Agents/Admins, Update Ticket Assignee, and Log Missing Contact Note.
  4. Credential Required: Connect your pipedriveApi credentials to Locate Pipedrive Contact and Fetch Pipedrive Owner.

Connect Zendesk credentials across all Zendesk nodes (5 total) to avoid partial authentication failures.

Step 3: Track Run Times and Pull Recent Tickets

Use static data to store the last execution time and only process new tickets.

  1. In Fetch Last Run Time, keep the Function Code that sets item.executionTimeStamp and item.lastExecution.
  2. Connect Fetch Last Run Time to Retrieve Recent Tickets.
  3. In Store Latest Run Time, keep the Function Code that sets staticData.lastExecution = $item(0).$node["Fetch Last Run Time"].executionTimeStamp.

Step 4: Build the Requester + Ticket Merge (Parallel Branches)

Retrieve requester details and merge with ticket data to enable email-based matching.

  1. In Fetch Requester Details, set Resource to user, Operation to get, and ID to ={{ $json["requester_id"] }}.
  2. In Select Requester Fields, enable Keep Only Set and map requester_id to ={{ $json["id"] }} and requester_email to ={{ $json["email"] }}.
  3. In Merge Ticket + Requester, set Mode to mergeByKey with Property Name 1 and Property Name 2 set to requester_id.
  4. Retrieve Recent Tickets outputs to both Merge Ticket + Requester and Fetch Requester Details in parallel.
  5. Merge Ticket + Requester outputs to both Locate Pipedrive Contact and Merge Owner Into Ticket in parallel.

⚠️ Common Pitfall: If requester IDs don’t align between the ticket data and requester data, Merge Ticket + Requester will return empty results. Confirm requester_id is present in both streams.

Step 5: Match Pipedrive Owner to Zendesk Agents

This section finds the Pipedrive owner by requester email and aligns that owner to a Zendesk agent.

  1. In Locate Pipedrive Contact, set Resource to person, Operation to search, Term to ={{ $json["requester_email"] }}, and Additional Fields → Fields to email.
  2. In Fetch Pipedrive Owner, set URL to =https://n8n.pipedrive.com/api/v1/users/{{$json["owner"]["id"]}} and keep Authentication as predefinedCredentialType with nodeCredentialType set to pipedriveApi.
  3. In Extract Owner Emails, enable Keep Only Set and set requester_pipedrive_email to ={{ $node["Locate Pipedrive Contact"].json["primary_email"] }} and requester_pipedrive_owner_email to ={{ $json["data"].email }}.
  4. In Utility: Fetch Agents/Admins, set Resource to user, Operation to getAll, Return All to true, and filter Role to agent and admin.
  5. In Utility: Select Agent Fields, enable Keep Only Set and set agent_email to ={{ $json["email"] }} and agent_id to ={{ $json["id"] }}.
  6. In Combine Agent With Contact, set Mode to mergeByKey with Property Name 1 as requester_pipedrive_owner_email and Property Name 2 as agent_email.
  7. In Merge Owner Into Ticket, set Mode to mergeByKey with Property Name 1 as requester_email and Property Name 2 as requester_pipedrive_email.

Ensure Zendesk agent emails match Pipedrive owner emails exactly, or the merge in Combine Agent With Contact will fail.

Step 6: Route Ticket Assignment and Log Missing Contacts

Use a conditional check to determine whether to assign the ticket or log a missing contact note.

  1. In Verify Contact Presence, set the condition to String with Value 1 as ={{ $json["agent_id"] }} and Operation as isNotEmpty.
  2. In the true branch, configure Update Ticket Assignee with ID ={{ $json["id"] }}, Operation update, and Assignee Email ={{$json["requester_pipedrive_owner_email"]}}.
  3. In the false branch, configure Log Missing Contact Note with ID ={{ $json["id"] }}, Operation update, and Internal Note Requester not found in Pipedrive.
  4. Connect both Update Ticket Assignee and Log Missing Contact Note to Store Latest Run Time.

Step 7: Test and Activate Your Workflow

Run the workflow manually to validate ticket retrieval, owner matching, and assignment updates.

  1. Click Execute Workflow to run a manual test from Scheduled Trigger 5 Min.
  2. Confirm that Retrieve Recent Tickets returns tickets created after the stored timestamp, and that requester details are merged correctly.
  3. Verify that Update Ticket Assignee updates tickets with a matching agent email, and Log Missing Contact Note logs for unmatched contacts.
  4. Once verified, toggle Active to enable the workflow for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Zendesk credentials can expire or need specific permissions. If things break, check your n8n Zendesk credential connection and Zendesk API access settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Pipedrive owner lookups can fail when the contact email doesn’t match exactly. Frankly, one alias or shared inbox can derail routing, so standardize emails or add a fallback rule.

Frequently Asked Questions

How long does it take to set up this Zendesk Pipedrive routing automation?

About 30–60 minutes if your Zendesk and Pipedrive accounts are ready.

Do I need coding skills to automate Zendesk Pipedrive routing?

No. You’ll connect accounts and map a few fields in n8n.

Is n8n free to use for this Zendesk Pipedrive routing workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also want to factor in any Zendesk or Pipedrive plan limits tied to API usage.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Zendesk Pipedrive routing workflow for different assignment rules?

Yes, and it’s usually a small change. You can adjust the “Locate Pipedrive Contact” search to match by domain or organization, then update the “Verify Contact Presence” condition to add a fallback assignee. Common tweaks include routing VIP domains to a specific agent, assigning by Pipedrive organization owner instead of contact owner, and logging missing matches to a Google Sheet for cleanup.

Why is my Zendesk connection failing in this workflow?

Usually it’s expired or revoked API access, so re-check the Zendesk credentials saved in n8n and confirm the account still has permission to read tickets and update assignees. Another common issue is using a different Zendesk user than the one that originally authorized the integration. This workflow is also picky about identity matching; if emails differ between Zendesk requester and Pipedrive contact, it can look like a “failure” when it’s really a “no match.”

How many tickets can this Zendesk Pipedrive routing automation handle?

On n8n Cloud, it depends on your execution allowance, but many small teams fit comfortably on the Starter tier. If you self-host, there’s no execution limit beyond your server capacity, so volume is mostly about Zendesk/Pipedrive API limits and how many tickets arrive each run. Practically, teams process dozens to a few hundred tickets per day without thinking about it, as long as the matching rules are solid.

Is this Zendesk Pipedrive routing automation better than using Zapier or Make?

Often, yes, because this workflow has branching logic, merges, and “last run” state tracking that you’d end up rebuilding in a more expensive way elsewhere. n8n also lets you self-host, which is a big deal if you expect volume and don’t want every ticket to feel like a meter running. Zapier or Make can still be fine if your routing rule is dead simple (one lookup, one update). But once you need to merge requester details, map owners to agents, and log exceptions cleanly, n8n is usually the calmer choice. Talk to an automation expert if you want a quick gut-check before you commit.

Once ticket ownership is automatic, your team stops babysitting the queue. Set it up, let it run, and spend your attention on customers instead of internal routing.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal