Hi
I’m building a Zoom × Freshdesk integration and using the Zoom API to fetch call recording transcripts.
Zoom’s APIs do not require a specific Content-Type header for these requests, so it can be omitted. However, the Freshworks FDK request template needs a Content-Type header and throws an error if it is removed. When I use any of the supported Freshworks content types, the Zoom API responds with:
{ status: 415, headers: {}, response: ‘Unsupported content type’, errorSource: ‘APP’, attempts: 1 } error. This causes the Zoom API request to fail.
Because Zoom uses OAuth authentication, I also cannot move this request to server.js and use Axios — the OAuth access token is only available inside request.json in the FDK environment.
I’d really appreciate guidance on how to handle this limitation and make the Zoom API call work correctly from a Freshdesk app.
server.js
callRecordingTranscript: async function (options) {
try{
console.log("callRecordingTranscript",options)
let transcriptResponse = await $request.invokeTemplate("getCallRecordingTranscript",{
context:{
recordingId:options.recordingId
}
});
console.log("transcriptResponse",transcriptResponse)
renderData({
status: 200,
response: JSON.stringify(transcriptResponse)
});
}catch(err){
console.log("callRecordingTranscript",err)
renderData({
status: 500,
response: err.message
});
}
},
requests.json
“getCallRecordingTranscript”:{
"schema":{
"protocol": "https",
"method": "GET",
"host": "api.zoom.us",
"path": "/v2/phone/recording_transcript/download/<%= context.recordingId %>",
"headers": {
"Authorization": "Bearer <%= access_token %>",
"Content-Type": "application/json"
}
},
"options": {
"isOAuth": true
}
},
Thank you