Teams message card templates
Example templates are provided that helps you to create message cards to use with MS Teams integration.
About this task
- Application Deployment Failure JSON body
- Application Deployment Success JSON body
- Application Process Request Started JSON body
- Approval Completed JSON body
- Approval Failed JSON body
- External Approval Completed JSON body
- External Approval Failed JSON body
- Generic Process Completed JSON body
- Generic Process Request Started JSON body
- Scheduled Process Not Started JSON body
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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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 DevOps Deploy (Deploy) 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"
}
]
}
]
}