---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# 채팅에 라이브 에이전트가상 에이전트 컨텍스트 변수 전달

# 채팅에 라이브 에이전트가상 에이전트 컨텍스트 변수 전달 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 5분

매개변수를 전달하여 채팅 세션을 시작할 때 채팅 컨텍스트 변수를 contextData 전달할 수 있습니다.
함수를 사용하여 이 값을 전달할 수 있습니다.[NowChatService - startChat(contextData: \[String: Any\]? = nil, _ completion: @escaping (결과\<무효, NowChatServiceError\>) -\> 무효)](5XJfDslkXA8gI11IJxOMQg#NChatServ-startChat_O "채팅 세션을 시작하고 채팅 세션이 시작된 후 완성 블록을 실행합니다.")

채팅 컨텍스트 변수에 대한 자세한 내용은 다음 문서를 참조하십시오 [Live agent chat context variables](https://www.servicenow.com/docs/access?context=live-agent-chat-context-vars&version=australia&pubname=australia-conversational-interfaces&ft:locale=en-US).

또한 채팅 세션을 시작할 때 선택적 NowChatConfiguration 매개변수를 전달하여 NowChat의 일부 동작을 수정할 수도 있습니다.  
* closePrompt: 채팅 창을 종료하기 전에 나타나는 프롬프트 텍스트입니다. 다음 매개변수를 통해 이 프롬프트 텍스트를 정의합니다.
  * header: 프롬프트 헤더에 나타나는 nullable 문자열 값입니다.
  * message: 프롬프트의 본문에 나타나는 문자열 값입니다.
  * acceptButtonTitle: 프롬프트의 기본 버튼에 나타나는 문자열 값입니다. 이 버튼을 누르면 채팅 창이 닫힙니다.
  * declineButtonTitle: 프롬프트의 보조 버튼에 나타나는 문자열 값입니다. 이 버튼은 채팅 창을 닫지 않고 프롬프트를 해제합니다.
  {#mobsdk-ios-pass-con-variables__ul_gm3_wyb_fdc}
* disabledFeatures: 비활성화할 NowChat 기능 목록입니다. 비활성화할 수 있는 기능 목록은 NowChatConfiguration.Feature 열거형 클래스를 참조하십시오.
* conversationOptions: NowChat에 적용할 대화 옵션 목록입니다. 적용할 수 있는 옵션 목록은 NowChatConvestation.ConversationOption 열거형 클래스를 참조하십시오.
* uiConfiguration: NowChat에서 UI 구성요소를 구성하는 데 사용되는 UIConfiguration 값입니다.
{#mobsdk-ios-pass-con-variables__ul_v4q_lyj_kbc}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    // Close Button Type
    func closeButtonText(title: String?) -> NowChatConfiguration.CloseButtonType? {
      guard let title else { return nil }
      return .text(title)
    }  
      
    func closeButtonImage(name imageName: String?) -> NowChatConfiguration.CloseButtonType? {
      guard let imageName,
      let buttonImage = UIImage(named: imageName) else { return nil }
      return .image(buttonImage)	
    }


    // Create the chat UI
    func makeChatScreen() -> UIViewController? {
      guard let chatService = chatService else { return nil }
      let closePrompt = NowChatConfiguration.ClosePrompt(header: "Close Window",
        message: "Are you sure you want to close the chat window?",
        acceptButtonTitle: "Yes",
        declineButtonTitle: "No")     

      let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false) // default isVisible = true         

      let chatConfiguration = NowChatConfiguration(closePrompt: closePrompt,
        disabledFeatures: [.startNewConversation],
        conversationOptions: [.forceNewConversation, .endConversationOnExit],
        uiConfiguration: NowChatConfiguration.UIConfiguration(closeButton: closeButtonImage(name: "arrow.left"), attachmentUploadButton: attachmentUploadButton))

      let result = chatService.makeChatUI(theme: CarrascoChatTheme(chatColors: ChatColors()), chatConfiguration: chatConfiguration)
             
      switch result {
        case .success(let chatViewController): 
          return chatViewController
        case .failure(let error):
          debugPrint("Chat screen creation failed with error: \(error)")
          return nil
      }
    } 

    // Start the chat session
    func startChat() {
      guard let chatService = chatService else {
        debugPrint("Chat service is invalid")
        viewState = makeViewState()
        return
      } 
      chatService.startChat { [weak self] result in
        if case .failure(let error) = result {
          debugPrint("Chat session initialization failed with error: \(error)")
          self?.resetChat()
        }
      }
     }

    // Initialize the chat service
    private func initializeChatService() {
      NowChat.makeChatService(instanceUrl: instanceUrl, delegate: self) { [weak self] result in
        guard let self = self else { return }
        switch result {
          case .success(let service):
            self.chatService = service
          case .failure(let error):
            debugPrint("Creating the chat service failed with error: \(error)") 
        } 
        self.viewState = self.makeViewState()
      }
    }


