How to bulk update more than 300 Freshdesk tickets
You need to set one field (status, priority, group, agent or a custom field) on every ticket that matches a filter, and there are hundreds or thousands of them. This guide explains where the limits are and three ways to make the change safely.
Where the limits are
- Search stops at 300 results. The Freshdesk ticket search API (
/api/v2/search/tickets) returns at most 10 pages of 30 tickets for one query. A filter that matches more tickets looks smaller than it is unless you split it. - Every call counts against your per-minute API limit. Freshdesk returns
X-RateLimit-Remainingwith each response, and the integrations you already run share the same budget. - A bulk update runs in the background.
/api/v2/tickets/bulk_updateaccepts a list of ticket IDs and returns a job. The job finishing does not by itself tell you which tickets actually changed.
Option 1: the ticket list, for small sets
For a few dozen tickets, select them in the ticket list and use the bulk actions there. It is quick and needs nothing extra. For larger sets you work page by page, and afterwards you have no single file showing each ticket's old and new value.
Option 2: a script against the API
- Split the date range (for example on the created date) until each window returns fewer than 300 results, and collect the ticket IDs from every window.
- Read the current value of the field for each ticket, so you can audit or undo the change.
- Send the IDs to
/api/v2/tickets/bulk_updatein batches, pacing byX-RateLimit-Remaining. - Wait for each job, then read the tickets back and record which ones changed.
This works, but it is a small project of its own: date splitting, pacing, retries and an audit file.
Option 3: Saved Bulk Actions (free)
Saved Bulk Actions is our free Freshdesk app. It does option 2 for you, inside Freshdesk:
- It splits the date range automatically, and reports any window it cannot split instead of returning a short list.
- It shows how many tickets match, then runs a dry run with the current and proposed value for sampled tickets.
- It writes only after you type EXECUTE, in batches paced by your account's rate-limit headers.
- It checks every ticket's outcome and gives you an audit CSV with ticket ID, previous value, new value, outcome and time.
View Saved Bulk Actions on the Freshworks Marketplace Read the documentation
Before any bulk change
- Run a dry run on a sample and check the proposed values.
- Check that the field accepts the new value: choice lists, required fields and field permissions.
- If other integrations use the API, run the change outside your busiest hours.
- Keep the audit file. It is the quickest answer to "what changed, and when?"
Questions about this guide: support@atesensoftware.com.