When multiple webhooks are needed and why

The webhook runs as an Aha! user and transmits all activity across the entire Jira server back to Aha! for any issue in Jira linked to an Aha! initiative, feature, or requirement. The general best practice is to have a single webhook with the run-as user being a person with Product Owner or Contributor role permissions to all products. The net result of having more than one webhook with users having editing rights to overlapping products is that you'll end up with duplicate events (e.g. features, comments, etc.) being created in Aha! whenever an update is made to an issue in Jira. 

However, there are a couple of scenarios where multiple webhooks are required. 

  1. If no single person has user role permissions with editing access to all products. In this scenario, be sure that each webhook user is different and each user has access to different products. Any overlap in editing rights between users on the same product(s) will result in the creation of duplicate events.
  2. Using two separate webhooks to perform more complex JQL filtering for data flowing into Aha! where you want one webhook to handle certain issue types one way and another webhook to handle other issue types in a different way. For example:
    • You have a Jira bidirectional integration in place where Aha! is producing Jira epics, user stories, and sub-tasks. Changes to these issues in Jira are flowing back to Aha!
    • Developers are creating unrelated sub-tasks in Jira that you don't want flowing back into Aha! You can uncheck the Issues Created event for this webhook so no new sub-tasks flow back into Aha!
    • On the other hand, when developers create a New Feature issue type, you do want those to flow back into Aha! 
    • The solution for managing this process is the creation of two different webhooks:
      • Webhook1: JQL = issuetype in (improvement, "New Feature") and Events = <everything including issue created>
      • Webhook2: JQL = issuetype in (Epic, "User Story", Sub-task) and Events = <everything other than issue created>

 Note that the second scenario is not very common. 

Was this article helpful?
1 out of 3 found this helpful