Customize Notification Payloads

Custom JSON payloads in CloudWisdom support FreeMarker writeup. This page contains a list of examples for you to reference when creating your own notification payloads for emails, SNS, and webhooks.

JSON Variables Available in CloudWisdom

Variable Description
${event.data.results} The description of the event as a policy violation.
${event.id} The ID of the event
${eventCategory.name} The event category ( (Info), (Warning), or (Critical)).
${elementFqn} The Fully Qualified Name (FQN) of the element.
${elementId} The type of element (e.g., SERVER, ELB, EC2, RDS, etc.).
${elementType} The type of element (e.g, SERVER, ELB, RUBY, etc.)
${elementLocation} The location of the element.
${elementName} The friendly name for the element.
${policyId} The policy identification number.
${policyName} The name of the policy.
${eventTimestamp} The time (in UTC) the event occurred.
${policyDescription} The description of the policy that generated the event.

Escaping JSON With Freemarker

Use the official FreeMarker documentation on escaping for an in-depth look on various escaping rules. Note that escaping does not work for ', only " and >. If you do not properly escape your FreeMarker, you may not receive notifications. Remember to test any custom payloads that you create.

Example

{
  "icon": "https://www.metricly.com/wp-content/uploads/2017/06/METRICLY_LOGO_M_only.png",
  "activity": "CloudWisdom Alerts",
  "title": "${policyName}",
  "body": "Category: ${eventCategory.name}\nElement: ${elementName}\nDescription: ${policyDescription?json_string}\nEventData: <#if event.data??><#if event.data.results??><#assign results = event.data.results?eval><#if results.conditions??><#list results.conditions as condition><#if condition?counter <= 5>${condition.expression}</#if></#list></#if></#if></#if>"
}