Tool Jira Cloud in development

Key Result Relay

Privacy policy

What Key Result Relay reads in Jira, what it stores, what it sends to Slack or Microsoft Teams, how long it’s kept, and how to have it deleted.

Last updated

In short

  • The app runs on Atlassian’s platform (Forge). I don’t run any servers or databases for it.
  • It stores your Objectives, key results, check-ins, routing rules and chat channels in your site’s app storage, with the Atlassian account IDs of their owners and authors.
  • It reads Jira issues to compute key result progress, and never changes Jira.
  • When a Jira admin connects a Slack or Microsoft Teams channel, the messages your team routes there are sent to that channel, and that content leaves Atlassian. Nothing else does.
  • There are no analytics, no tracking, no cookies and no ads, and I never sell or share your data.

Who this policy covers

This policy covers the Jira Cloud app Key Result Relay (“the app”), offered on the Atlassian Marketplace by Christian Ortiz, an individual publishing as Christian Ortiz Studio (“I”, “me”). It explains how the app handles data on the Jira sites where it’s installed, and how I handle the information Atlassian and you share with me.

It doesn’t cover Jira, Slack or Microsoft Teams themselves, which are governed by Atlassian’s privacy policy, Slack’s and Microsoft’s.

Questions about this policy: support@christianortiz.studio.

Where the app runs

The app is built on Atlassian Forge: its code runs on Atlassian’s infrastructure, and its data is kept in Atlassian-hosted app storage that belongs to your Jira site. I have no database or server of my own that holds your data.

The app’s only outbound connections are the chat webhooks your Jira admins add: Slack incoming webhooks (hooks.slack.com) and Microsoft Teams Workflows (*.logic.azure.com, *.api.powerplatform.com). It accepts no other address. Its screens load nothing from third parties.

Data residency. Forge hosted storage follows your site’s data residency: if your Jira site is pinned to a location, the app’s stored data is kept there too and moves with your site. Residency doesn’t apply to messages posted to Slack or Teams, which are kept wherever those services keep your workspace’s data.

What the app reads

  • Jira issues matching a key result’s JQL, to count how many match and how many are in the Done status category. Background updates (after an issue changes, every hour, and Sync now) run as the app. Validating a query and the list of matched issues on a key result’s page run as the person viewing, so they see only issues Jira lets them browse. Issue summaries aren’t stored; only counts, and for each key result the projects its query covers.
  • Issue change events from Jira, to know which key results to update. Only the issue’s project is used.
  • People’s names, looked up from their account IDs when a screen or a message shows them, and when someone searches for an owner. Names aren’t stored.
  • Whether you’re a Jira administrator, to decide who can manage channels and settings.
  • The license state Atlassian gives it, to decide whether editing and messages are on.

The app never creates, edits or deletes Jira issues.

What the app sends to Slack or Microsoft Teams

Only to channels a Jira admin connects, and only the messages your team routes to them (progress changes, key result status changes, overdue check-in reminders, weekly digests and test messages). A message can contain:

  • Objective and key result titles, values, progress, status and the cycle;
  • check-in notes and confidence;
  • the names of owners, unless a person turns off Name me in channel messages, in which case it says “1 owner”;
  • a link back to the Objective or key result in your Jira site.

Messages never tag anyone. Once posted, they’re held by Slack or Microsoft under your organization’s agreements with them, and deleting them is done there.

What the app stores, and for how long

Everything below is kept in your site’s Atlassian-hosted app storage.

  • Objectives: title, description, cycle label and dates, team, status, progress, and the account IDs of the owner and creator. Kept until deleted.
  • Key results: title, unit, start, target and current values, progress, how they’re measured (manual or the JQL text and rule), check-in cadence, sync status and counts, and the owner’s account ID. Kept until deleted.
  • Change logs: each change to a key result’s value, where it came from and when. The latest 500 per key result are kept.
  • Check-ins: value, confidence, note, the date it applies to, and the author’s account ID. Kept until the key result is deleted.
  • Chat channels: platform, display name, the webhook’s host, test results and the account ID of the admin who added it. The webhook URL is kept in encrypted secret storage, is never shown again and is deleted with the channel.
  • Routing rules: which Objective sends what to which channel, and when.
  • Delivery logs: for each message sent or attempted, the channel, the kind of message, the result and HTTP status. Deleted after 30 days.
  • Per-person preferences, keyed by account ID: whether to be named in messages, a snooze date, the Objectives followed or muted, and tour progress. Kept while the app is installed, unless the account is closed.
  • App settings: the default time zone, the last health check results and bookkeeping times.

Personal data

Atlassian account IDs and names are personal data. Titles, notes and JQL text may also contain personal data your team types into them; the app handles them only as described here.

Once a week the app sends the account IDs it stores to Atlassian’s personal data reporting service, as Atlassian requires. When Atlassian reports that an account has been closed, the app deletes that person’s preferences and tour progress, and replaces their account ID with deleted-account on Objectives, key results, check-ins and channels.

Logs

Atlassian gives me access to the app’s logs and usage metrics so I can keep it working. The app logs only error messages when something fails, such as a failed background job, never titles, notes, names or webhook addresses. Atlassian’s runtime also records each time a function runs.

Who’s responsible for your data

  • For the content and account IDs the app handles on your Jira site, your organization is the controller and I’m the processor: the app processes them only to do what your users ask. The data processing agreement sets out the terms and applies automatically.
  • Slack and Microsoft receive the messages your admins route to them as your organization’s own providers, under your agreements with them; they aren’t my sub-processors.
  • For the licensing and contact details Atlassian shares with me, and for support emails you send me, I’m the controller.
  • Under the California Consumer Privacy Act, I’m your organization’s service provider. I don’t sell or share personal information.

What I receive, and what I don’t

I don’t receive your Objectives, key results, check-ins or anything else from your Jira site. The app has no way to send them to me.

When your organization installs, evaluates or buys the app, Atlassian shares licensing information with me, which can include your site address, organization name, and the names and email addresses of technical and billing contacts. I use it only to manage licenses, provide support and send notices that matter (such as security notices), and keep it only as long as I need it for those purposes and for my legal and tax records.

If you email me for support, I keep your message and email address to help you and to improve the app. I’ll delete them on request unless I need to keep them by law.

Sharing

I don’t sell, rent or share your data with anyone. The only sub-processor is Atlassian, which hosts the app’s code and storage on Forge under the Forge Data Processing Addendum. Messages go to Slack or Microsoft Teams only because your admins connect those channels. I’d disclose information only if the law required me to.

Security

  • The app asks Atlassian only for what it needs: reading Jira work and users, its own storage, personal data reporting, and posting to Slack and Teams webhook hosts. It requests no credentials of its own.
  • Webhook URLs are checked against the allowed hosts on the server and kept in encrypted secret storage; screens show only the host.
  • Every change is checked on the server: the license, who may manage channels and edit Objectives (Jira’s own admin permission and the Objective’s owner), and the data itself, which is validated before anything is stored.
  • Security contact: email support@christianortiz.studio with Security in the subject line. I acknowledge security reports within two business days.
  • I don’t hold security certifications of my own, such as SOC 2 or ISO 27001. The app’s code and data run on Atlassian’s infrastructure, which Atlassian’s own audits cover.
  • If I learn of a security incident that affects your data, I’ll tell affected customers without undue delay.

Deleting your data

  • Objectives, key results, check-ins and channels can be deleted in the app at any time. Deleting an Objective deletes its key results, check-ins, change logs and routing rules.
  • Delivery logs are deleted after 30 days; change logs keep the latest 500 entries per key result.
  • Closed accounts are handled automatically, as described under Personal data.
  • Uninstall the app to remove all of its data from your site. Atlassian then deletes the app’s storage under its data lifecycle for Forge hosted storage: the data is soft-deleted when the app is uninstalled and kept for 28 days, then permanently deleted. I don’t keep a copy.
  • Ask me at support@christianortiz.studio with your site address, and I’ll help and confirm what was removed.

Messages already posted to Slack or Teams stay in those services until they’re deleted there.

Your rights

Depending on where you live, you may have the right to access, correct, delete or move your personal data, or to object to how it’s used. Because the app’s data lives in your organization’s Jira site, the quickest route is usually through your site admin, but you can always email me and I’ll respond within 30 days.

Children

The app is a business tool and isn’t directed at children.

Changes to this policy

If I change this policy, I’ll update the date at the top of this page. If a change affects how your data is handled in a meaningful way, I’ll also say so in the app’s release notes or Marketplace listing before it takes effect.

Contact

Christian Ortiz, publishing as Christian Ortiz Studio
support@christianortiz.studio