Hello everyone,
I'm stuck with an issue. I made a script that will export emails from an Outlook folder then for each conversation it will create a ticket.
I'm using Powershell and the following code :
# Outlook Variables $outlook = new-object -com outlook.application; $ns = $outlook.GetNameSpace("MAPI"); $inbox = $ns.GetDefaultFolder(6) # Get the emails that are in the folder named "folder_name" $targetfolder = $inbox.Folders | where-object { $_.name -eq "folder_name" } $items_list = $targetfolder.items | Select-Object ConversationID, sentOn, SenderName, To, TaskSubject, htmlbody, Attachments | sort-object -Property ConversationID, @{Expression = { $_.sentOn }; Ascending = $false } | select -First 1 foreach($item in $items_list){ $item.Body } # Fresh's Part [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 $APIKey = 'API_KEY' $EncodedCredentials = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $APIKey, $null))) $HTTPHeaders = @{ } $HTTPHeaders.Add('Authorization', ("Basic {0}" -f $EncodedCredentials)) $HTTPHeaders.Add('Content-Type', 'application/json') foreach ($item in $items_list) { $Body = @{ description = $item.htmlbody email = "requester_email" subject = $item.TaskSubject; priority = 1; status = 2 } # Create the ticket $URL = 'https://lundin.freshservice.com/api/v2/tickets' Invoke-RestMethod -Method Post -Uri $URL -Headers $HTTPHeaders -Body ($Body | ConvertTo-Json) break }
I get the following error : Invoke-RestMethod : {"code":"invalid_json","message":"Request body has invalid json format"}
This only happens when I try to add a description from the variables. I thought that it had something to do about how the HTML Body ($item.htmlbody) of the email was being exported but the error happens with the Raw body ($item.body) of the email which doesn't contain any HTML.
We're trying to make tickets to have a track of the issues that happened with a particular software.