Completing the Integration with Webhook

Learn how to integrate the Applause platform with Webhook.

Completing the Integration with Webhook

Using Webhook integration you can export issues reported within the Applause platform to an endpoint reachable as an external URL. This is one of the options offered by the Applause platform to integrate with an unsupported Bug Tracking System.

This article provides information about specific setups required when configuring the BTS Connector with Webhooks.




Prerequisites
  • Response - In order to mark an issue as having been exported successfully, it is required that a response be posted back. Response should include the ID on the issue as created in the receiving system
  • Make sure that the Applause platform can communicate with your endpoint. Learn more about the required configuration in case your endpoint is behind a firewall here



Webhook Connector

Once the BTS Integration was added, Webhook was selected as the connector type and products were assigned, you will be required to provide the following information:

  • URL - Set the target URL for the issue export
  • User - Username of login authenticated by the endpoint
    • Field is case sensitive
    • If your endpoint does not require authentication (not recommended), please use ‘Applause’ as the user
  • Password - Password of the login authenticated by the endpoint
    • Field is case sensitive
    • If your endpoint does not require authentication (not recommended), please keep the password blank
Webhook Connector




Notes and Tips
  • It is highly recommended to require the webhook to authenticate with the endpoint
  • Note that only basic authentication is supported at this time
  • Learn more about working with the BTS Connectors as part of setting up the integration between the Applause platform and your Bug Tracking System (BTS) here
  • Learn more about integrating with your BTS here
Data Exchange

We will consider the outgoing data, its available values and what response we will get.





Outgoing Data

When an issue is exported, a POST request will be sent to the URL specified. Here’s an example JSON sent by the integration:

{
"id": "1",
"title": "Very important I bug found",
"description": "See issue description here",
"descriptionHTML": "See issue description here",
"type": "BUG",
"fields": {
"${username}": "User",
"Bug Type": "1",
"${bugDescriptionHtml}": "See issue description here",
"Environment": "Mobile Maker:Apple,Mobile Carrier:Wi-Fi,Mobile Operating System:iOS,Mobile Model:iPhone 12 mini,Mobile Operating System Version:iOS 14.3",
"Actual Result": "This is the result I actually saw",
"${createDate}": "2000-01-01 11:11:11.0",
"${component}": "Component 1",
"${environment}": "Mobile Maker:Apple,Mobile Carrier:Wi-Fi,Mobile Operating System:iOS,Mobile Model:iPhone 12 mini,Mobile Operating System Version:iOS 14.3",
"${bugPriority}": "3",
"${bugStatusId}": "2",
"Title": "Very important I bug found",
"${bugType}": "2",
"bugTypeText": "Functional",
"${productId}": "1",
"${subject}": "Very important I bug found",
"severityText": "High",
"Description - Concatenated (HTML)": "See issue description here",
"Expected Result": "This is the result I expected to see",
"Product Name": "Product A",
"Build ID": "1",
"Description - Concatenated": "See issue description here",
"Company ID": "1",
"${companyId}": "1",
"${testCaseStepId}": "1",
"Approval Value Tier": "2",
"Test Cycle Name": "Test Cycle for Release 1.11",
"${bugId}": "1",
"frequencyText": "Every Time",
"${expectedResult}": "This is the result I expected to see",
"${productVersion}": "1.11",
"${testCaseId}": "1",
"Test Cycle ID": "1",
"Bug Modified": "2000-01-01 12:12:12.0",
"${custom-field:'Exact URL'}": "https://myapplication.com/jcje...",
"Action Performed": "These are the steps I followed...",
"${lastChangeDate}": "2000-01-01 12:12:12.0",
"Test Case ID": "1",
"${bugSeverity}": "3",
"${testCycleId}": "1",
"${bugFrequency}": "1",
"${custom_message}": "{\"trigger\":\"MANUAL_EXPORT\",\"data\":{\"id\":1,\"title\":\"Very important I bug found\",\"description\":\"See issue description here\",\"priority\":\"HIGH\",\"productVersion\":\"1.11\",\"testCycleName\":\"Test Cycle for Release 1.11\",\"productId\":1,\"productName\":\"Product A\",\"companyId\":1,\"actionPerformed\":\"These are the steps I followed...\",\"expectedResult\":\"This is the result I expected to see\",\"lastChangeDate\":\"Jan 01, 2000, 12:12:12 PM\",\"createDate\":\"Jan 01, 2000, 11:11:11 AM\",\"result\":\"This is the result I actually saw\",\"type\":\"BUG\",\"bugStatus\":\"Approved\",\"bugFrequency\":\"Every Time\",\"url\":\" \",\"url\":\"https://somehost.com/bug/attac...\",\"mimeType\":\"image/jpeg\"},{\"fename\":\"Bug1.mp4\",\"url\":\"https://somehost.com/bug/attac...\",\"mimeType\":\"video/mp4\"}],\"environments\":[\"Mobile Maker:Apple,Mobile Carrier:Wi-Fi,Mobile Operating System:iOS,Mobile Model:iPhone 12 mini,Mobile Operating System Version:iOS 14.3\"],\"reproductions\":[{\"testerId\":1,\"testerRating\":97.46904754638672,\"comment\":\"\",\"createDate\":\"Jan 01, 2000, 12:33:33 PM\",\"environments\":[\"Samsung - Telenor - Android - Galaxy S10 - Android Browser - Chrome - Firefox - Opera - Samsung Internet - Android 11.x - Android 11\"],\"attachments\":[]},{\"testerId\":2,\"testerRating\":97.63313293457031,\"createDate\":\"Jan 01, 2000, 12:44:44 PM\",\"environments\":[\"Apple - Wi-Fi - iOS - iPhone 8 Plus - Chrome - Firefox - Safari - iOS 13.x - iOS 13.6.1\"],\"attachments\":[]}],\"messages\":[]}}",
"${productVersionId}": "1",
"${bugTypeText}": "Functional",
"${testCycleName}": "Test Cycle for Release 1.11",
"Product ID": "1",
"Bug Created": "2000-01-01 11:11:11.0",
"${result}": "This is the result I actually saw",
"Development Stage": "Unknown(Phase=Other/Deployment=Other/Availability=Other)",
"Test Case Step ID": "1",
"Approval Status": "2",
"${developmentStage}": "Unknown(Phase=Other/Deployment=Other/Availability=Other)",
"approvalValueTierText": "very valuable",
"${productName}": "Product A",
"${approvalValueTier}": "2",
"${testCaseOther}": "These are the steps I followed...",
"Frequency": "1",
"Severity": "3",
"Bug ID (Applause)": "1",
"${bugDescription}": "See issue description here"
},
"attachments": [
{
"filename": "image.jpg",
"url": "https://somehost.com/bug/attac..."
},
{
"filename": "Bug1.jpg",
"url": "https://somehost.com/bug/attac...",
"mimeType": "image/jpeg"
},
{
"filename": "Bug1.mp4",
"url": "https://somehost.com/bug/attac...",
"mimeType": "video/mp4"
}
],
"includeAttachmentsInComments": false,
"shouldUpdateStatus": true
}




Available Values
  • Trigger - CREATED / EDITED / MANUAL_EXPORT / STATUS_CHANGED / MESSAGE_ADDED / ATTACHMENT_ADDED / ATTACHMENT_DELETED
  • Priority - LOW / MEDIUM / HIGH / CRITICAL
  • Type - BUG
  • BugStatus - New / Approved / Rejected / Disputed / Discard / Info Requested / Under Review / Pending Approval / Pending Rejection
  • BugFrequency - Every Time / Occasionally / Hardly Ever / Once



Responding
  • Success - The following JSON should be returned in the body of the response with HTTP status: 200:

    {
    “bugId”:”<External Issue ID here>”
    }
    • Once the external issue ID has been received, it will be appended to the Applause issue and sent on every subsequent update request.
  • Failure - The following JSON should be returned in the body of the response with HTTP status: 200:

    {
    “message”:”Reason for failure”
    }