Documentation

Set up a space, then a route.

ChatHerald is an Atlassian Forge app. An admin pastes a Google Chat incoming webhook and adds rules. The app does not write to Jira or Confluence.

Install

  1. Install ChatHerald from the Atlassian Marketplace on your Jira Cloud site. The Marketplace listing is coming soon.
  2. Install the same app on Confluence if you want page notifications. Jira and Confluence are separate installs.
  3. Open Jira administration and choose the page titled ChatHerald.
  4. Paste a webhook, use Send test, then add a rule. Send test does not read a Jira issue. The message says so.

A development or staging install has no context.license value, so editing stays open. After a paid install, an inactive licence keeps the rules and locks editing. Delivery stops until the licence is active again.

Pricing and free trial are shown on the Atlassian Marketplace listing (coming soon).

Uninstall

ChatHerald has no uninstall step of its own. When an admin uninstalls the app, Atlassian deletes the app’s Forge storage for that site (rules, webhook URLs, queues, and the delivery log) under Atlassian’s data retention policy. Details are in the privacy policy.

Create a Google Chat webhook

  1. In the Google Chat space, add an incoming webhook. Google documents this under the space’s apps and integrations.
  2. Copy the webhook URL. ChatHerald accepts only https://chat.googleapis.com/v1/spaces/SPACE/messages with both key and token query parameters.
  3. In ChatHerald, paste the URL and save it. Give it a label if you have more than one space.
  4. Choose Send test. A successful test posts “ChatHerald test” and records a delivery-log row with issue key TEST.

The screen shows a masked URL. The full URL, including the token, is stored in the app’s Forge storage as a secret. Other hosts, plain http, a missing key or token, and a username or password in the URL are rejected.

The default message is text, with the key fields and a deep link. You can switch a site to text plus a rich card. Keep text on until a real space shows the card the way you want. Google’s incoming-webhook guide documents a text body.

Add a route with JQL

Save a webhook before you add a rule. You can start from a template or write a custom rule.

Templates included now:

Coming soon: the template “JSM SLA warning”. It appears in the list but cannot be added yet. Forge has no SLA-breach event, and the scheduled SLA check is not built.

A rule can require any combination of:

Delivery is immediate, hourly, or daily. Hourly waits until the next UTC hour. Daily waits until the next UTC midnight. A schedule runs every five minutes, so a digest can arrive a few minutes after the window closes. Digests list up to 20 items and a count of the rest. Summaries are read again at send time. They are not kept in the queue.

Confluence setup

  1. Install ChatHerald on the Confluence site as well as Jira.
  2. Open the ChatHerald page in Confluence settings. It is the same admin screen.
  3. Use the same webhook, or add another space.
  4. Add “Confluence page created or updated”, or a custom rule whose events are page created, page updated, or both.

The message uses the page title and a link. It does not send the page body. Page rows in the delivery log use the key page: followed by the page id.

Troubleshooting

Scopes

These are the scopes in the app manifest, in the same order. Nothing else is requested. In particular the app does not request write:jira-work, manage:jira-configuration, or a Jira Service Management scope.

Scope Why it is requested
read:jira-work Required for the issue created, updated, commented, and mentioned events, and for JQL parse plus JQL search.
read:jira-user Not required for those events. Reserved so a later personal-message mapping can read user profiles. The current code does not call a user API. Remove it before listing if that work is dropped.
storage:app Forge storage for rules, webhook secrets, queues, and the 7-day delivery log.
read:confluence-content.summary Required for page created and updated events. It does not grant full page-body expansions.
read:page:confluence Required to read a page title from the Confluence v2 pages API when building a message.

The only external fetch host is https://chat.googleapis.com. That declaration is marked as carrying end-user data, because a message can include an issue summary, a short comment excerpt, or a page title.