With Exalate, you can sync inline images from Freshdesk to Jira Cloud. So whenever you add an inline image in a note or even the description of a Freshdesk ticket, it will be automatically forwarded to Jira.
Similarly, when you add an inline image to a work item description or comment, it will appear as an actual inline image in the public note or attachment.
The key thing here is that it doesn’t appear as an attachment and clogs up the work item. But to understand how that happens, let’s talk about the differences between inline images and attachments.
Then we can show how to sync them between Freshdesk and Jira Cloud using Exalate.
Inline images are inserted directly into the ticket description or comment—think of them as "in-text" images. They render immediately within the flow of the text, making the message more readable and self-explanatory.
Attachments are files added to a ticket or comment but listed separately, usually below the main message body. They're meant for download and long-term reference.
On Jira, you’ll see them in the work item as a separate field for download.
The real difference is user experience: inline images are contextual within a ticket or work item, while attachments are optimized for storage and download.
When syncing inline images with Exalate, Jira Cloud sends data as Markdown, and Freshdesk sends data as HTML.
Due to format differences, some formatting errors for text, images, and comments might appear after the sync. You can use Exalate scripts to prevent this. It comes with transformers and converters.
Before we go into detail, let’s look at the use case closely. When you add an inline image to a Jira comment:
The comment will appear on the Freshdesk ticket alongside the image.
The feature is not available by default, which means that you’d need to set up a Script mode connection between Jira Cloud and Freshdesk. This type of connection makes it possible to write a custom script in order to map inline images.
So after setting up the connection, go to the scripting console and enter the following code snippets on either side. Or you can ask AI Assist to fetch you the code:
You can use the following scripts to convert the data from Markdown to HTML:
replica.description = nodeHelper.getHtmlField(issue, "description")
replica.comments = nodeHelper.getHtmlComments(issue)
The getHtmlField and getHtmlComments methods fetch the descriptions and comments within the issue and send them out in HTML format.
The following code is used to convert the incoming data from HTML to Markdown:
issue.description = nodeHelper.toMarkDownFromHtml(replica.description)
issue.comments = nodeHelper.toMarkDownComments(commentHelper.mergeComments (issue,replica))
The toMarkDownFromHtml and toMarkDownComments methods both fetch the description and comments from the incoming payload from Freshdesk and convert them into Markdown.
Add this code snippet to the Freshdesk outgoing side:
replica.description = entity.description
replica.comments = entity.comments
This is an alternative to using the stripHtml method in Exalate for Freshdesk since HTML is supported by default. So you can replace the replica for both descriptions and comments with this snippet.
The following code snippet fetches image attachments from:
entity.attachments = attachmentHelper.mergeAttachments(issue, replica)
This code snippet fetches all the incoming images as attachments for Freshdesk.
Syncing inline images between Jira Cloud and Freshdesk streamlines collaboration between support and development teams, improving efficiency and communication.
By providing visual context directly within the tickets, it enhances customer experience, reduces miscommunication, and ensures both teams are aligned with the same information.
This seamless integration speeds up issue resolution, whether it’s for security incidents, technical problems, or change management, making the entire workflow smoother and more effective.
If you have a similar use case in mind, let’s discuss or drop it in the comments below.
Syed Majid Hassan -Exalate-
0 comments