Teams message card templates#

Example templates are provided that helps you to create message cards to use with MS Teams integration.

Message layouts are available for the following events:

You can customize these available message card as per your team requirement. See MS Teams documentation for more information.

Parent topic: How-to: Integrate MS Teams

Application Deployment Failure JSON body#

## PROPERTY Content-Type: application/json

#set ( $Q = '\\"' )

#set ( $themeColor = "#E88686" )
#set ( $warningCount = $workflowTrace.WarningCount)

#macro (showSummary $analysis $level )
  #set ($indentPixels = $level * 20)
  #set ($trace = $analysis.Trace)

  #set ( $text = "${text} <tr>" )
  #set ( $text = "${text} <td style=${Q}padding-left: ${indentPixels}px;${Q}>$trace.Name</td><td>" )
  #set ($activityResource = $trace.getPropertyValue("activity.resource.id"))
  #if ($activityResource)
    #set ( $text = "${text} $resourceFactory.getResourceForId($fn.getUUID($activityResource)).Path" )
  #else
    #set ( $text = "${text} $trace.getPropertyValue(\"resourcePath\")" )
  #end
  #set ( $text = "${text} </td><td>" )
  #if ($trace.StartedOn)
    #set ( $text = "${text} $fn.formatDate($trace.StartedOn)" )
  #else
    #set ( $text = "${text} Activity not started" )
  #end
  #set ( $text = "${text} </td><td>" )
  #if ($trace.StartedOn && $trace.EndedOn)
    #set ( $text = "${text} $fn.duration($trace.StartedOn, $trace.EndedOn)s" )
  #end
  #set ( $text = "${text} </td><td>$fn.getStatusDisplayName($trace.Result)</td>" )
  #set ( $text = "${text} </tr>" )
  #foreach ($child in $analysis.Children)
    #set ($nextLevel = $level + 1)
    #showSummary ($child, $nextLevel)
  #end
#end

 #macro (showFailure $analysis $level)
   #set ($indentPixels = $level * 20)
   #set ( $text = "${text} <tr background-color=${Q}white${Q}><td style=${Q}padding-left: ${indentPixels}px; font-weight: bold; color: #A84F4F${Q}>$analysis.Trace.Name </td></tr>" )
   #if ($analysis.Children.isEmpty())
     #set ($indentPixels = $indentPixels + 20)
     #set ( $text = "${text} <td style=${Q}padding-left: ${indentPixels}px; white-space: pre-wrap${Q}>$analysis.FailureMessage</td>" )
   #end
   #foreach ($child in $analysis.Children)
     #set ($nextLevel = $level + 1)
     #showFailure ($child, $nextLevel)
   #end
 #end



#set( $text = "" )
#set( $text = "${text} <h2>A process on $application.Name started</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>$application.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Process:</td><td>$applicationProcess.Name</td></tr>" )
#if ($snapshot)
  #set( $text = " ${text} <tr><td>Snapshot:</td><td>$snapshot.Name</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Environment:</td><td>$environment.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested by:</td><td>$user.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested on:</td><td>$fn.formatDate(${request.SubmittedDate})</td></tr>" )
#if (! $request.Description.isEmpty())
    #set( $text = "${text}   <tr><td>Description:</td><td>${request.Description}</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Warning Count:</td><td>${workflowTrace.WarningCount}</td></tr>" )
#if ($workflowTrace.ChildWarningMessages)
  #set( $text = " ${text} <tr><td>Warnings:</td><td><ul>" )
  #foreach ($message in $workflowTrace.ChildWarningMessages )
    #set ($messageOverLimit = $message.length() > 100)
    #if ($messageOverLimit)
      #set ( $text = "${text} <li>$message.substring(0,100)...</li>" )
    #else
      #set ( $text = "${text} <li>$message</li>" )
    #end
    #set ($remainingWarnings = $warningCount - $workflowTrace.ChildWarningMessages.size())
    #if ($remainingWarnings > 0)
      #set ( $text = "${text} <li>+ $remainingWarnings From Child Workflows</li>" )
    #end
  #end
  #set( $text = " ${text} </ul></td></tr>" )
#end
#set( $text = "${text} </table>" )

#set( $text = " ${text} <div>" )
#set( $text = " ${text} <h3>Process summary:</h3>" )
#set( $text = " ${text} <table cellpadding=${Q}4${Q} cellspacing=${Q}1${Q} width=${Q}100%${Q}>" )
#set( $text = " ${text}  <thead>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Process</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Resource</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Start</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Duration</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Status</th>" )
#set( $text = " ${text}  </thead>" )
#set( $text = " ${text}  <tbody>" )
  #foreach ($child in $analysis.RootAnalyses)
    #showSummary ($child 0)
  #end
#set( $text = " ${text}  </tbody>" )
#set( $text = " ${text} </table>" )
#set( $text = " ${text} </div>" )

#set( $text = " ${text} <div><h3>Failure details:</h3>" )
#set( $text = " ${text}   <table cellpadding=${Q}2${Q} cellspacing=${Q}1${Q} width=${Q}100%${Q}>" )
#set( $text = " ${text}     <table-body>" )
                              #foreach ($child in $failureAnalysis.RootAnalyses)
                                #showFailure ($child 0)
                              #end
#set( $text = " ${text}  </tbody>" )
#set( $text = " ${text} </table>" )
#set( $text = " ${text} </div>" )


#set( $text = " ${text} <div>" )
#if ($versions.size() > 0)
  #set( $text = " ${text} <h3>Included versions</h3>" )
  #set( $text = " ${text} <table cellpadding=${Q}4${Q} cellspacing=${Q}1${Q} width=${Q}100%${Q}>" )
   #set( $text = " ${text} <thead>" )
      #set( $text = " ${text} <th style=${Q}text-align:left;${Q}>Component</th>" )
      #set( $text = " ${text} <th style=${Q}text-align:left;${Q}>Version</th>" )
      #set( $text = " ${text} <th style=${Q}text-align:left;${Q}>Description</th>" )
   #set( $text = " ${text} </thead>" )
   #set( $text = " ${text} <tbody>" )
    #foreach ($version in $versions)
      #set( $text = " ${text} <tr>" )
       #set( $text = " ${text} <td>$version.Component.Name</td>" )
       #set( $text = " ${text} <td>$version.Name</td>" )
       #set( $text = " ${text} <td>$version.Description</td>" )
     #set( $text = " ${text} </tr>" )
    #end
#set( $text = " ${text}    </tbody>" )
#set( $text = " ${text}   </table>" )
#else
#set( $text = " ${text}   <h3>No versions included</h3>" )
#end
#set( $text = " ${text} </div>" )

#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )


{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "A process on $fn.escapeJson($application.Name) failed",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#applicationProcessRequest/${request.Id}"
                }
            ]
        }
    ]
}

Application Deployment Success JSON body#

## PROPERTY Content-Type: application/json

#set ( $Q = '\\"' )

#set ( $themeColor = "#0072c6" )
#set ( $warningCount = $workflowTrace.WarningCount)

#macro (showSummary $analysis $level )
  #set ($indentPixels = $level * 20)
  #set ($trace = $analysis.Trace)

  #set ( $text = "${text} <tr>" )
  #set ( $text = "${text} <td style=${Q}padding-left: ${indentPixels}px;${Q}>$trace.Name</td><td>" )
  #set ($activityResource = $trace.getPropertyValue("activity.resource.id"))
  #if ($activityResource)
    #set ( $text = "${text} $resourceFactory.getResourceForId($fn.getUUID($activityResource)).Path" )
  #else
    #set ( $text = "${text} $trace.getPropertyValue(\"resourcePath\")" )
  #end
  #set ( $text = "${text} </td><td>" )
  #if ($trace.StartedOn)
    #set ( $text = "${text} $fn.formatDate($trace.StartedOn)" )
  #else
    #set ( $text = "${text} Activity not started" )
  #end
  #set ( $text = "${text} </td><td>" )
  #if ($trace.StartedOn && $trace.EndedOn)
    #set ( $text = "${text} $fn.duration($trace.StartedOn, $trace.EndedOn)s" )
  #end
  #set ( $text = "${text} </td><td style=${Q}background-color: $fn.getStatusColor($trace.Result)${Q}>$fn.getStatusDisplayName($trace.Result)</td>" )
  #set ( $text = "${text} </tr>" )
  #foreach ($child in $analysis.Children)
    #set ($nextLevel = $level + 1)
    #showSummary ($child, $nextLevel)
  #end
#end


#set( $text = "" )
#set( $text = "${text} <h2>A process on $application.Name started</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>$application.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Process:</td><td>$applicationProcess.Name</td></tr>" )
#if ($snapshot)
  #set( $text = " ${text} <tr><td>Snapshot:</td><td>$snapshot.Name</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Environment:</td><td>$environment.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested by:</td><td>$user.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested on:</td><td>$fn.formatDate(${request.SubmittedDate})</td></tr>" )
#if (! $request.Description.isEmpty())
#set( $text = "${text}   <tr><td>Description:</td><td>${request.Description}</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Warning Count:</td><td>${workflowTrace.WarningCount}</td></tr>" )
#if ($workflowTrace.ChildWarningMessages)
  #set( $text = " ${text} <tr><td>Warnings:</td><td><ul>" )
  #foreach ($message in $workflowTrace.ChildWarningMessages )
    #set ($messageOverLimit = $message.length() > 100)
    #if ($messageOverLimit)
      #set ( $text = "${text} <li>$message.substring(0,100)...</li>" )
    #else
      #set ( $text = "${text} <li>$message</li>" )
    #end
    #set ($remainingWarnings = $warningCount - $workflowTrace.ChildWarningMessages.size())
    #if ($remainingWarnings > 0)
      #set ( $text = "${text} <li>+ $remainingWarnings From Child Workflows</li>" )
    #end
  #end
  #set( $text = " ${text} </ul></td></tr>" )
#end
#set( $text = "${text} </table>" )

#set( $text = " ${text} <div>" )
#set( $text = " ${text} <h3>Process summary:</h3>" )
#set( $text = " ${text} <table cellpadding=${Q}4${Q} cellspacing=${Q}1${Q} width=${Q}100%${Q}>" )
#set( $text = " ${text}  <thead>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Process</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Resource</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Start</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Duration</th>" )
#set( $text = " ${text}     <th style=${Q}text-align:left;${Q}>Status</th>" )
#set( $text = " ${text}  </thead>" )
#set( $text = " ${text}  <tbody>" )
  #foreach ($child in $analysis.RootAnalyses)
    #showSummary ($child 0)
  #end
#set( $text = " ${text}  </tbody>" )
#set( $text = " ${text} </table>" )
#set( $text = " ${text} </div>" )

#set( $text = " ${text} <div>" )
#if ($versions.size() > 0)
  #set( $text = " ${text} <h3>Included versions</h3>" )
  #set( $text = " ${text} <table cellpadding=${Q}4${Q} cellspacing=${Q}1${Q} width=${Q}100%${Q}>" )
   #set( $text = " ${text} <thead>" )
      #set( $text = " ${text} <th style=${Q}text-align:left;${Q}>Component</th>" )
      #set( $text = " ${text} <th style=${Q}text-align:left;${Q}>Version</th>" )
      #set( $text = " ${text} <th style=${Q}text-align:left;${Q}>Description</th>" )
   #set( $text = " ${text} </thead>" )
   #set( $text = " ${text} <tbody>" )
    #foreach ($version in $versions)
      #set( $text = " ${text} <tr>" )
       #set( $text = " ${text} <td>$version.Component.Name</td>" )
       #set( $text = " ${text} <td>$version.Name</td>" )
       #set( $text = " ${text} <td>$version.Description</td>" )
     #set( $text = " ${text} </tr>" )
    #end
#set( $text = " ${text}    </tbody>" )
#set( $text = " ${text}   </table>" )
#else
#set( $text = " ${text}   <h3>No versions included</h3>" )
#end
#set( $text = " ${text} </div>" )

#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )


{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "A process on $fn.escapeJson($application.Name) completed successfully",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#applicationProcessRequest/${request.Id}"
                }
            ]
        }
    ]
}

Application Process Request Started JSON body#

## PROPERTY Content-Type: application/json

#set ( $themeColor = "#0072c6" )

#set( $text = "" )
#set( $text = "${text} <h2>A process on $application.Name started</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>$application.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Process:</td><td>$applicationProcess.Name</td></tr>" )
#if ($snapshot)
  #set( $text = " ${text} <tr><td>Snapshot:</td><td>$snapshot.Name</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Environment:</td><td>$environment.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested by:</td><td>$user.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested on:</td><td>$fn.formatDate(${request.SubmittedDate})</td></tr>" )
#set( $text = "${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "A process on $fn.escapeJson($application.Name) started",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#applicationProcessRequest/${request.Id}"
                }
            ]
        }
    ]
}

Approval Completed JSON body#

## PROPERTY Content-Type: application/json


#set ( $themeColor = "#0072C6" )
#if ( $appRequest )
    #set ( $processName = $appRequest.getApplicationProcess().getName() )
#end
#if ( $compRequest )
    #set ( $processName = $compRequest.getComponentProcess().getName() )
#end

#set( $text = "" )
#set( $text = "${text} <h2>HCL Launch Process: $processName</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>${application.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Environment:</td><td>${environment.Name}</td></tr>" )
#if ($snapshot)
  #set( $text = "${text} <tr><td>Snapshot:</td><td>${snapshot.Name}</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Requested by:</td><td>${requester.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Scheduled for:</td><td>${scheduledDate}</td></tr>" )
#if (!$appRequest.getDescription().isEmpty())
#set( $text = "${text}   <tr><td>Description:</td><td>${appRequest.getDescription()}</td></tr>" )
#end
#set( $text = "${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "An approval was completed for the $fn.escapeJson($application.Name) application on the $fn.escapeJson($environment.Name) environment",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}

Approval Failed JSON body#

## PROPERTY Content-Type: application/json

#set( $themeColor = "#E88686" )
#if ( $appRequest )
    #set ( $processName = $appRequest.getApplicationProcess().getName() )
#end
#if ( $compRequest )
    #set ( $processName = $compRequest.getComponentProcess().getName() )
#end

#set( $text = "" )
#set( $text = "${text} <h2>HCL Launch Process $processName was rejected during its approval process</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>${application.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Environment:</td><td>${environment.Name}</td></tr>" )
#if ($snapshot)
  #set( $text = "${text} <tr><td>Snapshot:</td><td>${snapshot.Name}</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Requested by:</td><td>${requester.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Scheduled for:</td><td>${scheduledDate}</td></tr>" )
#if (!$appRequest.getDescription().isEmpty())
#set( $text = "${text}   <tr><td>Description:</td><td>${appRequest.getDescription()}</td></tr>" )
#end
#set( $text = "${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "An approval failed for the $fn.escapeJson($application.Name) application on the $fn.escapeJson($environment.Name) environment",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}

External Approval Completed JSON body#

## PROPERTY Content-Type: application/json

#set( $themeColor = "#0072C6")
#if ( $appProcRequest )
    #set ( $description = $appProcRequest.getDescription() )
#end
#if ( $compProcRequest )
    #set ( $description = $compProcRequest.getDescription() )
#end

#set( $text = "" )
#set( $text = "${text} <h2>An external approval process was successful</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>${application.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Environment:</td><td>${environment.Name}</td></tr>" )
#if ($snapshot)
  #set( $text = "${text} <tr><td>Snapshot:</td><td>${snapshot.Name}</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Requested by:</td><td>${requester.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Scheduled for:</td><td>${scheduledDate}</td></tr>" )
#if ($description && !$description.isEmpty())
#set( $text = "${text}   <tr><td>Description:</td><td>${description}</td></tr>" )
#end
#set( $text = "${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "An external approval was completed for the $fn.escapeJson($application.Name) application on the $fn.escapeJson($environment.Name) environment",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}

External Approval Failed JSON body#

## PROPERTY Content-Type: application/json

#set( $themeColor = "#E88686" )
#if ( $appProcRequest )
    #set ( $description = $appProcRequest.getDescription() )
#end
#if ( $compProcRequest )
    #set ( $description = $compProcRequest.getDescription() )
#end

#set( $text = "" )
#set( $text = "${text} <h2>An application process was rejected during its external approval process</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Application:</td><td>${application.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Environment:</td><td>${environment.Name}</td></tr>" )
#if ($snapshot)
  #set( $text = "${text} <tr><td>Snapshot:</td><td>${snapshot.Name}</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Requested by:</td><td>${requester.Name}</td></tr>" )
#set( $text = "${text}   <tr><td>Scheduled for:</td><td>${scheduledDate}</td></tr>" )
#if ($description && !$description.isEmpty())
#set( $text = "${text}   <tr><td>Description:</td><td>${description}</td></tr>" )
#end
#set( $text = "${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "An external approval failed for the $fn.escapeJson($application.Name) application on the $fn.escapeJson($environment.Name) environment",
    "text": "$fn.escapeJson($text)",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}

Generic Process Completed JSON body#

## PROPERTY Content-Type: application/json

#set( $themeColor = $fn.getStatusColor( $request.Result ) )
#if ( $themeColor.contains("#FFFFFF") )
  #set ( $themeColor = "#0072C6" )
#end

#set( $text = "" )
#set( $text = "${text} <h2>HCL Launch Process $process.Name $fn.getStatusDisplayName($request.Result)</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Process:</td><td>$process.Name</td></tr>" )
#if ($resourceName)
  #set( $text = " ${text} <tr><td>Resource:</td><td>$resourceName</td></tr>" )
#end
#set( $text = "${text}   <tr><td>Requested by:</td><td>$user.Name</td></tr>" )
#set( $text = "${text}   <tr><td>Requested on:</td><td>$scheduledDate</td></tr>" )
#set( $text = "${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information" )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "HCL Launch Process $fn.escapeJson($process.Name) $fn.getStatusDisplayName($request.Result)",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}

Generic Process Request Started JSON body#

## PROPERTY Content-Type: application/json

#set ( $themeColor = "#0072c6" )

#set( $text = "" )
#set( $text = "${text} <h2>HCL Launch Process $process.Name started</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Process:</td><td>$process.Name</td></tr>" )
#if ($resourceName)
  #set( $text = " ${text} <tr><td>Resource:</td><td>$resourceName</td></tr>" )
#end
#set( $text = " ${text}   <tr><td>Requested by:</td><td>$user.Name</td></tr>" )
#set( $text = " ${text}   <tr><td>Requested on:</td><td>$scheduledDate</td></tr>" )
#set( $text = " ${text} </table>" )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information" )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "HCL Launch Process $fn.escapeJson($process.Name) started",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}

Scheduled Process Not Started JSON body#

## PROPERTY Content-Type: application/json

#set ( $themeColor = "#E88686" )

#set( $text = "" )
#set( $text = "${text} <h2>HCL Launch Process $process.Name failed to start</h2>" )
#set( $text = "${text} <table> " )
#set( $text = "${text}   <tr><td>Process:</td><td>$process.Name</td></tr>" )
#if ($resourceName)
  #set( $text = " ${text} <tr><td>Resource:</td><td>$resourceName</td></tr>" )
#end
#set( $text = " ${text}   <tr><td>Requested by:</td><td>$user.Name</td></tr>" )
#set( $text = " ${text}   <tr><td>Requested on:</td><td>$scheduledDate</td></tr>" )
#set( $text = " ${text} </table>" )
#set( $text = " ${text} <br>The process failed to start because the server is in maintenance mode. You can request the process again when maintenance is complete." )
#set( $text = "${text} <br>Click <strong>View Details</strong> for more information." )
{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "$themeColor",
    "title": "HCL Launch Process $fn.escapeJson($process.Name) failed to start",
    "text": "$fn.escapeJson($text).trim()",
    "potentialAction": [
        {
            "@type": "OpenUri",
            "name": "View Details",
            "targets": [
                {
                    "os": "default",
                    "uri": "$fn.escapeJson($externalUrl)#$requestType/$processId"
                }
            ]
        }
    ]
}