📍 Refresh 2026 — AI Service Transformation May 14, 2026 | Convene 30 Hudson Yards, New York City
Using Freshdesk
Recently active
Most enterprise help desk migrations run on standard shared infrastructure. It means multiple organizations, one common environment, data processed in a pool that your security team doesn't control. For enterprises without strict regulatory obligations, that's workable. For those that do, it's a non-starter.Private Cloud Help Desk Migration is built for enterprise teams operating under strict security policies, data residency mandates, or regulatory frameworks that shared infrastructure can't satisfy. If your legal, security, or compliance team needs to sign off on how and where your data is processed during a migration, standard tooling typically can't give them what they need .If your team is asking questions like "where exactly is our data processed during the transfer?" or "can we guarantee it doesn't leave a specific region?" — shared infrastructure doesn't have a satisfying answer. That's the gap Private Cloud Help Desk Migration exists to fill.What actually changes with Private
Not all your tickets need to migrate. Filtering lets you move only what matters.Most teams migrate everything by default. Then they spend days after go-live cleaning up resolved tickets from three years ago, closed spam, and test records that never should have moved. Data filtering during migration prevents that.It lets you define exactly which tickets transfer to Freshdesk or Freshservice. Less data means faster migration, a cleaner target system, and less noise for agents from day one.Why filtering mattersMoving all your data sounds safe. It isn't always. Here's what unfiltered migrations lead to:Agents waste time in a cluttered system full of outdated or irrelevant tickets Reporting gets skewed by historical data that no longer reflects current performance Migration takes longer, increasing the window of risk Storage costs in the new system grow from day oneFiltering gives you a cleaner starting point.One important thing to understand firstThe filters available during migration depe
Hi Freshworks Community!Your help desk migration has a blind spot. Every ticket is updated as the data transfers.Businesses lost $3 billion globally in 2025 from poor customer experiences. A migration that drops active tickets contributes directly to that number.The standard approach: freeze ticket activity, move the data, resume work. Tickets still arrive during that window. Agents can't respond. A backlog forms fast, and when migration finishes, updates get missed, conversations get crossed, and SLAs break.Delta migration solves this. It captures every ticket created or updated after your full data migration began, and transfers them to the target system. Your team keeps working on the source the entire time.Why Delta migration matters for live support teamsIt's the right fit when:Ticket volume is high — even a short freeze creates a backlog Your team spans time zones — there's no clean window to pause global support SLA commitments are strict — paused activity triggers escalations f
Moving to Freshdesk or Freshservice? Preserve ticket structure, workflows, and automation with accurate data mapping. Your new system runs like your old one—no downtime, no broken processes.Why data mapping mattersProper mapping is crucial for a smooth help desk migration. It ensures data lands correctly, preserving ticket structure and workflows. Key benefits:Protects ticket context, history, and attachments Maintains workflows and automation Keeps required fields accurate Reduces errors in ticket handling Preserves reporting and SLA trackingWhat can be mapped?Field mapping is available for:Freshdesk: tickets, customers (contacts), organizations Freshservice: incidents, problems, changes, customers, organizationsYou can map both default fields and custom fields.Understanding default, system, and custom fieldsFields in Freshdesk and Freshservice fall into three categories:System FieldsExamples: Subject, Tags, Organization, Group, CC, Assignee, Contact, Comments, Created date, Updated d
Hello, I can aceess https://domain.freshservice.com/api/v2/tickets/{ticket_id}, but I can't access https://domain.freshservice.com/api/v2/tickets/{ticket_id}/csat_response. I get:Failed to retrieve ticket: 403{"code":"access_denied","message":"You are not authorized to perform this action."}The account from which I'm using the API key has all the roles and permissions. Thank you!
Hi Freshworks Community, Teams that have already migrated to Freshworks often say the result was positive—but only after learning a few important lessons along the way. Based on real migration experience, companies most often recommend:Spending extra time on data mapping to clearly define what the end result should look like. Cleaning up source data before migration—fixing 50 or 100 tickets in advance is far easier than correcting issues across 60,000 later. Running multiple test migrations to validate different scenarios and confirm all data is transferred as expected. Using an automated migration tool to make the Full Migration as seamless as possible. Coordinating with the Freshworks team during the migration to simplify onboarding and avoid configuration gaps. Even the best migration tools can only do so much if expectations and workflows aren’t clearly defined upfront. Feel free to vote and share your experience—your feedback can help others plan a smoother Freshworks migration.
Hello everyone! I’m new here and just getting started with development in Freshworks. Right now, I’m trying to create my first app. I’m attempting to get a list of agents via the API, but something is going wrong. I’m getting a console error about an unregistered function. Even though I’m doing everything according to the documentation. If anyone knows what might be the issue, please let me know. manifest.json{ "platform-version": "3.0", "modules": { "common": { "location": { "full_page_app": { "url": "index.html", "icon": "styles/images/icon.svg" } }, "requests": { "getAgents": {} } }, "support_ticket": {} }, "engines": { "node": "18.20.8", "fdk": "9.7.4" }, "app": { "tracking_id": "aixfa4rlutw791e3iubp" }}requests.json{ "getAgents": { "schema": { "protocol": "https", "method": "GET", "host": "<%= iparam.domain %>.freshdesk.com", "path": "/api
Hi,I’ve created a feedback widget.I’ve added the related code to the footer connecting a button with a JS listener and it’s correctly opening a ticket.I’ve tried to pre-fill the most of the filed ( native and custom ) following the documentation:https://developers.freshdesk.com/widget-api/But the filed are not auto filled.I’m sharing the code, could you please confirm that the structure in correct ( we can asume that the maping is correct ) : <script> window.fwSettings = { 'widget_id': 103000008811 }; !function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}();</script><script type='text/javascript' src='https://euc-widget.freshworks.com/widgets/103000008811.js' async defer></script><script> document.getElementById('feedback-btn').addEventListener('click', function() { FreshworksWidget('on', 'widget:loaded', function() { FreshworksWidget('prefill', 'ticketForm', {
Hi,I realize this question is better posted to the FreshservicePS Slack channel, but I haven’t received a response in that forum so I’m trying my luck here.I’m using the FreshservicePS PowerShell module and have a question regarding the data retrieved with Get-FreshServiceTicket. I have a ticket that was created from a Service Catalog form, and when I view the SR in the WebUI the form data is visible but it is not retrieved with Get-FreshServiceTicket.How do I retrieve this data using powershell or via the API directly?Thanks!
Hello Freshdesk Support Team, We are experiencing a limitation with the Freshdesk API v2 that is impacting our integration and reporting capabilities. Issue Summary: We cannot access thread conversations (Private Threads, Forward Threads, Discussion Threads) that exist within ticket notes via the API, even though these threads are visible and functional in the Freshdesk web interface. Current Situation: What Works: We can successfully retrieve main conversations using: GET /api/v2/tickets/[id]/conversations We can see private notes and public notes - The web interface shows all threads correctly What's Missing: Thread conversations nested within notes are not returned by the conversations endpoint - Multiple replies within a Private Thread appear as a single note in the API response We lose the thread hierarchy and individual messages within threads Technical Details: 1. API Endpoint Being Used: - GET /api/v2/tickets/[ticket_id]/conversations 2. Expected Behavior: AP
I’m making requests to bring ticket data and I’ve included the stats. However, I noticed that in some requests the first_responded_at field has a date before created_atExample: "created_at": "2025-08-04T21:17:28Z", "updated_at": "2025-08-29T14:40:53Z", "associated_tickets_count": null, "tags": [ "PROD02221-594" ], "stats": { "agent_responded_at": "2025-08-06T20:43:38Z", "requester_responded_at": "2025-08-06T19:47:42Z", "first_responded_at": "2024-12-02T21:53:47Z", "status_updated_at": "2025-08-11T15:30:51Z", "reopened_at": null, "resolved_at": null, "closed_at": null, "pending_since": null What could be causing this?
I am attempting to set up a Webhook Freshdesk automation to PUT ticket data into my CRM. I need the company_ID in the data but cannot get anything to come through with the other fields.I have tried all of the following:{{ticket.contact.company_id}} {{ticket.contact.companyid}} {{ticket.company.id}}} {ticket.company_id}} {{company_id}} {{ticket.contact.department_id}}None of these returns any value at all. What is the correct tag for pushing the ID of the company?
🙏Mods, please move this ticket if I didn’t put it in the right place! Thanks!Based on the API documentation found here: https://api.freshservice.com/#create_child_service_requestNote 1:Association of child Service Request to a deleted or a spammed ticket is not allowed.Note 2:Nesting of a child Service Request under another child Service Request is not supported. I should be able to use this endpoint, passing in a parent ticket id of a Resolved ticket. But doing so results in the following error: "code":"invalid_id","message":"There is no record matching the id: 1337" Please either update your documentation or change this behavior.SOLUTION: The way I got around the issue is by reopening the parent ticket and trying again.
In my FreshService Sandbox that I am working in trying to do some automation we have some fields as shown in the pic I want to be able to download these attachments, but I cannot find a way through the API to access these, These are attached when the ticket is created and need to be in these specific fields.I can access the text in the field without issue, via API, but not the attachments. Is there even a way to do this via the API? I have tried everything I can think of without success.
Adding this to this particluar forum even though this is for Freshservice and not Freshdesk. There doesn’t appear to be an API subforum for API in Freshservice?But anyway, I’m trying to update old tickets with summarized resolutions notes via API (yes, without Freddy) but haven’t had any success. Has anyone had luck using API to update Resolution Notes in a ticket? In Freshservice’ defense I don’t see any documentation about using the API in this way. But I was hoping it’d be a simple matter of generating a body/json that looks like: { “ticket”: { “resolution_notes” : In order to fix this we had to use this 3 step guide”, “resolution_notes_html” : <div dir="ltr">In order to fix this, we had to use this 3 step guide."</div> }}The error I’m getting back indicates that it’s not an expected field saying “Validadtion failed” and listing the “resolution_notes” I’ve tried with bypass mandatory and without. Am I overlooking something simple in th
When using the following endpoint, pagination works> Invoke-RestMethod -Method GET -Headers $headers -Uri ($uri + "/tickets?$fsUpdatedSince&per_page=100&include=stats,tags") -ResponseHeadersVariable 'ticketsResponseHeader'> $ticketsResponseHeaderKey Value--- -----Date {Tue, 08 Jul 2025 05:43:06 GMT}Transfer-Encoding {chunked}Connection {keep-alive}status {200 OK}x-freshservice-api-version {latest=v2; requested=v2}Link {<https://xxxxxxxx.freshservice.com/api/v2/tickets?updated_since=2025-06-01T10:40:21Z&per_page=100&include=stats,tags&page=2>; rel="next"} However when using the /tickets/filter endpoint, the responseheader does not include the link attribute, so the built in functionality of Powershell 7 Invoke-RestMethod, FollowRelLink does not work. It would seem to be a bug? $in
We’re using Zapier API calls to get the requester name and email address from the user ID, but when the object is returned everything is correct except for the email address it returns. The address has the domain removed and a :censored:xx:xxxxxx.com address. The receiving service will not take that format as a valid email address. Why is this being returned incorrectly and is there a setting in FS that can change this?
Hi community,I'm trying to create a contact using the Freshsales CRM API, but I'm receiving the following error response: jsonCopyEdit{ "success": false, "message": "Freshsales API Error (400): Please add a valid account" } Here is the sample payload I am sending: jsonCopyEdit{ "contact": { "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "mobile_number": "1234567890", "sales_account_id": 202002197374 } } I'm setting the sales_account_id to an existing account ID (confirmed from the Freshsales UI and API), but still getting this error. What I've Checked: The account ID 202002197374 does exist in my Freshsales instance. I can fetch the account details successfully via the /api/sales_accounts/[id] endpoint. The contact payload structure seems valid per Freshsales API docs. The API key and domain are correctly configured, and other endpoints are working. Tried using both string and number format for sales_account_id.
I created an automation to create a new freshdesk ticket my ticket is closed.I have a required dynamic ticket field with Level 1 and Level 2 values. However, some of my Level 1 do not have a Level 2 set up. "custom_fields": { "cf_product_selection": "{{ticket.cf_product_selection}}", "cf_functional_area": "{{ticket.cf_functional_area}}", } My webhook is failing "field":"custom_fields.cf_functional_area","message":"It should not be set, as input is not expected" I tried "cf_functional_area": "{{ticket.cf_functional_area || ''}}" but it’s still not working. how can I have it check if the ticket has this field and exclude it from my json?
Hello, Our FreshService is interfaced with other software that sends responses or notes and can change the status of tickets using the API. To do this I created an API Key from my profile and provided it to our service provider.The problem is that all the actions carried out on the API appear in the interface in my name, whereas they are carried out in the other software. So I have two questions:Is it possible to have an API Key that isn't linked to a user account?If not, how can I ensure that it's not my name but the name of the other software that appears on the actions carried out by it via the API? Thank youHave a nice day
Hello, I am trying to search for tickets where a specific field is not empty or null. How do you express the NOT operator within a filter? For example, find all tickets where a custom field is not null? I have tried the following format ?query="cf_csat:!null""
How can I download or get the attachments of a thread message by using API? The following endpoints return the attachment ids of the attachments in the thread but do not return a download link for the attachmentshttps://developers.freshdesk.com/api/#get_message_for_thread https://developers.freshdesk.com/api/#create_a_thread Thanks
Hello! I would appreciate it if anyone can help. Followed instructions to install Intune app but I get this error:It asks for Azure Client ID and Azure Secret Name. I am assuming I need to create a registered app in EntraID? If so, I have done that and tried Client ID and secret ID but that didn’t work.
Buen día,Tengo problemas de conexión con mis cuentas de Freshdesk y Freshchat. No consigo que funcionen correctamente ni sincronizar mis contactos.Ya me he puesto en contacto con otro soporte, pero ninguna de las soluciones ofrecidas ha sido funcional.Quedo atento a vuestro apoyo.Atentamente.
I have an API which successfully extracts all FreshService tickets and inserts them into a SQL database table.I now need an extra column which is located on requested_items. I tried to access this data with an API call for each ticket. This worked but blew out the daily maximum API calls when I tried to process thousands of tickets.api/v2/tickets/'+str(row["id"])+'/requested_itemsSo I am now trying to extract all requested_items for a time period and insert then in a SQL database table. Later, in the reporting layer, these tables can be joined to show all requested_items for a set of tickets.Can you please tell me how to code the API to extract all requested_items for a time period?Does this endpoint exist?something like : api/v2/requested_items ??
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.