Presenting ticket forms to end users



image avatar

Jennifer Rowe

Zendesk Documentation Team

Edited May 21, 2025


-6

74

76 comments

I have created a form and still have the same issue as Naresh mentioned a while ago:
 

Still, the end-users receiving sign-on page.  

FYI: I have not activated the helpcenter yet. Would that be the reason, why it would not work yet?

0


Is there a way to shorten the URL of a ticket form? Such as shortening it into something that is easy to verbalize to someone or easy to copy down. I handle a lot of phone call inquiries and would love to be able to tell someone a short form link over the phone!

0


Maybe I'm in the wrong place but I'll ask here anyways.

I want to be able to be able to drop a form to a user who I have a thread with in support.
How can I make that happen?

So Joe sends in an email, which I receive in support. Then I want them to fill in a repair request form which I've made. I want to send that through our support thread and when he submits the form I can move that data wherever I need. I would love to push it to get tags and add to a google sheet I have for repair.

0


Is there anyway to dynamically have only one form out of my seven forms available to a customer. Right now I am trying to hide the other seven forms, but hiding is not working. It only disables them. 

 

I followed this documentation here, but it is not working entirely:

 https://support.zendesk.com/hc/en-us/articles/4408886229146-Workflow-Hide-ticket-forms-based-on-a-user-s-organization

 

 

Some snippets from the code:

 

<!-- Include jQuery -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<div class="container-divider"></div>
<div class="container">

 <h3>
   Create a support ticket
   <span class="follow-up-hint">
     {{follow_up}}
   </span>
 </h3>
 
 <div id="user-tier" style="margin-bottom: 20px;">
   Loading user tier...
 </div>
 
 <div style="width: 100%;
   padding: 30px;
   background: #f7f7f9;
   border-radius: 6px;
   box-shadow: 0 1px 3px rgba(55, 60, 80, 0.05);">
   {{request_form wysiwyg=true}}
 </div>  
</div>

<script type="text/javascript">
 
 let avnzd = {};

 (function () {
   const req = new XMLHttpRequest();
   req.addEventListener("load", (e) => {
     try {
       if (req.status === 200 && req.response) {
         let res = JSON.parse(req.response);
         avnzd.tier = res.user.phone;
         avnzd.rdr = !window.location.search.match('rdr=no');

         // Display the user's tier in the HTML element
         document.getElementById('user-tier').innerText = `User Tier: ${avnzd.tier}`;
         
         // Now that avnzd.tier is available, handle the form removal based on the tier
         let formIDs = [];

         switch (avnzd.tier.toLowerCase()) {
           case 'basic':
             formIDs = [REDACTED];
             break;
           case 'priority':
             formIDs = [REDACTED];
             break;
           case 'business':
             formIDs = [REDACTED];
             break;
           case 'enterprise':
             formIDs = [REDACTED];
             break;
           case 'essential':
             formIDs = [REDACTED];
             break;
           case 'advanced':
             formIDs = [REDACTED];
             break;
           case 'premium':
             formIDs = [REDACTED];
             break;
           default:
             console.log("Tier not recognized");
             formIDs = [];
         }

         // Iterate over the array of form IDs and remove them from dropdowns
         formIDs.forEach(function(formID) {
           // Remove the form option with the specified value
           $('#request_issue_type_select option[value="' + formID + '"]').remove();

           // Remove the form ID from the nesty-panel when it's dynamically inserted
           $('.nesty-panel').on('DOMNodeInserted', function(e) {
             $(this).children('ul').children().remove('#' + formID);
 

           });
         });

       }
     } catch (error) {
       console.error('Error parsing response:', error);
       document.getElementById('user-tier').innerText = 'Failed to load user tier';
     }
   });
   req.open("GET", "https://" + window.location.host + "/api/v2/users/me", true);
   req.send();
 })();

</script>

0


Hi Andres, 
 
I'd like to take this into a ticket to discuss this further. I've opened a ticket on your behalf. Please check your email. 
 
Thank you. 

0


Gab I appreciate you taking the time but I don't think I'm presenting my question correctly - I DO NOT WANT TO EXPERT ANYTHING - I just want a way to have a form on my help center to collect information.

The problem is that when building the form I only see options to gather information about the TICKET, not the user, so I don't understand how to get user-specific information (name, address, email, phone etc) into Zendesk (just from help center form to Zendesk, no exporting anything) 

How can I collect information about the user that is about the user, not the specific ticket?

Thanks! 

0


Hi Andres, 
 
I'm afraid there is no export option available that is specifically catered to collecting user information from a specific form. That would be a great suggestion! 
 
Alternatively, you can use the JSON export option that will still show the ticket form used in a ticket using the attribute ticket_form_id. 
 
I encourage you to create a new post in the General Product Feedback topic in our community to engage with other users who have similar needs and discuss possible workarounds. Conversations with a high level of engagement ultimately get flagged for product managers to review when they go through roadmap planning.
 
Specific examples, details about impact, and how you currently handle things are helpful for our product teams to understand the full scope of the need when working on solutions. We truly value customer feedback and your voice and votes in the forums help influence future Zendesk functionality.
 

0


Is it possible to send specific form URL with out enabling the drop down arrow meaning that the customer won't be able to choose different form ?

 

0


Thanks Gab - I don't want to export anything. I want to make this form - https://help.totalsolarmaintenance.com/hc/en-us/requests/new?ticket_form_id=23559900962324 - so that I can collect the user information (name, email, phone, etc) when I build the form it looks like all the fields relate to the ticket not the user. 

0


Hi Andres, 
 
I'm afraid there's no specific export option that would allow you to export user-specific data from a ticket form. You can, however, export user data depending on the type of account you have, there are different options to perform a full-ticket data export.
  • If you are an admin and have access to native export options or an agent with a custom role that allows exporting data, you can do a JSON or full XML export. 
  • For accounts on any plan, utilize the API. To export tickets in bulk, use the API end-point of the incremental ticket events with comment_events in side-load.
 
For more information on exporting your data, see the article: Exporting data to a JSON, CSV, or XML file.

0


Sign in to leave a comment.