Can you help me solve this error in my Zendesk app? Error opening side conversation: Error: "ticket.side_conversation.create" InvalidPathError: Path 'side_conversation' doesn't exist on node 'ticket' - here is the code: const client = ZAFClient.init();
let eventListenersAdded = false;

// Function to get the ticket ID
async function getTicketId() {
  const ticket = await client.get('ticket.id');
  return ticket['ticket.id'];
}

// Function to get the ticket's language based on tags
async function getTicketLanguage() {
  const ticket = await client.get("ticket.tags");

  if (ticket && ticket['ticket.tags']) {
    const tags = ticket['ticket.tags'];

    if (tags.includes('fr')) return 'French';
    if (tags.includes('gb')) return 'English'; // gb for Great Britain, English
    if (tags.includes('es')) return 'Spanish';
    if (tags.includes('it')) return 'Italian';
    if (tags.includes('de')) return 'German';
  }

  return 'English'; // Default to English
}

// Function to get ticket comments
async function getTicketConvo() {
  const ticketId = await getTicketId();
  const response = await client.request({
    url: `/api/v2/tickets/${ticketId}/comments.json`,
    type: 'GET',
    contentType: 'application/json'
  });

  if (!response.comments || !Array.isArray(response.comments)) {
    console.error("Comments not found or not in the expected format.");
    return "No conversation available.";
  }

  const comments = response.comments.map(comment => ({
    author_id: comment.author_id,
    body: comment.body,
    created_at: comment.created_at
  }));

  return comments.map(comment => `Author ID: ${comment.author_id}\nDate: ${comment.created_at}\nComment: ${comment.body}`).join('\n\n');
}

// Function to suggest AI-generated response
async function suggestResponse() {
  const container = document.getElementById("container");
  container.innerText = "Fetching AI suggested response...";

  try {
    const convo = await getTicketConvo();
    const ticketLanguage = await getTicketLanguage();
    const prompt = await getSuggestedResponsePrompt(convo, ticketLanguage);
    const suggestedResponse = await getSuggestedResponse(prompt, ticketLanguage);

    await prepopulateResponse(suggestedResponse);

    container.innerText = ""; // Clear on success
  } catch (error) {
    console.error("Error fetching suggested response:", error);
    container.innerText = "Failed to fetch AI suggestion. Please try again.";
  }
}

// Prepopulate response in the comment field
async function prepopulateResponse(responseText) {
  const firstName = await getUserFirstName();
  const formattedResponse = responseText.replace(/(\r\n|\r|\n)/g, '<br>');
  await client.invoke('ticket.comment.appendHtml', `${formattedResponse}<br>${firstName}`);
}

// Suggest seller message via side conversation
async function suggestSellerMessage() {
  try {
    const convo = await getTicketConvo();
    const prompt = `Summarize the following conversation for a seller: ${convo}`;
    const sellerMessage = await getSuggestedResponse(prompt, 'English');

    await openSideConversation(sellerMessage);
  } catch (error) {
    console.error("Error suggesting seller message:", error);
  }
}

// Open side conversation window with prefilled message
async function openSideConversation(summary) {
  try {
    await client.invoke('ticket.side_conversation.create', {
      message: {
        to: [],
        cc: [],
        subject: 'Summary of Ticket Conversation',
        body: summary
      }
    });
  } catch (error) {
    console.error('Error opening side conversation:', error);
    showError('Error opening side conversation');
  }
}

// Notify agent of errors
function showError(message) {
  client.invoke('notify', message, 'error');
}

// Function to get the AI-generated response
async function getSuggestedResponse(prompt, language) {
  const options = {
    url: "https://swedencentral.api.cognitive.microsoft.com/openai/deployments/int-ml-zendesk-app-ticket-basics-openai-gpt-4o-mini/chat/completions?api-version=2024-02-15-preview",
    type: "POST",
    contentType: "application/json",
    headers: {
      "api-key": "{{setting.openAiApiToken}}",
    },
    data: JSON.stringify({
      "messages": [{ role: "user", content: prompt }]
    }),
    secure: true,
  };

  const response = await client.request(options);
  return response.choices[0].message.content.trim();
}

// Initialize the app and attach event listeners
client.on("app.registered", async () => {
  client.invoke("resize", { width: "100%", height: "200px" });

  const suggestResponseButton = document.getElementById("suggestResponse");
  const suggestSellerMessageButton = document.getElementById("suggestSellerMessage");

  if (suggestResponseButton) suggestResponseButton.addEventListener("click", suggestResponse);
  if (suggestSellerMessageButton) suggestSellerMessageButton.addEventListener("click", suggestSellerMessage);
});