Skip to main content
Plan requirement: This feature requires an On-call Standard or higher subscription. Learn more
Use a JFrog Artifactory predefined webhook to sync artifact deploys, deletes, moves, and copies to Flashduty On-call. Each deployed artifact becomes one change, and deleting that same artifact later updates the change to Canceled; each move or copy becomes a change of its own.

In Flashduty On-call

  1. In the Flashduty console, go to Integration Center → Change Events
  2. Select JFrog Artifactory and enter an integration name
  3. To assign changes to specific channels, add rules under the integration’s Routes that match labels such as repo or path
  4. Click Save and copy the generated Push URL

Configure JFrog Artifactory

1

Create a webhook

  1. Sign in to the JFrog Platform and select All Projects or a specific project
  2. Go to Platform → Integrations → Webhooks and click New Webhook
  3. Keep the Predefined toggle selected (do not use Custom)
You need admin or project admin permission.
2

Enter the Push URL

  1. Name: for example, flashduty-changes
  2. URL: paste the complete Flashduty integration Push URL
  3. Secret token: leave empty; Flashduty authenticates with the integration_key in the Push URL
3

Select events and repositories

  1. Under Artifacts, select Artifact was deployed, Artifact was deleted, Artifact was moved, and Artifact was copied
  2. Select the repositories to watch: all local repositories, a list of repositories, or include/exclude path patterns
  3. Click Test to check connectivity, then click Create
Test sends JFrog’s sample data (checksum sample_checksum); Flashduty returns success but records no change.

How changes are merged

JFrog payloads carry no change ID, so Flashduty identifies an artifact by its location plus its content checksum: For moved and copied, <repository>/<path> is the artifact’s original location and <target> is the payload’s target_repo_path.

Status mapping

Artifactory sends artifact events after the operation completes, so each change has already ended when its first event arrives. These deliveries return success but record no change:
  • Event domains other than artifacts (Artifact Properties, Docker, Builds, Release Bundles, and so on)
  • cached: a remote repository caching a downloaded artifact, which isn’t a change
  • The sample data sent by the Test button

Change content

The link is built from the payload’s jpd_origin; when the payload has no such field, the change has no link. Use labels in routes and to filter the change list:

FAQ

  • Make sure the webhook is Predefined and has events under Artifacts selected
  • Make sure the repository you deploy to is within the webhook’s selected repositories
  • Check the delivery records and Flashduty’s responses on the webhook’s Troubleshooting tab (on JFrog Cloud, the instance must have this feature enabled)
Deploying a file with identical content to the same path adds an event to the existing change instead of creating a new one. Different content creates a new change.
A retry adds an event but does not create a new change. JFrog payloads carry no event time, so Flashduty records each event at the time it is received and cannot recognize a retry.
  • … is missing or invalid …: the payload is incomplete or a field is malformed. Confirm it comes from a Predefined Webhook, not a Custom Webhook with a customized payload
  • unsupported … or unknown …: Flashduty does not support this artifact event yet. Contact us