xMatters

Version: 2.0.0

xMatters helps identify, prevent, and resolve IT issues before they impact customers whether it's a simple bug fix or a complex major incident.

Connect xMatters with LogicHub

  1. Navigate to Automations > Integrations.
  2. Search for xMatters.
  3. Click Details, then the + icon. Enter the required information in the following fields.
    • Label: Enter a connection name.
    • Reference Values: Define variables here to templatize integration connections and actions. For example, you can use https://www.{{hostname}}.com where, hostname is a variable defined in this input. For more information on how to add data, see 'Add Data' Input Type for Integrations.
    • Verify SSL: Select option to verify connecting server's SSL certificate (Default is Verify SSL Certificate).
    • Remote Agent: Run this integration using the LogicHub Remote Agent.
    • Server URL: Rest API URL to access xMatters.
    • Username: Username to access xMatters.
    • Password: Password to access xMatters.
  4. After you've entered all the details, click Connect.

Actions for xMatters

Trigger Event

Trigger an event.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
IDJinja-templated id of the existing communication plan/form. Example: {{id_name_column}}.Required
RecipientsJinja-templated text containing the recipients for trigger.
Example: [{"id": "{{id_column}}", "recipientType": "DYNAMIC_TEAM", "responseCountThreshold": 1}, {"id": "f19d8b10", "recipientType": "GROUP", "responseCountThreshold": 3}].
Optional
PrioritySelect Priority (Default is 'MEDIUM').Optional
Expiration In MinutesJinja-templated text containing the expiration in minutes. Example: {{expiration_in_minutes_name_column}}.Optional
Override Device RestrictionsSelect Override Device Restrictions.Optional
Escalation OverrideSelect Escalation Override.Optional
Bypass Phone IntroSelect Bypass Phone Intro.Optional
Require Phone PasswordSelect Require Phone Password.Optional
Voicemail OptionsJinja-templated text containing voicemail_options.
Example: {"retry": 0, "every": 60, "leave": "callbackonly"}.
Optional
Target All DevicesSelect whether target all devices.Optional
PropertiesJinja-templated text containing property value object. Example: { "myBooleanProperty" : "{{boolean_column}}", "myNumberProperty": {{number_column}}, "myTextProperty" : "See the attached evacuation route map.", "myListProperty" : ["Grocery", "Automotive", "Seasonal"] }.Optional

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • result: Request ID
{
  "result": {
    "requestId": "9ab6d7c6-31b7-4a51-9d85-9901d442a3a5"
  },
  "error": null,
  "has_error": false
}

Get Events

Get list of events

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
FormJinja-templated text containing the comma separated ids of the existing form.
Example: '{{form1_column}}, {{form2_column}}'.
Optional
Request IDJinja-templated text containing the requestId. Example: {{request_id_index_column}}.Optional
LimitMaximum number of results to return per parent row(Default is 100,000).Optional

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • result: List of events
{
  "incident": "INC-5",
  "eventType": "USER",
  "name": "Incident: INC-5: Y1",
  "priority": "MEDIUM",
  "escalationOverride": false,
  "responseCountsEnabled": false,
  "eventId": "271182000",
  "annotations": {
    "count": 0,
    "data": [],
    "links": {
      "self": "/api/xm/1/events/271182000/annotations?offset=0&limit=100"
    },
    "total": 0
  },
  "links": {
    "self": "/api/xm/1/events/871fd9ed-9466-4df5-808d-9e8749b2a9d6"
  },
  "has_error": false,
  "id": "871fd9ed-9466-4df5-808d-9e8749b2a9d6",
  "error": null,
  "requirePhonePassword": false,
  "status": "ACTIVE",
  "relatedIncident": {
    "id": "b3c1cc7d-3f92-4643-8bf0-0e1d005cd5bf",
    "links": {
      "self": "/api/xm/1/incidents/b3c1cc7d-3f92-4643-8bf0-0e1d005cd5bf"
    }
  },
  "bypassPhoneIntro": false,
  "requestId": "972977c1-c298-422a-8fa1-f15473a60bab",
  "submitter": {
    "firstName": "Rajesh",
    "id": "4e446008-d9df-41e5-996f-791114401434",
    "lastName": "Kumar",
    "links": {
      "self": "/api/xm/1/people/4e446008-d9df-41e5-996f-791114401434"
    },
    "recipientType": "PERSON",
    "targetName": "rajesh"
  },
  "floodControl": false,
  "form": {
    "id": "6195ede1-126e-43e0-8003-cda95e54dcd6",
    "name": "New Incident Notification"
  },
  "overrideDeviceRestrictions": false,
  "plan": {
    "iconOverride": "/static/images/logos/INCIDENT_RESOLUTION.png",
    "id": "4fe1ce4f-53e4-437f-baa0-d8b88ef2f9fb",
    "name": "Incident Resolution for My Service"
  },
  "created": "2021-04-08T14:43:53.756+0000"
}

Get An Event

Get a details of event

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Event IdJinja-templated text containing the event ID.
Example: '{{event_id_index_column}}'.
Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • result: Event Details
{
  "result": {
    "id": "871fd9ed-9466-4df5-808d-9e8749b2a9d6",
    "name": "Incident: INC-5: Y1",
    "eventType": "USER",
    "plan": {
      "id": "4fe1ce4f-53e4-437f-baa0-d8b88ef2f9fb",
      "name": "Incident Resolution for My Service",
      "iconOverride": "/static/images/logos/INCIDENT_RESOLUTION.png"
    },
    "form": {
      "id": "6195ede1-126e-43e0-8003-cda95e54dcd6",
      "name": "New Incident Notification"
    },
    "floodControl": false,
    "submitter": {
      "id": "4e446008-d9df-41e5-996f-791114401434",
      "targetName": "rajesh",
      "firstName": "Rajesh",
      "lastName": "Kumar",
      "recipientType": "PERSON",
      "links": {
        "self": "/api/xm/1/people/4e446008-d9df-41e5-996f-791114401434"
      }
    },
    "recipients": {
      "count": 0,
      "total": 0,
      "data": [],
      "links": {
        "self": "/api/xm/1/events/871fd9ed-9466-4df5-808d-9e8749b2a9d6/recipients?offset=0&limit=100"
      }
    },
    "priority": "MEDIUM",
    "annotations": {
      "count": 0,
      "total": 0,
      "data": [],
      "links": {
        "self": "/api/xm/1/events/871fd9ed-9466-4df5-808d-9e8749b2a9d6/annotations?offset=0&limit=100"
      }
    },
    "incident": "INC-5",
    "expirationInMinutes": 60,
    "notificationAuditCount": 0,
    "overrideDeviceRestrictions": false,
    "escalationOverride": false,
    "bypassPhoneIntro": false,
    "requirePhonePassword": false,
    "voicemailOptions": {
      "retry": 0,
      "every": 60,
      "leave": "callbackonly"
    },
    "responseOptions": {
      "count": 2,
      "total": 2,
      "data": [
        {
          "id": "2e16f31e-8026-406d-b7f5-dc063e21915e",
          "number": 1,
          "text": "Accept",
          "description": "Engage with this incident as a resolver",
          "prompt": "Accept",
          "action": "STOP_NOTIFYING_TARGET",
          "contribution": "POSITIVE",
          "joinConference": false,
          "redirectUrl": "",
          "allowComments": true
        },
        {
          "id": "61d61427-be02-41ca-9703-10b2b2850014",
          "number": 2,
          "text": "Escalate",
          "description": "Escalate this incident to the next available resolver",
          "prompt": "Escalate",
          "action": "ESCALATE",
          "contribution": "NEGATIVE",
          "joinConference": false,
          "redirectUrl": "",
          "allowComments": true
        }
      ]
    },
    "messages": {
      "count": 1,
      "total": 1,
      "data": [
        {
          "messageType": "SUBJECT_AND_BODY",
          "language": "EN",
          "template": {
            "id": "5a046b4a-d7e4-4e2a-bd7d-a9ae1cb5f4be"
          },
          "subject": "Incident: INC-5: Y1",
          "body": "<div style=\"width: 768px; margin-left: auto; margin-right: auto;\">\n  <div style=\"width: 540px; margin-left: auto; margin-right: auto;\">\n    <div style=\"margin: auto; width: 100%; margin-top: 50px; margin-bottom: 20px; display: flex\">\n      <div style=\"margin: auto; width: 50%;\">\n        <img style=\"display: block; vheight:20px; color:blue \"\n             src=\"https://s3-xmatters-content.s3.amazonaws.com/email-images/xMatters-logo-medium.png\"  />\n      </div>\n      <div style=\"margin: auto; width: 50%; text-align: center; color:#999999;\">\n        Digital Service Availability Platform\n      </div>\n    </div>\n\n    <div style=\"padding-left: auto; padding-right: auto;\">\n      <img src=\"https://static.xmatters.com/email-images/incident-Medium.png\"\n           style=\"display: block; width:66px; height:66px; margin-left: auto; margin-right: auto; margin-bottom: 20px;\" />\n    </div>\n\n    <div style=\"text-align: center; margin: 30px auto\">\n      [First Name] [Last Name], you're needed as a resolver:\n    </div>\n\n    <div style=\"border: #e4e4e4 1px solid\">\n      <div style=\"width: 100%;  display: flex; border-bottom: #e4e4e4 1px solid; \" >\n        <div style=\"width: 50%; text-align: center; display: block; border-right: #e4e4e4 1px solid; \">\n          <div style=\"margin: auto; text-align: center; display: block; padding: 15px 5px;\">\n            <div style=\"font-weight: bold\">Status</div>\n            <div style=\"display: block; margin-left: auto; margin-right: auto\">\n              <img src=\"https://static.xmatters.com/email-images/Open.png\"\n                   style=\"display: inline-block; width:13px; height:13px; margin-right: 5px; margin-top: 2px\" />\n              <div style=\"display: inline-block\">Open</div>\n            </div>\n          </div>\n        </div>\n        <div style=\"width: 50%; text-align: center; display: block;\">\n          <div style=\"margin: auto; text-align: center; display: block; padding: 15px 5px;\">\n            <div style=\"font-weight: bold\"> Severity </div>\n            <div style=\"display: block; margin-left: auto; margin-right: auto\">\n              <img src=\"https://static.xmatters.com/email-images/severity-Medium.png\"\n                   style=\"display: inline-block; width:13px; height:13px; margin-right: 5px; margin-top: 2px\" />\n              <div style=\"display: inline-block\">Medium</div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div style=\"padding: 15px 15px; border-bottom: #e4e4e4 1px solid; \">\n        <span style=\"font-weight: bold\">Incident:</span>\n        <a href=\"${other.companyUrl}/xmatters/app.do#incidents/INC-5\">INC-5</a>\n      </div>\n      <div style=\"padding: 15px 15px; display: block; border-bottom: #e4e4e4 1px solid; \">\n        <div style=\"font-weight: bold; margin-bottom: 5px\">Summary:</div>\n        <div>Y1</div>\n      </div>\n      <div style=\"padding: 15px 15px; display: block; border-bottom: #e4e4e4 1px solid; \">\n        <div style=\"font-weight: bold; margin-bottom: 5px\">Description:</div>\n        <div>sdsd</div>\n      </div>\n      <div style=\"padding: 15px 15px; border-bottom: #e4e4e4 1px solid; \">\n        <span style=\"font-weight: bold\">Initiated at:</span>\n        <span>02:43 PM UTC, April 08, 2021</span>\n      </div>\n      <div style=\"padding: 15px 15px; border-bottom: #e4e4e4 1px solid;\">\n        <span style=\"font-weight: bold\">Opened by:</span>\n        <span>rajesh</span>\n      </div>\n      <div style=\"padding: 15px 15px; border-bottom: #e4e4e4 1px solid; \">\n        <span style=\"font-weight: bold\">Alerting path:</span>\n        <span>[Alert Context]</span>\n      </div>\n    </div>\n    <div id=\"incident-responses\" style=\"margin-top: 30px\">\n      <!--__X_RESPONSE_CHOICES_PLACEHOLDER__-->\n    </div>\n  </div>\n</div>"
        }
      ]
    },
    "eventId": "271182000",
    "created": "2021-04-08T14:43:53.756+0000",
    "terminated": "2021-04-08T15:43:55.050+0000",
    "status": "TERMINATED",
    "links": {
      "self": "/api/xm/1/events/871fd9ed-9466-4df5-808d-9e8749b2a9d6"
    },
    "relatedIncident": {
      "id": "b3c1cc7d-3f92-4643-8bf0-0e1d005cd5bf",
      "links": {
        "self": "/api/xm/1/incidents/b3c1cc7d-3f92-4643-8bf0-0e1d005cd5bf"
      }
    },
    "integration": {
      "id": "b4b15d5b-65a6-4aea-8471-2d52d8c79dbd"
    },
    "responseCountsEnabled": false,
    "requestId": "972977c1-c298-422a-8fa1-f15473a60bab",
    "properties": {
      "created time#en": "02:43 PM UTC, April 08, 2021",
      "description#en": "sdsd",
      "incidentID#en": "INC-5",
      "reporter#en": "rajesh",
      "severity#en": "Medium",
      "status#en": "Open",
      "summary#en": "Y1"
    }
  },
  "error": null,
  "has_error": false
}

Release Notes

  • v2.0.0 - Updated architecture to support IO via filesystem

© 2017-2021 LogicHub®. All Rights Reserved.