티켓 양식 수정 시, 표준 필드관련 문의건 | Community
Skip to main content

티켓 양식 수정 시, 표준 필드관련 문의건

  • April 21, 2025
  • 3 replies
  • 0 views

woosung

안녕하세요.

 

티켓 양식을 생성하는 경우, 제가 필요한 필드에 대하여 사용자 커스텀 필드로 사용할 수 있는 것으로 알고있습니다.

이는 테마 코드 수정→script.js내에서  div.request_custom_fields_xxxxxxxxx를 통해 html코드 삽입이나 컨트롤 등이 가능합니다.

 

그러나 기본으로 제공하는 “설명” 필드나 “파일첨부” 필드의 경우 script를 이용하더라도 수정이 불가한 것으로 보이는데

해당 기본 제공 표준필드에대한 수정을 하기위해 어떤식으로 작업이 가능한지 문의드립니다.

 

ex 파일첨부 항목을 필수로 제한하여 파일첨부가되지않으면 문의제출이 불가능하도록 제어

ex 설명필드를 필수가 아니게 만들고 showing되지 않도록 변경

 

3 replies

Jihoon11
  • April 22, 2025

필수 요소를 필수요소가 아니게 하는 것은 불가능한 것으로 알고 있습니다.
다만 아래와 같이 우회하는 방법은 있습니다.

 

1) 설명 필드 값 자동 입력
2) 설명 필드 숨김
3) 별도의 사용자 필드를 여러 줄 속성으로 만들고 "설명"으로 이름 설정 (비 필수 필드로 생성)

 

위와 같이 하면 설명에 값이 있으므로 티켓은 등록되며, 요청자에게는 기본 설명 필드는 보이지 않습니다.

아래는 기본적인 예시입니다. 기존에 사용하던 소스를 긁어보아서 바닐라 코드와 jquery 코드가 혼재합니다만 알아보시는데 어려움은 없으실 것 같습니다.

 

$(document).ready(function() {
    $('.form-field.request_subject').hide(); // 제목 숨김
    $('.form-field.request_description').hide(); // 설명 숨김
    document.getElementById("request_description").value = '설명 내용 자동 입력.';
    $('#request_subject').val('제목 자동 입력'}}'); 
    $('#request_description').val('설명 자동 입력');      
}


또한, 필요하다면 좀 더 복잡하긴 하지만 자바스크립트를 이용해서 사용자 필드인 "설명" 필드의 값을 기본 필드인 "설명"에 자동으로 복사해주는 것도 가능합니다.
안돌려 봤지만 이런식으로 가능할 것 같네요.

    var 2nd_desc = document.getElementById("request_custom_fields_11111111111111111");
    document.getElementById("request_description").value = 2nd_desc.value;

첨부 파일 필드를 제어하는 방법은 생각해봤는데 기본적으로는 불가능하고, 만약 만들더라도 되게 지저분한 로직이 될 것 같습니다.


woosung
  • Author
  • April 23, 2025

답변 감사합니다.

 

한가지 더 추가적인 문의사항이 있습니다.

 

다양한 티켓 접수 양식이 존재하고 각각은 ticket_form_id를 통해 구분을 할 수 있습니다.

 

예를들어 기본제공하는 설명필드나 파일첨부(선택사항)의 레이블을  특정 ticket_form_id에서만 변경하는 동작이 있다고하면(ex 파일첨부(선택사항) → 파일첨부(필수))

신규문의를 작성할때 고객에게 보이는 항목은 파일첨부(필수) 일텐데, 만약 요청양식의 필수값을 입력하지 않은 채 submit 제출버튼을 누르는 경우, 화면양식은 그대로인데 에러문구와함께 url이 /request/new로 리다이렉트고 있습니다. 이렇게 되면 ticket_form_id를 특정해도 동작하도록 script.js를 설정했기때문에 다시 파일첨부(선택사항)으로 보이게 됩니다.

 

요약하자면

신규문의 작성 시, 고객은

/request/new?ticket_form_id=123456789 로 접근하여 "파일첨부(필수)" 라는 항목을 보지만,

필수값을 채우지못한채 제출을 누르는 순간

/request/new 로 url이 변경되면서 기본값인 파일첨부(선택사항) 으로 레이블이 보이는 증상입니다.

 

스크립트에서

 

var ticketForm = location.search.split('ticket_form_id=')[1];
if(ticketForm == 123456789) {

$('label[for=request-attachments]').html('파일첨부 <span style="color:#c00; font-weight:bold;">(필수)</span>'); 

}

 

이런식으로 제어를하였는데,

 

위와같은 문제를 회피하여 특정 ticketFrom양식에서 기본 시스템필드가 설정한 대로 동작하도록 할 수 있는 방안이 있을지 문의드립니다.

 


Jihoon11
  • April 24, 2025

https://support.zendesk.com/hc/en-us/community/posts/4409515169946-Requiring-a-ticket-attachment-if-a-particular-dropdown-option-is-selected?page=1&sort_by=created_at&sort_order=desc

 

위 포스트에서 몇년 째 논의가 되고 있는 내용이네요.

자세히 살펴보지는 않았지만 잘 돌아가던 스크립트가 돌아가지 않는 상황으로 보입니다.

작년 7월 쯤인가에… 크롬 업데이트가 되면서 DOM Mutation 이벤트를 다 제거해버린 일이 있었습니다.

그래서 그전까지 잘 돌던 수많은 Zendesk 관련 스크립트가 안돌던 상황이 되었습니다.

이후 MutationObserver를 이용해서 몇몇 기능은 해결했는데요. 아마 이 이슈는 해결을 못한 것 같습니다.

 

해결했던 사례는 아래 케이스 정도입니다.

 

티켓 필드에서 상황에 따라 옵션 숨기기 : 

https://support.zendesk.com/hc/en-us/community/posts/6101512122650-Hide-Specific-Dropdown-Values?page=1&sort_by=created_at&sort_order=desc

 

상황에 따라 티켓 양식 숨기기 : 

https://support.zendesk.com/hc/ko/community/posts/4409217680410-Hiding-a-ticket-form-on-the-submit-a-request-page?page=3&sort_by=created_at&sort_order=desc

 

https://support.zendesk.com/hc/en-us/community/posts/4409515169946-Requiring-a-ticket-attachment-if-a-particular-dropdown-option-is-selected?page=1&sort_by=created_at&sort_order=desc#community_comment_8368070213786

이게 코드인데요.

 

제가 이해한 바로는 

1) 체크 박스를 만들어 첨부 파일이 필수인 양식에 추가 

2) 첨부파일을 하나 이상 추가했을 경우 체크 → MutationObserver 사용

3) 체크 박스 숨기기

4) 체크가 되어 있으면 제출 가능

5) 체크가 안되어 있으면 오류 코드 반환 후 제출 불가

 

오류코드도 수정이 가능한 것으로 보이네요.

 

var attachmentErrorElt = $(attachmentCheckboxId + ' .notification-error');
if (attachmentErrorElt.length) {
  attachmentErrorElt.text('Attachments cannot be blank');
}

 

이 정도 인 거 같습니다.