Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to Sync Freshservice Ticket Comments to Jira Without Exposing Internal Notes

Diana_Architect_ZigiWave
Atlassian Partner
May 1, 2026

Why Are Freshservice Internal Notes Ending Up in Jira?

You have connected Freshservice and Jira. Tickets flow, updates sync, and your ITSM and dev teams finally feel like they are working from the same page. And then, one day, a developer opens a Jira issue and sees something they were never supposed to read: an internal support note meant exclusively for the service desk. It might be a sensitive workaround, an escalation flag, or an agent's candid assessment of the requester's technical skill. Whatever it is, it is now visible to everyone with access to that Jira project.

This is not a hypothetical. It is one of the most common, quietly damaging side effects of Freshservice to Jira integrations that have not been configured with comment visibility in mind. And it happens because Freshservice and Jira treat the concept of "internal notes" very differently - one platform has them built into its data model, and the other simply does not.

Why Do Freshservice and Jira Handle Comments Differently?

Before jumping to solutions, it helps to understand why this problem exists at a structural level.

Freshservice supports two distinct comment types on every ticket:

  • Public Replies: Visible to the requester and all collaborators. These are the customer-facing updates.
  • Private/Internal Notes: Internal-only, visible exclusively to service desk agents. Freshservice distinguishes these from public replies at the data level - and your integration must respect that distinction too.

 

Jira, on the other hand, has a flat comment model. Every comment added to an issue is visible to anyone with access to that Jira project. There is no native concept of a private or internal comment in standard Jira (though Jira Service Management has some visibility controls, standard Jira Software does not).

When a naive integration simply syncs all Freshservice comments to Jira without filtering, it treats both public replies and private notes as equivalent data. The result: every internal note your agents write in Freshservice ends up as a plain, public Jira comment

The problem is not the integration itself. The problem is a missing filter for the internal note visibility flag in the Freshservice comment payload.

Which Freshservice Comment Types Should Never Reach Jira?

_- visual selection (42).png

               Freshservice comment types and their behavior in Jira integrations

What Are the Real Risks of Leaking Internal Notes into Jira?

You might be tempted to think of this as a cosmetic annoyance - a bit of information pollution in Jira. It is not. Internal notes in Freshservice often contain:

  • Escalation context and internal SLA breach reasoning
  • Sensitive workarounds or temporary fixes that carry security implications
  • Assessment of a requester's technical level or organizational role
  • Cross-team commentary that was never intended for the development team
  • Compliance-sensitive details, especially in regulated industries

 According to Gartner, data leakage between IT service management tools and development platforms is among the top causes of unintended information exposure in enterprise environments. The risk is amplified when integrations are set up quickly, without detailed attention to data visibility policies.

In regulated industries such as financial services, healthcare, or government IT, exposing internal notes to broader development teams can create audit findings and policy violations. Even outside regulated sectors, the erosion of trust between service desk and development teams - once agents realize their private notes are public - is significant and difficult to repair.

A European bank discovered that internal ServiceNow work notes had been synced to Jira during an integration rollout. The issue triggered an internal security inquiry before it was corrected. The same pattern applies to Freshservice private notes. 

What Does a Secure Comment Sync Actually Require?

The solution requires three layers of control in your integration configuration:

  1. Filter by the private flag: Freshservice's API exposes a boolean "private" attribute on every note. Your integration must check this attribute before syncing any comment.
  2. Exclude the integration user's own activity: Without this, your integration will detect its own previously synced comments as "new" activity and create duplicates.
  3. Use last-time expressions: To ensure only genuinely new comments are collected on each run, not a full replay of historical comments.

 These three controls, applied correctly in your integration's trigger conditions and field mappings, give you a clean, secure comment sync. Let's look at how ZigiOps handles each one.

How Does ZigiOps Keep Internal Notes Out of Jira?

ZigiOps is a 100% code-free, standalone integration platform that connects enterprise tools without storing any transferred data. It is not a plugin and requires no scripting - all configuration happens through a guided UI with point-and-click field mapping and conditional logic.

For the Freshservice-Jira comment sync challenge, ZigiOps gives you three specific mechanisms: 

1. How Do You Tell ZigiOps Which Comments to Collect?

In ZigiOps, each operation (a directional sync between two systems) has a Trigger Conditions section. Here you define what records ZigiOps should collect from the source system.

For Freshservice comments, you add the condition:

[internal note visibility flag] = public  (verify exact Freshservice field name with your technical team)

This condition ensures ZigiOps only collects notes where the visibility is set to public. Internal notes are excluded before any data movement occurs. The exact field name exposed by Freshservice should be verified against your Freshservice API documentation or confirmed with your ZigiOps implementation team.

You also add:   

  author/id is not {integrationUser}

This prevents the integration from picking up its own previously synced comments and creating an infinite duplication loop.

2. How Do You Prevent the Same Comments from Syncing Twice?

ZigiOps supports "Last Time" expressions - a timestamp-based filter that records when an operation last ran and uses that time as the starting point for the next data collection. For comment syncing, this is configured as: 

{lasttimecomment}

This expression ensures that on each run, ZigiOps only collects comments created after the previous successful sync. Without this, every operation run would re-collect and re-send the entire comment history, creating duplicates in Jira. With it, comment sync is clean, precise, and incremental.

3. What Happens If an Internal Note Slips Past the First Filter?

Beyond trigger conditions (which filter at the collection level), ZigiOps also supports conditional mappings at the field level. This gives you a second layer of defense:

IF [internal note flag] = internal/private THEN discard this field (do not map to Jira)

Even if a note somehow passes the trigger condition, the conditional mapping acts as a hard block at the field level - the value is discarded and never written to Jira. This defense-in-depth approach means internal notes are protected at two independent points in the data flow.

ZigiOps supports unlimited conditions per field, so you can layer additional logic - for example, excluding notes from specific agent groups, or filtering notes that contain specific prefix tags used by your team for internal categorization.

What Does the ZigiOps Configuration Look Like in Practice?

_- visual selection (44).png

     Recommended ZigiOps configuration to prevent Freshservice internal notes from                                                              appearing in Jira.

What Happens Step by Step When the Integration Is Configured Correctly?

Once configured correctly, the Freshservice to Jira comment sync works as follows:

  1. Freshservice agent adds a public reply: ZigiOps detects this on its next run. The private flag is false, the author is not the integration user, and the timestamp is after the last sync. All conditions pass. The comment is mapped to Jira.
  2. Freshservice agent adds a private internal note: ZigiOps detects the comment activity but the private = false trigger condition fails immediately. The note is not collected. Nothing is sent to Jira.
  3. System generates an auto-notification in Freshservice: The author/id matches the integration user filter. The comment is excluded at the trigger level.
  4. ZigiOps syncs Jira comments back to Freshservice: Developer replies in Jira are mapped to public comments in Freshservice, maintaining bidirectional visibility for public threads only.
  5. Respond Field Map writes confirmation: After creating a Jira comment, ZigiOps writes the Jira comment URL back to the Freshservice ticket. This gives service desk agents a direct link to the Jira activity without needing to leave Freshservice.

 

The result is a clean, secure communication channel: developers see only what is operationally relevant, agents retain full control over their internal discussions, and neither team has to think about what is safe to write where.

Still Have Questions About Freshservice-Jira Comment Sync?

Can Freshservice internal notes be synced to Jira at all?

Technically, yes - if you map the private field without filtering, any comment (including private ones) will sync. But this is exactly the configuration you want to avoid. The correct approach is to use trigger conditions in your integration to exclude all comments where private = true, as described above.

What happens if I do not filter private notes?

Every internal note your service desk agents write in Freshservice will appear as a standard visible comment in the linked Jira issue. All developers and stakeholders with project access can read it. This can lead to information leakage, compliance issues, and a loss of trust in your internal communication channels.

Does ZigiOps store the Freshservice notes it processes?

No. ZigiOps does not store any of the data it transfers. Comments, ticket fields, and note content pass through the platform in real time and are written directly to the target system. Nothing is persisted in ZigiOps itself. This is a core ZigiOps architectural principle and part of its ISO 27001 certified security posture.

 Can I also filter Jira comments from syncing back to Freshservice?

Yes. The same conditional logic applies in reverse. In the Jira-to-Freshservice operation, you can configure conditions to exclude specific comment authors (such as automation bots), comment types, or comments matching certain content patterns. ZigiOps supports unlimited conditions per operation, so the filtering logic can be as granular as your use case requires.

 What is the difference between trigger conditions and conditional field mapping in ZigiOps?

Trigger conditions determine which records (tickets, issues, comments) ZigiOps collects from the source system. Conditional field mapping applies logic at the individual field level - it controls what value is sent to the target field and whether to send anything at all. For maximum security, use both: trigger conditions as your first filter, conditional mappings as your backup. 

Why Is It Better to Get This Right Before Go-Live Than After?

Comment visibility in Freshservice-Jira integrations is one of those configuration details that feels minor until it causes a real incident. The pain point is niche enough that many teams discover it only after private notes have already been exposed - sometimes days or weeks after the integration went live.

Fixing it after the fact is awkward. You need to review what was already exposed, assess whether any sensitive information was seen, notify relevant parties if necessary, and then reconfigure the integration. None of that is fun.

Getting it right from the start is straightforward when you use a platform that supports the filtering logic described above. Atlassian's own guidance on Jira permissions and visibility makes clear that standard Jira project visibility does not include a native internal-note concept - which means the responsibility falls on the integration layer to respect comment privacy from the source system.

ZigiOps handles this through its guided, no-code configuration. You do not write scripts. You do not modify APIs. You configure conditions through the UI, apply field-level logic, and test the flow before going live. The ISO 27001 certified platform ensures that even the integration infrastructure itself meets enterprise security standards

Want to See a Secure Freshservice-Jira Integration in Action?

If your team is running or planning a Freshservice-Jira integration and you want to make sure private notes never make it to Jira, ZigiOps gives you the conditional mapping, trigger filtering, and security architecture to get it right.

Explore the ZigiOps Frehservice Jira integration on the Atlassian marketplace or book a demo to see the configuration in action with your specific setup.

0 comments

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events