Skip to main content

Ideas portal FAQ

Find, vote on and share ideas for Freshworks products. Here is how it works and what happens next.

1. Idea stages and what they mean

Every idea has a status. It shows where the idea is today.

How does an idea move from submitted to delivered?
  1. Submitted
  2. Under review
  3. Planned
  4. In development
  5. Delivered

Not every idea makes it to the end. Some stay open for votes as Future consideration. Others are Closed.

You get an email each time the status of an idea you posted, voted on or subscribed to changes.

What does each status mean?
Submitted
We received the idea. It is open for votes and comments.
Under review
Product is looking at the idea.
Planned
The idea is on the roadmap. We have not started building it yet.
In development
Our teams are building it. We expect to release it within 12 months.
Delivered
The idea is live in the product.
Future consideration
We are not planning it now, but it stays open. Votes help us see if demand grows.
Closed
We are not taking this idea forward. See "Why was my idea closed?" below.
Does Planned mean a release date?

No. Planned means the idea is on the roadmap. Timing can change as priorities change. We update the status when work starts and when the idea ships.

2. The basics: from your idea to our answer

Six questions most people ask before they post.

What is an idea?

An idea is a request for a feature or improvement that is not in the product today.

Something broken? That is a bug. Please contact Support so they can help you.

Should I search before I post?

Yes. If a similar idea exists, vote and comment on it instead of adding a new one. Duplicate ideas split the votes, so no single idea shows how many people want it.

How do I submit an idea?
  1. Search. Choose Submit an idea and type a title. Similar ideas appear. Vote on one if it matches.
  2. Describe. Tell us the task you are trying to do and what gets in your way today.
  3. Add context. Pick the product area and tell us how much this affects your team. Add a screenshot if it helps.
  4. Submit. Your idea shows as Submitted.
How will I hear back?

You get an email when the status of your idea changes. To follow an idea you did not post, subscribe to it.

Why was my idea closed?

An idea can be closed for one of these reasons:

  • Merged. A similar idea exists. Your votes move to it.
  • Bug. It is something to fix, not a new request. Contact Support for help.
  • Retired. It no longer fits the product.
  • Already available. The product can do this today.
  • Not planned. We have no plans to build it.

Closed ideas stay searchable, so you can still read the comments.

3. Find ideas and share your thoughts

The quickest way to make an impact is to back an idea that already exists.

How do I find an existing idea?
  • Use the search bar on the Ideas page. Try two or three keywords.
  • Filter by product, so you only see ideas for the product you use.
  • Filter by status to see what is Planned or In development.
  • Sort by votes to see the most requested ideas first.
How do I vote on an idea?

Open the idea and select the vote button. Voting shows us which ideas matter to you. You need to be signed in to vote.

How do I add a comment?

Open the idea and add your comment. The most useful comments say:

  • What you are trying to do.
  • What stops you today.
  • How you work around it, if you do.

"I agree" helps less than a short example from your own work.

How do I follow an idea?

Select Subscribe on the idea. You get an email when the status changes or when someone replies.

I could not find my idea. What now?

Submit a new one. Use a clear title and describe the problem, not only the solution. Then we can see what you need, even if there is more than one way to solve it.

Have a bug or a question about how a feature works? Contact Support instead.

Ideas Status Pipeline

Filter by idea status

Filter by product

8951 Ideas

mbutler
Top Contributor ⭐
mbutlerTop Contributor ⭐

Last Login Date or Days Since Last Logon Needed for APIFuture Consideration

We are implementing the CIS Critical Controls within our environment – one of the aspects of that which we need to consider is FreshService.For our agents, we utilize SSo to control the aspect of agent logins – however, for requesters/contacts, they simply use a FreshService username/password that they have registered with.One of the CIS Critical Controls is to disable/delete accounts where 45 days of inactivity have occurred. However, after pulling a requester record from the API, I noticed that are zero fields associated with the last login or “Days since last login”. Instead, you only get the creation date/time and the last update date/time.Is there a way to also add “Last Login” to the output of the requester API call?"requester": { "active": true, "address": null, "background_information": null, "can_see_all_changes_from_associated_departments": false, "can_see_all_tickets_from_associated_departments": false, "created_at": "2024-04-09T12:45:59Z", "custom_fields": { "alternate_phone": null, "fax": null, "notes": null, "alerts": null, "active": null }, "department_ids": [], "department_names": null, "external_id": null, "first_name": "John", "has_logged_in": true, "id": ######86458, "is_agent": false, "job_title": null, "language": "en", "last_name": "Doe", "location_id": null, "location_name": null, "mobile_phone_number": null, "primary_email": "John.Doe@SomeCompany.com", "reporting_manager_id": null, "secondary_emails": [], "time_format": "24h", "time_zone": "Eastern Time (US & Canada)", "updated_at": "2024-04-09T12:52:45Z", "vip_user": false, "work_phone_number": null, "work_schedule_id": null }} 

Jason.Evans2
Contributor
Jason.Evans2Contributor

This is how to add Approval URL to API Bespoke Approval RequestsClosed

This is a quick how add Approval URL to API Bespoke Approval RequestsLike me, if you want to make a bespoke approval request via the API it says on the page https://api.freshservice.com/#create_ticket_approvalNote: "email_content" is an optional parameter for sending approval. If not provided, the default approval notification will be sent to approvers.Now it does not say much about how to add the “{{approval.portal_url}}” placeholder into your emails or approval requests via the API, which means when you send an email with a non standard “email_content” JSON it will not put this in automatically. However, a way has been found and I am posting it here so others do not get stuck scratching their heads for a day like me. I did this in PowerShell so convert to what ever language you are using. Convert this to how you wish. When hyperlinking, ensure you put an extra curly brackets on the placeholder for the ticket.$apiKey = "api_key:X"$headers = @{ "Content-Type" = "application/json"}$emailbodynote = @" <p>Dear {{ticket.requester.name}}</p> <p><b>Ticket: </b><a href=`"$({{{ticket.url}}})`">{{ticket.url}}</a></p> <p> This is an approval </p> <ul style="list-style-type:square;"> <li>Please click <span style="color: green;"><b>Approve</b></span> if you would like this call queue to be renewed.</li> <li>Please click <span style="color: red;"><b>Reject</b></span> if this call queue is no longer required.</li> </ul> <p>Please use the link below to Approve/Reject the request</p> <p><b>Approval Link:</b> | <a href=`"$({{{approval.portal_url}}})`">{{approval.portal_url}}</a></p> <p>Thanks Your Support Deptartment</p>"@# Approval Type ## $To_be_approved_by_Everyone = 1# $To_be_approved_by_Anyone = 2# $To_be_approved_by_Majority = 3$To_be_approved_by_First_Responder = 4$ownerIdOwner = 000000000001$body = @{ approver_id = $ownerIdOwner approval_type = $To_be_approved_by_First_Responder email_content = $emailbodynote} | ConvertTo-Json$test_ticket = 000001$myDomainURI = "https://domain.freshservice.com/api/v2/"$ApprovalURL = ( "{0}/tickets/{1}/approvals" -f $myDomainURI, $test_ticket )do { try { $response = Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body -Authentication Basic -Credential (New-Object System.Management.Automation.PSCredential("", (ConvertTo-SecureString $apiKey -AsPlainText -Force))) $success = $true } catch { if ($_.Exception.Response.StatusCode.Value__ -eq 429) { Write-Host "Received 429 Too Many Requests. Waiting for 60 seconds before retrying..." Start-Sleep -Seconds 60 $success = $false } else { throw $_ } }} while (-not $success)I hope this helps anyone trying to do this. 

This ideas board reflects customer feedback and our current thinking, and is provided for informational purposes only. Roadmap decisions, including AI-related capabilities, are influenced by many inputs beyond customer votes, such as technical feasibility, security, compliance, and market conditions. They are subject to change without notice. Idea status labels (such as “Under Review” or “Planned”) do not constitute a commitment, promise, or legal obligation to deliver any feature, functionality, or timeline, and are not part of any agreement with Freshworks. Development and release of any product or feature remain at Freshworks’ sole discretion.